Closed
Description
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