rust-analyzer: Panic during MBE parsing
Running ra_cli analysis-stats on the rust-lang/rust repo currently results in the following panic:
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Expected("subtree")', src/libcore/result.rs:997:5
stack backtrace:
0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
at src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:39
1: std::sys_common::backtrace::_print
at src/libstd/sys_common/backtrace.rs:70
2: std::panicking::default_hook::{{closure}}
at src/libstd/sys_common/backtrace.rs:58
at src/libstd/panicking.rs:200
3: std::panicking::default_hook
at src/libstd/panicking.rs:215
4: std::panicking::rust_panic_with_hook
at src/libstd/panicking.rs:478
5: std::panicking::continue_panic_fmt
at src/libstd/panicking.rs:385
6: rust_begin_unwind
at src/libstd/panicking.rs:312
7: core::panicking::panic_fmt
at src/libcore/panicking.rs:85
8: core::result::unwrap_failed
at /rustc/fc50f328b0353b285421b8ff5d4100966387a997/src/libcore/macros.rs:17
9: ra_mbe::mbe_parser::parse_subtree
at /rustc/fc50f328b0353b285421b8ff5d4100966387a997/src/libcore/result.rs:798
at crates/ra_mbe/src/mbe_parser.rs:92
at crates/ra_mbe/src/mbe_parser.rs:41
10: ra_mbe::mbe_parser::parse_subtree
at crates/ra_mbe/src/mbe_parser.rs:52
11: ra_mbe::mbe_parser::parse
at crates/ra_mbe/src/mbe_parser.rs:23
at crates/ra_mbe/src/mbe_parser.rs:11
12: ra_mbe::MacroRules::parse
at crates/ra_mbe/src/lib.rs:65
13: ra_hir::ids::macro_def_query
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/ids.rs:135
14: <salsa::runtime::Runtime<DB>>::execute_query_implementation
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/db.rs:42
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/derived.rs:376
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/runtime.rs:319
15: <salsa::derived::DerivedStorage<DB, Q, MP> as salsa::plumbing::QueryStorageOps<DB, Q>>::try_fetch
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/derived.rs:369
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/derived.rs:292
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/derived.rs:706
16: <salsa::QueryTable<'_, DB, Q>>::get
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/lib.rs:460
17: ra_hir::ids::HirFileId::hir_parse_query
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/db.rs:23
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/ids.rs:95
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/ids.rs:66
18: <salsa::runtime::Runtime<DB>>::execute_query_implementation
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/db.rs:45
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/derived.rs:376
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/runtime.rs:319
19: <salsa::derived::DerivedStorage<DB, Q, MP> as salsa::plumbing::QueryStorageOps<DB, Q>>::try_fetch
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/derived.rs:369
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/derived.rs:292
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/derived.rs:706
20: <salsa::QueryTable<'_, DB, Q>>::get
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/lib.rs:460
21: ra_hir::source_id::AstIdMap::ast_id_map_query
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/db.rs:23
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/source_id.rs:91
22: <salsa::runtime::Runtime<DB>>::execute_query_implementation
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/db.rs:60
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/derived.rs:376
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/runtime.rs:319
23: <salsa::derived::DerivedStorage<DB, Q, MP> as salsa::plumbing::QueryStorageOps<DB, Q>>::try_fetch
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/derived.rs:369
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/derived.rs:292
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/derived.rs:706
24: <salsa::QueryTable<'_, DB, Q>>::get
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/lib.rs:460
25: ra_hir::nameres::raw::RawItems::raw_items_with_source_map_query
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/db.rs:23
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/nameres/raw.rs:72
26: <salsa::runtime::Runtime<DB>>::execute_query_implementation
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/db.rs:69
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/derived.rs:376
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/runtime.rs:319
27: <salsa::derived::DerivedStorage<DB, Q, MP> as salsa::plumbing::QueryStorageOps<DB, Q>>::try_fetch
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/derived.rs:369
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/derived.rs:292
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/derived.rs:706
28: <salsa::QueryTable<'_, DB, Q>>::get
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/lib.rs:460
29: <salsa::runtime::Runtime<DB>>::execute_query_implementation
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/db.rs:23
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/nameres/raw.rs:63
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/db.rs:66
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/derived.rs:376
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/runtime.rs:319
30: <salsa::derived::DerivedStorage<DB, Q, MP> as salsa::plumbing::QueryStorageOps<DB, Q>>::try_fetch
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/derived.rs:369
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/derived.rs:292
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/derived.rs:706
31: <salsa::QueryTable<'_, DB, Q>>::get
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/lib.rs:460
32: <ra_hir::nameres::collector::DefCollector<&'a DB>>::collect_macro_expansion
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/db.rs:23
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/nameres/collector.rs:375
33: <ra_hir::nameres::collector::ModCollector<'_, &mut ra_hir::nameres::collector::DefCollector<&DB>>>::collect
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/nameres/collector.rs:528
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/nameres/collector.rs:413
34: <ra_hir::nameres::collector::DefCollector<&'a DB>>::collect_macro_expansion
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/nameres/collector.rs:376
35: <ra_hir::nameres::collector::ModCollector<'_, &mut ra_hir::nameres::collector::DefCollector<&DB>>>::collect
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/nameres/collector.rs:528
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/nameres/collector.rs:413
36: <ra_hir::nameres::collector::ModCollector<'_, &mut ra_hir::nameres::collector::DefCollector<&DB>>>::collect
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/nameres/collector.rs:440
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/nameres/collector.rs:406
37: ra_hir::nameres::collector::collect_defs
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/nameres/collector.rs:103
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/nameres/collector.rs:47
38: ra_hir::nameres::CrateDefMap::crate_def_map_query
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/nameres.rs:217
39: <salsa::runtime::Runtime<DB>>::execute_query_implementation
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/db.rs:75
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/derived.rs:376
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/runtime.rs:319
40: <salsa::derived::DerivedStorage<DB, Q, MP> as salsa::plumbing::QueryStorageOps<DB, Q>>::try_fetch
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/derived.rs:369
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/derived.rs:292
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/derived.rs:706
41: <salsa::QueryTable<'_, DB, Q>>::get
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/lib.rs:460
42: ra_hir::nameres::collector::collect_defs
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/db.rs:23
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/code_model_impl/krate.rs:18
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/code_model_api.rs:47
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/nameres/collector.rs:26
43: ra_hir::nameres::CrateDefMap::crate_def_map_query
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/nameres.rs:217
44: <salsa::runtime::Runtime<DB>>::execute_query_implementation
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/db.rs:75
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/derived.rs:376
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/runtime.rs:319
45: <salsa::derived::DerivedStorage<DB, Q, MP> as salsa::plumbing::QueryStorageOps<DB, Q>>::try_fetch
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/derived.rs:369
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/derived.rs:292
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/derived.rs:706
46: <salsa::QueryTable<'_, DB, Q>>::get
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/lib.rs:460
47: ra_hir::nameres::collector::collect_defs
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/db.rs:23
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/code_model_impl/krate.rs:18
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/code_model_api.rs:47
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/nameres/collector.rs:26
48: ra_hir::nameres::CrateDefMap::crate_def_map_query
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/nameres.rs:217
49: <salsa::runtime::Runtime<DB>>::execute_query_implementation
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/db.rs:75
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/derived.rs:376
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/runtime.rs:319
50: <salsa::derived::DerivedStorage<DB, Q, MP> as salsa::plumbing::QueryStorageOps<DB, Q>>::try_fetch
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/derived.rs:369
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/derived.rs:292
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/derived.rs:706
51: <salsa::QueryTable<'_, DB, Q>>::get
at /home/florian/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.12.0/src/lib.rs:460
52: ra_cli::analysis_stats::run
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/db.rs:23
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/code_model_impl/krate.rs:18
at /home/florian/Projekte/opensource/rust-analyzer/crates/ra_hir/src/code_model_api.rs:47
at crates/ra_cli/src/analysis_stats.rs:21
53: ra_cli::main
at crates/ra_cli/src/main.rs:54
54: std::rt::lang_start::{{closure}}
at /rustc/fc50f328b0353b285421b8ff5d4100966387a997/src/libstd/rt.rs:64
55: std::panicking::try::do_call
at src/libstd/rt.rs:49
at src/libstd/panicking.rs:297
56: __rust_maybe_catch_panic
at src/libpanic_unwind/lib.rs:87
57: std::rt::lang_start_internal
at src/libstd/panicking.rs:276
at src/libstd/panic.rs:388
at src/libstd/rt.rs:48
58: main
59: __libc_start_main
60: _start
About this issue
- Original URL
- State: closed
- Created 5 years ago
- Comments: 15 (15 by maintainers)
The problem also appears to happen in the Chalk repo, and hence in rust-analyzer once my PR is merged 😦