Skip to content

rustfmt crashes with bad span error #78872

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
brmmm3 opened this issue Nov 8, 2020 · 4 comments
Closed

rustfmt crashes with bad span error #78872

brmmm3 opened this issue Nov 8, 2020 · 4 comments
Labels
A-rustfmt Area: Rustfmt C-bug Category: This is a bug. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@brmmm3
Copy link

brmmm3 commented Nov 8, 2020

rustfmt (nightly on Linux) crashes with error code -32900.

It is correct that it recognizes the unclosed delimiter, but I would expect a simple error message instead of a crash.

Meta

rustc --version --verbose:

rustc 1.49.0-nightly (ffa2e7ae8 2020-10-24)
binary: rustc
commit-hash: ffa2e7ae8fbf9badc035740db949b9dae271c29f
commit-date: 2020-10-24
host: x86_64-unknown-linux-gnu
release: 1.49.0-nightly
LLVM version: 11.0
Backtrace

error: this file contains an unclosed delimiter
   --> <stdin>:434:3
    |
141 | pub fn add_to_archive(context: &Context) -> Result<(), Error> {
    |                                                               - unclosed delimiter
...
168 |         if let Err(err) = compressor.create_add_new_files(&context) {
    |                                                                     - this delimiter might not be properly closed...
...
173 |     }
    |     - ...as it matches this but it has different indentation
...
434 | }
    |   ^

error: this file contains an unclosed delimiter
   --> <stdin>:438:3
    |
141 | pub fn add_to_archive(context: &Context) -> Result<(), Error> {
    |                                                               - unclosed delimiter
...
168 |         match compressor.create_add_new_files(&context) {
    |                                                         - this delimiter might not be properly closed...
...
186 |     }
    |     - ...as it matches this but it has different indentation
...
438 | }
    |   ^

thread 'main' panicked at 'bad span: `.`: ``', src/tools/rustfmt/src/source_map.rs:52:13
stack backtrace:
   0: rust_begin_unwind
             at /rustc/ffa2e7ae8fbf9badc035740db949b9dae271c29f/library/std/src/panicking.rs:483:5
   1: std::panicking::begin_panic_fmt
             at /rustc/ffa2e7ae8fbf9badc035740db949b9dae271c29f/library/std/src/panicking.rs:437:5
   2: <rustfmt_nightly::visitor::SnippetProvider as rustfmt_nightly::source_map::SpanUtils>::span_before::{{closure}}
   3: rustfmt_nightly::chains::rewrite_chain
   4: rustfmt_nightly::expr::format_expr
   5: rustfmt_nightly::expr::format_expr
   6: <rustfmt_nightly::chains::ChainItem as rustfmt_nightly::rewrite::Rewrite>::rewrite
   7: <rustfmt_nightly::chains::ChainFormatterBlock as rustfmt_nightly::chains::ChainFormatter>::format_root
   8: <rustfmt_nightly::chains::Chain as rustfmt_nightly::rewrite::Rewrite>::rewrite
   9: rustfmt_nightly::chains::rewrite_chain
  10: rustfmt_nightly::expr::format_expr
  11: rustfmt_nightly::closures::rewrite_closure_expr
  12: rustfmt_nightly::closures::rewrite_closure
  13: rustfmt_nightly::expr::format_expr
  14: rustfmt_nightly::closures::rewrite_last_closure
  15: rustfmt_nightly::overflow::Context::rewrite_items
  16: rustfmt_nightly::overflow::Context::rewrite
  17: rustfmt_nightly::expr::rewrite_call
  18: <rustfmt_nightly::chains::ChainItem as rustfmt_nightly::rewrite::Rewrite>::rewrite
  19: rustfmt_nightly::chains::ChainFormatterShared::format_last_child
  20: <rustfmt_nightly::chains::ChainFormatterBlock as rustfmt_nightly::chains::ChainFormatter>::format_last_child
  21: <rustfmt_nightly::chains::Chain as rustfmt_nightly::rewrite::Rewrite>::rewrite
  22: rustfmt_nightly::chains::rewrite_chain
  23: rustfmt_nightly::expr::format_expr
  24: rustfmt_nightly::stmt::format_stmt
  25: rustfmt_nightly::visitor::FmtVisitor::walk_stmts
  26: rustfmt_nightly::visitor::FmtVisitor::walk_stmts
  27: rustfmt_nightly::visitor::FmtVisitor::visit_block
  28: rustfmt_nightly::expr::rewrite_block_with_visitor
  29: <rustfmt_nightly::expr::ControlFlow as rustfmt_nightly::rewrite::Rewrite>::rewrite
  30: rustfmt_nightly::expr::format_expr
  31: rustfmt_nightly::stmt::format_stmt
  32: rustfmt_nightly::visitor::FmtVisitor::walk_stmts
  33: rustfmt_nightly::visitor::FmtVisitor::walk_stmts
  34: rustfmt_nightly::visitor::FmtVisitor::walk_stmts
  35: rustfmt_nightly::visitor::FmtVisitor::walk_stmts
  36: rustfmt_nightly::visitor::FmtVisitor::walk_stmts
  37: rustfmt_nightly::visitor::FmtVisitor::walk_stmts
  38: rustfmt_nightly::visitor::FmtVisitor::walk_stmts
  39: rustfmt_nightly::visitor::FmtVisitor::walk_stmts
  40: rustfmt_nightly::visitor::FmtVisitor::visit_block
  41: rustfmt_nightly::visitor::FmtVisitor::visit_fn
  42: rustfmt_nightly::visitor::FmtVisitor::visit_impl_item
  43: rustfmt_nightly::items::<impl rustfmt_nightly::visitor::FmtVisitor>::visit_impl_items
  44: rustfmt_nightly::items::format_impl
  45: rustfmt_nightly::visitor::FmtVisitor::visit_item
  46: rustfmt_nightly::reorder::<impl rustfmt_nightly::visitor::FmtVisitor>::visit_items_with_reordering
  47: rustfmt_nightly::visitor::FmtVisitor::format_separate_mod
  48: rustfmt_nightly::formatting::format_project
  49: scoped_tls::ScopedKey<T>::set
  50: rustfmt_nightly::Session<T>::format
  51: rustfmt::format_and_emit_report
  52: rustfmt::execute
  53: rustfmt::main
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
[Error - 08:37:07] Request textDocument/formatting failed.
  Message: rustfmt exited with:
                           Status: exit code: 101
                           stdout: 
  Code: -32900 
thread 'main' panicked at 'bad span: `.`: ``', src/tools/rustfmt/src/source_map.rs:52:13
stack backtrace:
   0: rust_begin_unwind
             at /rustc/ffa2e7ae8fbf9badc035740db949b9dae271c29f/library/std/src/panicking.rs:483:5
   1: std::panicking::begin_panic_fmt
             at /rustc/ffa2e7ae8fbf9badc035740db949b9dae271c29f/library/std/src/panicking.rs:437:5
   2: <rustfmt_nightly::visitor::SnippetProvider as rustfmt_nightly::source_map::SpanUtils>::span_before::{{closure}}
   3: rustfmt_nightly::chains::rewrite_chain
   4: rustfmt_nightly::expr::format_expr
   5: rustfmt_nightly::expr::format_expr
   6: <rustfmt_nightly::chains::ChainItem as rustfmt_nightly::rewrite::Rewrite>::rewrite
   7: <rustfmt_nightly::chains::ChainFormatterBlock as rustfmt_nightly::chains::ChainFormatter>::format_root
   8: <rustfmt_nightly::chains::Chain as rustfmt_nightly::rewrite::Rewrite>::rewrite
   9: rustfmt_nightly::chains::rewrite_chain
  10: rustfmt_nightly::expr::format_expr
  11: rustfmt_nightly::closures::rewrite_closure_expr
  12: rustfmt_nightly::closures::rewrite_closure
  13: rustfmt_nightly::expr::format_expr
  14: rustfmt_nightly::closures::rewrite_last_closure
  15: rustfmt_nightly::overflow::Context::rewrite_items
  16: rustfmt_nightly::overflow::Context::rewrite
  17: rustfmt_nightly::expr::rewrite_call
  18: <rustfmt_nightly::chains::ChainItem as rustfmt_nightly::rewrite::Rewrite>::rewrite
  19: rustfmt_nightly::chains::ChainFormatterShared::format_last_child
  20: <rustfmt_nightly::chains::ChainFormatterBlock as rustfmt_nightly::chains::ChainFormatter>::format_last_child
  21: <rustfmt_nightly::chains::Chain as rustfmt_nightly::rewrite::Rewrite>::rewrite
  22: rustfmt_nightly::chains::rewrite_chain
  23: rustfmt_nightly::expr::format_expr
  24: rustfmt_nightly::stmt::format_stmt
  25: rustfmt_nightly::visitor::FmtVisitor::walk_stmts
  26: rustfmt_nightly::visitor::FmtVisitor::walk_stmts
  27: rustfmt_nightly::visitor::FmtVisitor::visit_block
  28: rustfmt_nightly::expr::rewrite_block_with_visitor
  29: <rustfmt_nightly::expr::ControlFlow as rustfmt_nightly::rewrite::Rewrite>::rewrite
  30: rustfmt_nightly::expr::format_expr
  31: rustfmt_nightly::stmt::format_stmt
  32: rustfmt_nightly::visitor::FmtVisitor::walk_stmts
  33: rustfmt_nightly::visitor::FmtVisitor::walk_stmts
  34: rustfmt_nightly::visitor::FmtVisitor::walk_stmts
  35: rustfmt_nightly::visitor::FmtVisitor::walk_stmts
  36: rustfmt_nightly::visitor::FmtVisitor::walk_stmts
  37: rustfmt_nightly::visitor::FmtVisitor::walk_stmts
  38: rustfmt_nightly::visitor::FmtVisitor::walk_stmts
  39: rustfmt_nightly::visitor::FmtVisitor::walk_stmts
  40: rustfmt_nightly::visitor::FmtVisitor::visit_block
  41: rustfmt_nightly::visitor::FmtVisitor::visit_fn
  42: rustfmt_nightly::visitor::FmtVisitor::visit_impl_item
  43: rustfmt_nightly::items::<impl rustfmt_nightly::visitor::FmtVisitor>::visit_impl_items
  44: rustfmt_nightly::items::format_impl
  45: rustfmt_nightly::visitor::FmtVisitor::visit_item
  46: rustfmt_nightly::reorder::<impl rustfmt_nightly::visitor::FmtVisitor>::visit_items_with_reordering
  47: rustfmt_nightly::visitor::FmtVisitor::format_separate_mod
  48: rustfmt_nightly::formatting::format_project
  49: scoped_tls::ScopedKey<T>::set
  50: rustfmt_nightly::Session<T>::format
  51: rustfmt::format_and_emit_report
  52: rustfmt::execute
  53: rustfmt::main
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
[Error - 08:37:22] Request textDocument/formatting failed.
  Message: rustfmt exited with:
                           Status: exit code: 101
                           stdout: 
  Code: -32900 

@brmmm3 brmmm3 added the C-bug Category: This is a bug. label Nov 8, 2020
@njasm
Copy link
Contributor

njasm commented Nov 8, 2020

@rustbot modify labels: +A-rustfmt

@rustbot rustbot added the A-rustfmt Area: Rustfmt label Nov 8, 2020
@jyn514 jyn514 added the T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. label Nov 8, 2020
@jyn514
Copy link
Member

jyn514 commented Nov 8, 2020

I think this should be reported in https://github.com/rust-lang/rustfmt.

@brmmm3
Copy link
Author

brmmm3 commented Nov 8, 2020

I've created a bug report there.

@camelid
Copy link
Member

camelid commented Nov 9, 2020

Closing as this has been reported "upstream".

@camelid camelid closed this as completed Nov 9, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-rustfmt Area: Rustfmt C-bug Category: This is a bug. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

No branches or pull requests

5 participants