rust-lang / rust-lang/rust-analyzer
thread 'Worker' panicked at crates/span/src/ast_id.rs:203:21:
Open
Nobody has claimed this yet.
C-bug
I-panic
- Dominant language
- Rust
- Stars
- 16.9k
- Forks
- 2.2k
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 72
Description
rust-analyzer 0.3.1950-standalone (c4618fe14 2024-05-05)
stderr: thread 'Worker' panicked at crates/span/src/ast_id.rs:203:21:
stderr: Can't find CONST_ARG@2221..2222 in AstIdMap:
stderr: [SyntaxNodePtr { kind: SOURCE_FILE, range: 0..4620 }, SyntaxNodePtr { kind: USE, range: 0..31 }, SyntaxNodePtr { kind: USE, range: 32..70 }, SyntaxNodePtr { kind: USE, range: 71..101 }, SyntaxNodePtr { kind: USE, range: 102..147 }, SyntaxNodePtr { kind: USE, range: 149..209 }, SyntaxNodePtr { kind: MODULE, range: 211..975 }, SyntaxNodePtr { kind: IMPL, range: 977..1703 }, SyntaxNodePtr { kind: IMPL, range: 1705..2801 }, SyntaxNodePtr { kind: IMPL, range: 2803..3097 }, SyntaxNodePtr { kind: IMPL, range: 3099..3270 }, SyntaxNodePtr { kind: IMPL, range: 3272..3613 }, SyntaxNodePtr { kind: IMPL, range: 3615..3977 }, SyntaxNodePtr { kind: STRUCT, range: 3979..3999 }, SyntaxNodePtr { kind: IMPL, range: 4001..4286 }, SyntaxNodePtr { kind: IMPL, range: 4288..4446 }, SyntaxNodePtr { kind: MODULE, range: 4448..4619 }, SyntaxNodePtr { kind: USE, range: 225..238 }, SyntaxNodePtr { kind: TRAIT, range: 244..385 }, SyntaxNodePtr { kind: IMPL, range: 391..767 }, SyntaxNodePtr { kind: IMPL, range: 773..973 }, SyntaxNodePtr { kind: FN, range: 1077..1422 }, SyntaxNodePtr { kind: FN, range: 1428..1701 }, SyntaxNodePtr { kind: FN, range: 2163..2508 }, SyntaxNodePtr { kind: FN, range: 2514..2799 }, SyntaxNodePtr { kind: FN, range: 2885..3095 }, SyntaxNodePtr { kind: FN, range: 3169..3268 }, SyntaxNodePtr { kind: FN, range: 3370..3457 }, SyntaxNodePtr { kind: FN, range: 3463..3611 }, SyntaxNodePtr { kind: FN, range: 3687..3824 }, SyntaxNodePtr { kind: FN, range: 3830..3975 }, SyntaxNodePtr { kind: TUPLE_FIELD, range: 3996..3997 }, SyntaxNodePtr { kind: FN, range: 4057..4284 }, SyntaxNodePtr { kind: FN, range: 4341..4444 }, SyntaxNodePtr { kind: USE, range: 4477..4490 }, SyntaxNodePtr { kind: TRAIT, range: 4496..4515 }, SyntaxNodePtr { kind: IMPL, range: 4521..4581 }, SyntaxNodePtr { kind: IMPL, range: 4586..4617 }, SyntaxNodePtr { kind: FN, range: 273..379 }, SyntaxNodePtr { kind: FN, range: 520..761 }, SyntaxNodePtr { kind: FN, range: 807..967 }, SyntaxNodePtr { kind: SELF_PARAM, range: 1091..1095 }, SyntaxNodePtr { kind: PARAM, range: 1097..1107 }, SyntaxNodePtr { kind: BLOCK_EXPR, range: 1187..1422 }, SyntaxNodePtr { kind: SELF_PARAM, range: 1450..1454 }, SyntaxNodePtr { kind: PARAM, range: 1456..1466 }, SyntaxNodePtr { kind: BLOCK_EXPR, range: 1572..1701 }, SyntaxNodePtr { kind: SELF_PARAM, range: 2177..2181 }, SyntaxNodePtr { kind: PARAM, range: 2183..2193 }, SyntaxNodePtr { kind: BLOCK_EXPR, range: 2273..2508 }, SyntaxNodePtr { kind: SELF_PARAM, range: 2536..2540 }, SyntaxNodePtr { kind: PARAM, range: 2542..2552 }, SyntaxNodePtr { kind: BLOCK_EXPR, range: 2658..2799 }, SyntaxNodePtr { kind: SELF_PARAM, range: 2892..2897 }, SyntaxNodePtr { kind: PARAM, range: 2899..2921 }, SyntaxNodePtr { kind: BLOCK_EXPR, range: 2938..3095 }, SyntaxNodePtr { kind: SELF_PARAM, range: 3176..3181 }, SyntaxNodePtr { kind: PARAM, range: 3183..3205 }, SyntaxNodePtr { kind: BLOCK_EXPR, range: 3222..3268 }, SyntaxNodePtr { kind: SELF_PARAM, range: 3380..3385 }, SyntaxNodePtr { kind: BLOCK_EXPR, range: 3424..3457 }, SyntaxNodePtr { kind: SELF_PARAM, range: 3518..3526 }, SyntaxNodePtr { kind: PARAM, range: 3528..3553 }, SyntaxNodePtr { kind: BLOCK_EXPR, range: 3555..3611 }, SyntaxNodePtr { kind: SELF_PARAM, range: 3697..3702 }, SyntaxNodePtr { kind: BLOCK_EXPR, range: 3741..3824 }, SyntaxNodePtr { kind: SELF_PARAM, range: 3885..3893 }, SyntaxNodePtr { kind: PARAM, range: 3895..3920 }, SyntaxNodePtr { kind: BLOCK_EXPR, range: 3922..3975 }, SyntaxNodePtr { kind: SELF_PARAM, range: 4064..4069 }, SyntaxNodePtr { kind: PARAM, range: 4071..4101 }, SyntaxNodePtr { kind: BLOCK_EXPR, range: 4118..4284 }, SyntaxNodePtr { kind: SELF_PARAM, range: 4354..4363 }, SyntaxNodePtr { kind: PARAM, range: 4365..4372 }, SyntaxNodePtr { kind: BLOCK_EXPR, range: 4389..4444 }, SyntaxNodePtr { kind: SELF_PARAM, range: 291..295 }, SyntaxNodePtr { kind: PARAM, range: 297..307 }, SyntaxNodePtr { kind: SELF_PARAM, range: 538..542 }, SyntaxNodePtr { kind: PARAM, range: 544..554 }, SyntaxNodePtr { kind: BLOCK_EXPR, range: 635..761 }, SyntaxNodePtr { kind: SELF_PARAM, range: 825..829 }, SyntaxNodePtr { kind: PARAM, range: 831..841 }, SyntaxNodePtr { kind: BLOCK_EXPR, range: 922..967 }, SyntaxNodePtr { kind: MACRO_CALL, range: 2477..2489 }, SyntaxNodePtr { kind: MACRO_CALL, range: 2768..2780 }, SyntaxNodePtr { kind: BLOCK_EXPR, range: 3756..3817 }, SyntaxNodePtr { kind: MACRO_CALL, range: 4198..4224 }, SyntaxNodePtr { kind: MACRO_CALL, range: 665..692 }]
stderr: stack backtrace:
stderr: 0: _rust_begin_unwind
stderr: 1: core::panicking::panic_fmt
stderr: 2: span::ast_id::AstIdMap::erased_ast_id
stderr: 3: hir_def::hir::type_ref::ConstRef::from_const_arg
stderr: 4: hir_def::hir::type_ref::TypeRef::from_ast
stderr: 5: hir_def::path::lower::lower_generic_args
stderr: 6: hir_def::path::lower::lower_path
stderr: 7: hir_def::hir::type_ref::TypeRef::from_ast
stderr: 8: hir_def::path::lower::lower_generic_args
stderr: 9: hir_def::path::lower::lower_path
stderr: 10: hir::semantics::SemanticsScope::speculative_resolve
stderr: 11: ide_db::path_transform::Ctx::transform_path
stderr: 12: ide_db::path_transform::Ctx::apply
stderr: 13: ide_db::path_transform::PathTransform::apply
stderr: 14: ide_assists::handlers::generate_delegate_trait::transform_impl
stderr: 15: ide_assists::handlers::generate_delegate_trait::generate_impl
stderr: 16: ide_assists::handlers::generate_delegate_trait::generate_delegate_trait
stderr: 17: ide_assists::assists
stderr: 18: std::panicking::try
stderr: 19: ide::Analysis::assists_with_fixes
stderr: 20: rust_analyzer::handlers::request::handle_code_action
stderr: 21: std::panicking::try
stderr: 22: core::ops::function::FnOnce::call_once{{vtable.shim}}
stderr: note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with crates/span/src/ast_id.rs at the reported panic, then trace the generate_delegate_trait path through the stack trace. Reproduce the code action on the reported Rust input and ensure it no longer panics when lowering the CONST_ARG node.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- devtools
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100