rust-lang / rust-lang/rust-analyzer

thread 'Worker' panicked at crates/span/src/ast_id.rs:203:21:

Open
#17,214 4 comments 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.