Rustfmt: thread 'main' panicked at 'bad span: `.`: `)`', src/tools/rustfmt/src/source_map.rs:52:13

Created on 3 Jul 2019  路  5Comments  路  Source: rust-lang/rustfmt

rustfmt 1.3.0-nightly (d334502 2019-06-09)
rustc 1.37.0-nightly (8aa42ed7c 2019-06-24)

thread 'main' panicked at 'bad span: `.`: `)`', src/tools/rustfmt/src/source_map.rs:52:13
stack backtrace:
   0: backtrace::backtrace::libunwind::trace
             at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.29/src/backtrace/libunwind.rs:88
   1: backtrace::backtrace::trace_unsynchronized
             at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.29/src/backtrace/mod.rs:66
   2: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:47
   3: std::sys_common::backtrace::print
             at src/libstd/sys_common/backtrace.rs:36
   4: std::panicking::default_hook::{{closure}}
             at src/libstd/panicking.rs:198
   5: std::panicking::default_hook
             at src/libstd/panicking.rs:212
   6: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:475
   7: std::panicking::continue_panic_fmt
             at src/libstd/panicking.rs:382
   8: std::panicking::begin_panic_fmt
             at src/libstd/panicking.rs:337
   9: <rustfmt_nightly::visitor::SnippetProvider as rustfmt_nightly::source_map::SpanUtils>::span_before::{{closure}}
  10: <rustfmt_nightly::visitor::SnippetProvider as rustfmt_nightly::source_map::SpanUtils>::span_before
  11: rustfmt_nightly::chains::rewrite_chain
  12: rustfmt_nightly::expr::format_expr
  13: rustfmt_nightly::expr::rewrite_assign_rhs_with
  14: rustfmt_nightly::items::<impl rustfmt_nightly::rewrite::Rewrite for syntax::ast::Local>::rewrite
  15: rustfmt_nightly::expr::<impl rustfmt_nightly::rewrite::Rewrite for syntax::ast::Stmt>::rewrite
  16: rustfmt_nightly::visitor::FmtVisitor::walk_stmts
  17: rustfmt_nightly::visitor::FmtVisitor::walk_stmts
  18: rustfmt_nightly::visitor::FmtVisitor::walk_stmts
  19: rustfmt_nightly::visitor::FmtVisitor::walk_stmts
  20: rustfmt_nightly::visitor::FmtVisitor::visit_block
  21: rustfmt_nightly::visitor::FmtVisitor::visit_fn
  22: rustfmt_nightly::visitor::FmtVisitor::visit_item
  23: rustfmt_nightly::reorder::<impl rustfmt_nightly::visitor::FmtVisitor>::visit_items_with_reordering
  24: rustfmt_nightly::visitor::FmtVisitor::walk_mod_items
  25: rustfmt_nightly::visitor::FmtVisitor::format_separate_mod
  26: rustfmt_nightly::formatting::format_project
  27: syntax::with_globals
  28: rustfmt_nightly::Session<T>::format
  29: rustfmt::format_and_emit_report
  30: rustfmt_nightly::Session<T>::override_config
  31: rustfmt::execute
  32: rustfmt::main
  33: std::rt::lang_start::{{closure}}
  34: std::rt::lang_start_internal::{{closure}}
             at src/libstd/rt.rs:49
  35: std::panicking::try::do_call
             at src/libstd/panicking.rs:294
  36: __rust_maybe_catch_panic
             at src/libpanic_unwind/lib.rs:82
  37: std::panicking::try
             at src/libstd/panicking.rs:273
  38: std::panic::catch_unwind
             at src/libstd/panic.rs:388
  39: std::rt::lang_start_internal
             at src/libstd/rt.rs:48
  40: main
  41: __libc_start_main
  42: <unknown>
bug

Most helpful comment

I can also confirm experiencing such an error on 1.47 stable

The issue as of now seems to be such format: x.0.0. Fix: change to (x.0).0

All 5 comments

@bbigras Could you provide a working example to reproduce this, please? It would be helpful to track down the bug.

Yes sorry. I was working on it but I should have waited to send it at the same time as the report.

The problem goes away if I remove the ? in this code:

fn main() {
    await!(something)?;
}

I think I don't have the problem with:
rustfmt 1.2.2-nightly (5274b49 2019-04-24)
rustc 1.37.0-nightly (991c719a1 2019-06-08)

Here is a Rust playground that causes this.

The code snippet is from a larger piece I can't share and which compiles but causes rustfmt (nightly) to die with the above stack trace. The playground also exhibits this with the stable toolchain's rustfmt.

I can also confirm experiencing such an error on 1.47 stable

The issue as of now seems to be such format: x.0.0. Fix: change to (x.0).0

Was this page helpful?
0 / 5 - 0 ratings