VSCode extension stopped working
rust-analyzer version: (eg. output of "rust-analyzer: Show RA Version" command, accessible in VSCode via Ctrl/⌘+Shift+P)
0.3.1524-standalone
rustc version: (eg. output of rustc -V)
1.69.0 (84c898d65 2023-04-16)
relevant settings: (eg. client settings, or environment variables like CARGO, RUSTC, RUSTUP_HOME or CARGO_HOME)
No special settings, everything is default.
I've been using the extension for a long time, however it recently stopped working on all my machines. Completely resetting VSCode to factory and reinstalling the extension doesn't help. It is loaded and indexes the workspace correctly, but none of the IDE features are available, autocompletion, formatting, refactoring, nothing works.
Running VSCode 1.78.2 on Arch Linux.
Does it work in another project? Do you have anything in the logs?
Nothing in the logs unfortunately. But I think I found the issue, I have several rust projects in my workspace, it seems the extension is stuck the very first alphabetically, even when I'm working on a file from another one down the list. Deleting all projects but the current one restores functionnality.
Does that one work if you open it by itself?
Yes it does.
Seems to be reproducible, if I try to add another project to the workspace, the second one doesn't work. It starts working only if I delete the first one.
Running into a similar issue, it doesn't appear to be the exact same as this one, or at least I cannot reproduce the alphabetical ordering thing locally.
Have tested on both latest stable and latest pre-release, as well as VS Code versions 1.78.0 and 1.78.2 on Ubuntu 22.04. My project is a workspace with 28 crates inside of it.
The output from the Rust Analyzer Language Server produces this every time I open a file:
rustc version: rustc 1.71.0-nightly (1a5f8bce7 2023-05-26)
Language Server Output
thread 'Worker' panicked at 'index out of bounds: the len is 0 but the index is 0', /github/home/.cargo/registry/src/github.com-1ecc6299db9ec823/chalk-ir-0.89.0/src/fold/subst.rs:55:19
stack backtrace:
0: rust_begin_unwind
at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:579:5
1: core::panicking::panic_fmt
at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/panicking.rs:64:14
2: core::panicking::panic_bounds_check
at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/panicking.rs:159:5
3: <chalk_ir::fold::subst::Subst<I> as chalk_ir::fold::TypeFolder<I>>::fold_free_var_ty
4: chalk_ir::fold::TypeSuperFoldable::super_fold_with
5: chalk_ir::fold::TypeSuperFoldable::super_fold_with
6: chalk_ir::fold::boring_impls::<impl chalk_ir::fold::TypeFoldable<I> for chalk_ir::GenericArg<I>>::try_fold_with
7: <core::iter::adapters::GenericShunt<I,R> as core::iter::traits::iterator::Iterator>::next
8: <smallvec::SmallVec<A> as core::iter::traits::collect::Extend<<A as smallvec::Array>::Item>>::extend
9: chalk_ir::fold::boring_impls::<impl chalk_ir::fold::TypeFoldable<I> for chalk_ir::Substitution<I>>::try_fold_with
10: chalk_ir::fold::TypeSuperFoldable::super_fold_with
11: chalk_ir::fold::boring_impls::<impl chalk_ir::fold::TypeFoldable<I> for chalk_ir::GenericArg<I>>::try_fold_with
12: <core::iter::adapters::GenericShunt<I,R> as core::iter::traits::iterator::Iterator>::next
13: <smallvec::SmallVec<A> as core::iter::traits::collect::Extend<<A as smallvec::Array>::Item>>::extend
14: chalk_ir::fold::boring_impls::<impl chalk_ir::fold::TypeFoldable<I> for chalk_ir::Substitution<I>>::try_fold_with
15: chalk_ir::_::<impl chalk_ir::fold::TypeFoldable<I> for chalk_ir::WhereClause<I>>::try_fold_with
16: chalk_solve::infer::instantiate::<impl chalk_solve::infer::InferenceTable<I>>::instantiate_binders_universally
17: <chalk_solve::infer::unify::Unifier<I> as chalk_ir::zip::Zipper<I>>::zip_binders
18: <chalk_solve::infer::unify::Unifier<I> as chalk_ir::zip::Zipper<I>>::zip_binders
19: chalk_solve::infer::unify::Unifier<I>::relate_ty_ty
20: <chalk_solve::infer::unify::Unifier<I> as chalk_ir::zip::Zipper<I>>::zip_tys
21: chalk_ir::zip::Zipper::zip_substs
22: chalk_solve::infer::unify::Unifier<I>::relate_ty_ty
23: <chalk_solve::infer::unify::Unifier<I> as chalk_ir::zip::Zipper<I>>::zip_tys
24: chalk_solve::infer::unify::Unifier<I>::relate_ty_ty
25: chalk_solve::infer::unify::Unifier<I>::relate_var_ty
26: chalk_solve::infer::unify::Unifier<I>::relate_ty_ty
27: <chalk_solve::infer::unify::Unifier<I> as chalk_ir::zip::Zipper<I>>::zip_tys
28: chalk_ir::zip::Zipper::zip_substs
29: chalk_ir::_::<impl chalk_ir::zip::Zip<I> for chalk_ir::WhereClause<I>>::zip_with
30: chalk_ir::_::<impl chalk_ir::zip::Zip<I> for chalk_ir::DomainGoal<I>>::zip_with
31: chalk_solve::infer::unify::Unifier<I>::relate
32: chalk_recursive::fulfill::Fulfill<I,Solver>::new_with_clause
33: chalk_recursive::solve::SolveIterationHelpers::solve_from_clauses
34: chalk_recursive::solve::SolveIteration::solve_iteration
35: chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_goal
36: chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_root_goal
37: hir_ty::traits::trait_solve_query
38: salsa::runtime::Runtime::execute_query_implementation
39: salsa::derived::slot::Slot<Q,MP>::read_upgrade
40: salsa::derived::slot::Slot<Q,MP>::read
41: <salsa::derived::DerivedStorage<Q,MP> as salsa::plumbing::QueryStorageOps<Q>>::try_fetch
42: salsa::QueryTable<Q>::get
43: <DB as hir_ty::db::HirDatabase>::trait_solve_query
44: hir_ty::db::trait_solve_wait
45: <DB as hir_ty::db::HirDatabase>::trait_solve
46: <chalk_ir::Ty<hir_ty::interner::Interner> as hir_ty::chalk_ext::TyExt>::is_copy
47: hir_ty::mir::lower::MirLowerCtx::emit_drop_and_storage_dead_for_scope
48: hir_ty::mir::lower::MirLowerCtx::pop_drop_scope
49: hir_ty::mir::lower::MirLowerCtx::lower_loop
50: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place_without_adjust
51: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place_with_adjust
52: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place
53: hir_ty::mir::lower::MirLowerCtx::lower_block_to_place
54: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place_without_adjust
55: hir_ty::mir::lower::as_place::<impl hir_ty::mir::lower::MirLowerCtx>::lower_expr_to_some_place_without_adjust
56: hir_ty::mir::lower::MirLowerCtx::lower_loop
57: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place_without_adjust
58: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place_with_adjust
59: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place
60: hir_ty::mir::lower::MirLowerCtx::lower_block_to_place
61: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place_without_adjust
62: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place_with_adjust
63: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place
64: hir_ty::mir::lower::mir_body_for_closure_query
65: salsa::runtime::Runtime::execute_query_implementation
66: salsa::derived::slot::Slot<Q,MP>::read_upgrade
67: salsa::derived::slot::Slot<Q,MP>::read
68: <salsa::derived::DerivedStorage<Q,MP> as salsa::plumbing::QueryStorageOps<Q>>::try_fetch
69: <DB as hir_ty::db::HirDatabase>::mir_body_for_closure::__shim
70: <DB as hir_ty::db::HirDatabase>::mir_body_for_closure
71: hir_ty::mir::borrowck::all_mir_bodies::for_closure
72: <core::iter::adapters::flatten::FlatMap<I,U,F> as core::iter::traits::iterator::Iterator>::next
73: <core::iter::adapters::chain::Chain<A,B> as core::iter::traits::iterator::Iterator>::next
74: <core::iter::adapters::flatten::FlatMap<I,U,F> as core::iter::traits::iterator::Iterator>::next
75: <core::iter::adapters::chain::Chain<A,B> as core::iter::traits::iterator::Iterator>::next
76: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::try_fold
77: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter
78: core::iter::adapters::try_process
79: hir_ty::mir::borrowck::borrowck_query
80: salsa::runtime::Runtime::execute_query_implementation
81: salsa::derived::slot::Slot<Q,MP>::read_upgrade
82: salsa::derived::slot::Slot<Q,MP>::read
83: <salsa::derived::DerivedStorage<Q,MP> as salsa::plumbing::QueryStorageOps<Q>>::try_fetch
84: <DB as hir_ty::db::HirDatabase>::borrowck::__shim
85: <DB as hir_ty::db::HirDatabase>::borrowck
86: hir::DefWithBody::diagnostics
87: hir::Module::diagnostics
88: ide_diagnostics::diagnostics
89: salsa::Cancelled::catch
90: ide::Analysis::diagnostics
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
Here is the language server output from the beginning of my session (I started on one file and then opened another file):
Language Server Output
Panic context:
>
version: 0.4.1530-standalone
request: textDocument/codeAction CodeActionParams {
text_document: TextDocumentIdentifier {
uri: Url {
scheme: "file",
cannot_be_a_base: false,
username: "",
password: None,
host: None,
port: None,
path: "/home/blujay/dev/sentinels/crates/tooling/script-editor/src/attributes.rs",
query: None,
fragment: None,
},
},
range: Range {
start: Position {
line: 0,
character: 0,
},
end: Position {
line: 0,
character: 0,
},
},
context: CodeActionContext {
diagnostics: [],
only: None,
trigger_kind: Some(
Automatic,
),
},
work_done_progress_params: WorkDoneProgressParams {
work_done_token: None,
},
partial_result_params: PartialResultParams {
partial_result_token: None,
},
}
thread 'Worker' panicked at 'index out of bounds: the len is 0 but the index is 0', /github/home/.cargo/registry/src/github.com-1ecc6299db9ec823/chalk-ir-0.89.0/src/fold/subst.rs:55:19
stack backtrace:
0: rust_begin_unwind
at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:579:5
1: core::panicking::panic_fmt
at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/panicking.rs:64:14
2: core::panicking::panic_bounds_check
at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/panicking.rs:159:5
3: <chalk_ir::fold::subst::Subst<I> as chalk_ir::fold::TypeFolder<I>>::fold_free_var_ty
4: chalk_ir::fold::TypeSuperFoldable::super_fold_with
5: chalk_ir::fold::TypeSuperFoldable::super_fold_with
6: chalk_ir::fold::boring_impls::<impl chalk_ir::fold::TypeFoldable<I> for chalk_ir::GenericArg<I>>::try_fold_with
7: <core::iter::adapters::GenericShunt<I,R> as core::iter::traits::iterator::Iterator>::next
8: <smallvec::SmallVec<A> as core::iter::traits::collect::Extend<<A as smallvec::Array>::Item>>::extend
9: chalk_ir::fold::boring_impls::<impl chalk_ir::fold::TypeFoldable<I> for chalk_ir::Substitution<I>>::try_fold_with
10: chalk_ir::fold::TypeSuperFoldable::super_fold_with
11: chalk_ir::fold::boring_impls::<impl chalk_ir::fold::TypeFoldable<I> for chalk_ir::GenericArg<I>>::try_fold_with
12: <core::iter::adapters::GenericShunt<I,R> as core::iter::traits::iterator::Iterator>::next
13: <smallvec::SmallVec<A> as core::iter::traits::collect::Extend<<A as smallvec::Array>::Item>>::extend
14: chalk_ir::fold::boring_impls::<impl chalk_ir::fold::TypeFoldable<I> for chalk_ir::Substitution<I>>::try_fold_with
15: chalk_ir::_::<impl chalk_ir::fold::TypeFoldable<I> for chalk_ir::WhereClause<I>>::try_fold_with
16: chalk_solve::infer::instantiate::<impl chalk_solve::infer::InferenceTable<I>>::instantiate_binders_universally
17: <chalk_solve::infer::unify::Unifier<I> as chalk_ir::zip::Zipper<I>>::zip_binders
18: <chalk_solve::infer::unify::Unifier<I> as chalk_ir::zip::Zipper<I>>::zip_binders
19: chalk_solve::infer::unify::Unifier<I>::relate_ty_ty
20: <chalk_solve::infer::unify::Unifier<I> as chalk_ir::zip::Zipper<I>>::zip_tys
21: chalk_ir::zip::Zipper::zip_substs
22: chalk_solve::infer::unify::Unifier<I>::relate_ty_ty
23: <chalk_solve::infer::unify::Unifier<I> as chalk_ir::zip::Zipper<I>>::zip_tys
24: chalk_solve::infer::unify::Unifier<I>::relate_ty_ty
25: chalk_solve::infer::unify::Unifier<I>::relate_var_ty
26: chalk_solve::infer::unify::Unifier<I>::relate_ty_ty
27: <chalk_solve::infer::unify::Unifier<I> as chalk_ir::zip::Zipper<I>>::zip_tys
28: chalk_ir::zip::Zipper::zip_substs
29: chalk_ir::_::<impl chalk_ir::zip::Zip<I> for chalk_ir::WhereClause<I>>::zip_with
30: chalk_ir::_::<impl chalk_ir::zip::Zip<I> for chalk_ir::DomainGoal<I>>::zip_with
31: chalk_solve::infer::unify::Unifier<I>::relate
32: chalk_recursive::fulfill::Fulfill<I,Solver>::new_with_clause
33: chalk_recursive::solve::SolveIterationHelpers::solve_from_clauses
34: chalk_recursive::solve::SolveIteration::solve_iteration
35: chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_goal
36: chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_root_goal
37: hir_ty::traits::trait_solve_query
38: salsa::runtime::Runtime::execute_query_implementation
39: salsa::derived::slot::Slot<Q,MP>::read_upgrade
40: salsa::derived::slot::Slot<Q,MP>::read
41: <salsa::derived::DerivedStorage<Q,MP> as salsa::plumbing::QueryStorageOps<Q>>::try_fetch
42: salsa::QueryTable<Q>::get
43: <DB as hir_ty::db::HirDatabase>::trait_solve_query
44: hir_ty::db::trait_solve_wait
45: <DB as hir_ty::db::HirDatabase>::trait_solve
46: <chalk_ir::Ty<hir_ty::interner::Interner> as hir_ty::chalk_ext::TyExt>::is_copy
47: hir_ty::mir::lower::MirLowerCtx::emit_drop_and_storage_dead_for_scope
48: hir_ty::mir::lower::MirLowerCtx::pop_drop_scope
49: hir_ty::mir::lower::MirLowerCtx::lower_loop
50: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place_without_adjust
51: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place_with_adjust
52: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place
53: hir_ty::mir::lower::MirLowerCtx::lower_block_to_place
54: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place_without_adjust
55: hir_ty::mir::lower::as_place::<impl hir_ty::mir::lower::MirLowerCtx>::lower_expr_to_some_place_without_adjust
56: hir_ty::mir::lower::MirLowerCtx::lower_loop
57: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place_without_adjust
58: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place_with_adjust
59: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place
60: hir_ty::mir::lower::MirLowerCtx::lower_block_to_place
61: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place_without_adjust
62: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place_with_adjust
63: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place
64: hir_ty::mir::lower::mir_body_for_closure_query
65: salsa::runtime::Runtime::execute_query_implementation
66: salsa::derived::slot::Slot<Q,MP>::read_upgrade
67: salsa::derived::slot::Slot<Q,MP>::read
68: <salsa::derived::DerivedStorage<Q,MP> as salsa::plumbing::QueryStorageOps<Q>>::try_fetch
69: <DB as hir_ty::db::HirDatabase>::mir_body_for_closure::__shim
70: <DB as hir_ty::db::HirDatabase>::mir_body_for_closure
71: hir_ty::mir::borrowck::all_mir_bodies::for_closure
72: <core::iter::adapters::flatten::FlatMap<I,U,F> as core::iter::traits::iterator::Iterator>::next
73: <core::iter::adapters::chain::Chain<A,B> as core::iter::traits::iterator::Iterator>::next
74: <core::iter::adapters::flatten::FlatMap<I,U,F> as core::iter::traits::iterator::Iterator>::next
75: <core::iter::adapters::chain::Chain<A,B> as core::iter::traits::iterator::Iterator>::next
76: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::try_fold
77: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter
78: core::iter::adapters::try_process
79: hir_ty::mir::borrowck::borrowck_query
80: salsa::runtime::Runtime::execute_query_implementation
81: salsa::derived::slot::Slot<Q,MP>::read_upgrade
82: salsa::derived::slot::Slot<Q,MP>::read
83: <salsa::derived::DerivedStorage<Q,MP> as salsa::plumbing::QueryStorageOps<Q>>::try_fetch
84: <DB as hir_ty::db::HirDatabase>::borrowck::__shim
85: <DB as hir_ty::db::HirDatabase>::borrowck
86: hir::DefWithBody::diagnostics
87: hir::Module::diagnostics
88: ide_diagnostics::diagnostics
89: std::panicking::try
90: ide::Analysis::assists_with_fixes
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
Panic context:
>
version: 0.4.1530-standalone
request: textDocument/codeAction CodeActionParams {
text_document: TextDocumentIdentifier {
uri: Url {
scheme: "file",
cannot_be_a_base: false,
username: "",
password: None,
host: None,
port: None,
path: "/home/blujay/dev/sentinels/crates/tooling/script-editor/src/attributes.rs",
query: None,
fragment: None,
},
},
range: Range {
start: Position {
line: 0,
character: 0,
},
end: Position {
line: 0,
character: 0,
},
},
context: CodeActionContext {
diagnostics: [],
only: None,
trigger_kind: Some(
Automatic,
),
},
work_done_progress_params: WorkDoneProgressParams {
work_done_token: None,
},
partial_result_params: PartialResultParams {
partial_result_token: None,
},
}
thread 'Worker' panicked at 'index out of bounds: the len is 0 but the index is 0', /github/home/.cargo/registry/src/github.com-1ecc6299db9ec823/chalk-ir-0.89.0/src/fold/subst.rs:55:19
stack backtrace:
0: rust_begin_unwind
at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:579:5
1: core::panicking::panic_fmt
at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/panicking.rs:64:14
2: core::panicking::panic_bounds_check
at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/panicking.rs:159:5
3: <chalk_ir::fold::subst::Subst<I> as chalk_ir::fold::TypeFolder<I>>::fold_free_var_ty
4: chalk_ir::fold::TypeSuperFoldable::super_fold_with
5: chalk_ir::fold::TypeSuperFoldable::super_fold_with
6: chalk_ir::fold::boring_impls::<impl chalk_ir::fold::TypeFoldable<I> for chalk_ir::GenericArg<I>>::try_fold_with
7: <core::iter::adapters::GenericShunt<I,R> as core::iter::traits::iterator::Iterator>::next
8: <smallvec::SmallVec<A> as core::iter::traits::collect::Extend<<A as smallvec::Array>::Item>>::extend
9: chalk_ir::fold::boring_impls::<impl chalk_ir::fold::TypeFoldable<I> for chalk_ir::Substitution<I>>::try_fold_with
10: chalk_ir::fold::TypeSuperFoldable::super_fold_with
11: chalk_ir::fold::boring_impls::<impl chalk_ir::fold::TypeFoldable<I> for chalk_ir::GenericArg<I>>::try_fold_with
12: <core::iter::adapters::GenericShunt<I,R> as core::iter::traits::iterator::Iterator>::next
13: <smallvec::SmallVec<A> as core::iter::traits::collect::Extend<<A as smallvec::Array>::Item>>::extend
14: chalk_ir::fold::boring_impls::<impl chalk_ir::fold::TypeFoldable<I> for chalk_ir::Substitution<I>>::try_fold_with
15: chalk_ir::_::<impl chalk_ir::fold::TypeFoldable<I> for chalk_ir::WhereClause<I>>::try_fold_with
16: chalk_solve::infer::instantiate::<impl chalk_solve::infer::InferenceTable<I>>::instantiate_binders_universally
17: <chalk_solve::infer::unify::Unifier<I> as chalk_ir::zip::Zipper<I>>::zip_binders
18: <chalk_solve::infer::unify::Unifier<I> as chalk_ir::zip::Zipper<I>>::zip_binders
19: chalk_solve::infer::unify::Unifier<I>::relate_ty_ty
20: <chalk_solve::infer::unify::Unifier<I> as chalk_ir::zip::Zipper<I>>::zip_tys
21: chalk_ir::zip::Zipper::zip_substs
22: chalk_solve::infer::unify::Unifier<I>::relate_ty_ty
23: <chalk_solve::infer::unify::Unifier<I> as chalk_ir::zip::Zipper<I>>::zip_tys
24: chalk_solve::infer::unify::Unifier<I>::relate_ty_ty
25: chalk_solve::infer::unify::Unifier<I>::relate_var_ty
26: chalk_solve::infer::unify::Unifier<I>::relate_ty_ty
27: <chalk_solve::infer::unify::Unifier<I> as chalk_ir::zip::Zipper<I>>::zip_tys
28: chalk_ir::zip::Zipper::zip_substs
29: chalk_ir::_::<impl chalk_ir::zip::Zip<I> for chalk_ir::WhereClause<I>>::zip_with
30: chalk_ir::_::<impl chalk_ir::zip::Zip<I> for chalk_ir::DomainGoal<I>>::zip_with
31: chalk_solve::infer::unify::Unifier<I>::relate
32: chalk_recursive::fulfill::Fulfill<I,Solver>::new_with_clause
33: chalk_recursive::solve::SolveIterationHelpers::solve_from_clauses
34: chalk_recursive::solve::SolveIteration::solve_iteration
35: chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_goal
36: chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_root_goal
37: hir_ty::traits::trait_solve_query
38: salsa::runtime::Runtime::execute_query_implementation
39: salsa::derived::slot::Slot<Q,MP>::read_upgrade
40: salsa::derived::slot::Slot<Q,MP>::read
41: <salsa::derived::DerivedStorage<Q,MP> as salsa::plumbing::QueryStorageOps<Q>>::try_fetch
42: salsa::QueryTable<Q>::get
43: <DB as hir_ty::db::HirDatabase>::trait_solve_query
44: hir_ty::db::trait_solve_wait
45: <DB as hir_ty::db::HirDatabase>::trait_solve
46: <chalk_ir::Ty<hir_ty::interner::Interner> as hir_ty::chalk_ext::TyExt>::is_copy
47: hir_ty::mir::lower::MirLowerCtx::emit_drop_and_storage_dead_for_scope
48: hir_ty::mir::lower::MirLowerCtx::pop_drop_scope
49: hir_ty::mir::lower::MirLowerCtx::lower_loop
50: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place_without_adjust
51: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place_with_adjust
52: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place
53: hir_ty::mir::lower::MirLowerCtx::lower_block_to_place
54: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place_without_adjust
55: hir_ty::mir::lower::as_place::<impl hir_ty::mir::lower::MirLowerCtx>::lower_expr_to_some_place_without_adjust
56: hir_ty::mir::lower::MirLowerCtx::lower_loop
57: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place_without_adjust
58: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place_with_adjust
59: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place
60: hir_ty::mir::lower::MirLowerCtx::lower_block_to_place
61: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place_without_adjust
62: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place_with_adjust
63: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place
64: hir_ty::mir::lower::mir_body_for_closure_query
65: salsa::runtime::Runtime::execute_query_implementation
66: salsa::derived::slot::Slot<Q,MP>::read_upgrade
67: salsa::derived::slot::Slot<Q,MP>::read
68: <salsa::derived::DerivedStorage<Q,MP> as salsa::plumbing::QueryStorageOps<Q>>::try_fetch
69: <DB as hir_ty::db::HirDatabase>::mir_body_for_closure::__shim
70: <DB as hir_ty::db::HirDatabase>::mir_body_for_closure
71: hir_ty::mir::borrowck::all_mir_bodies::for_closure
72: <core::iter::adapters::flatten::FlatMap<I,U,F> as core::iter::traits::iterator::Iterator>::next
73: <core::iter::adapters::chain::Chain<A,B> as core::iter::traits::iterator::Iterator>::next
74: <core::iter::adapters::flatten::FlatMap<I,U,F> as core::iter::traits::iterator::Iterator>::next
75: <core::iter::adapters::chain::Chain<A,B> as core::iter::traits::iterator::Iterator>::next
76: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::try_fold
77: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter
78: core::iter::adapters::try_process
79: hir_ty::mir::borrowck::borrowck_query
80: salsa::runtime::Runtime::execute_query_implementation
81: salsa::derived::slot::Slot<Q,MP>::read_upgrade
82: salsa::derived::slot::Slot<Q,MP>::read
83: <salsa::derived::DerivedStorage<Q,MP> as salsa::plumbing::QueryStorageOps<Q>>::try_fetch
84: <DB as hir_ty::db::HirDatabase>::borrowck::__shim
85: <DB as hir_ty::db::HirDatabase>::borrowck
86: hir::DefWithBody::diagnostics
87: hir::Module::diagnostics
88: ide_diagnostics::diagnostics
89: std::panicking::try
90: ide::Analysis::assists_with_fixes
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
thread 'Worker' panicked at 'index out of bounds: the len is 0 but the index is 0', /github/home/.cargo/registry/src/github.com-1ecc6299db9ec823/chalk-ir-0.89.0/src/fold/subst.rs:55:19
stack backtrace:
0: rust_begin_unwind
at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:579:5
1: core::panicking::panic_fmt
at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/panicking.rs:64:14
2: core::panicking::panic_bounds_check
at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/panicking.rs:159:5
3: <chalk_ir::fold::subst::Subst<I> as chalk_ir::fold::TypeFolder<I>>::fold_free_var_ty
4: chalk_ir::fold::TypeSuperFoldable::super_fold_with
5: chalk_ir::fold::TypeSuperFoldable::super_fold_with
6: chalk_ir::fold::boring_impls::<impl chalk_ir::fold::TypeFoldable<I> for chalk_ir::GenericArg<I>>::try_fold_with
7: <core::iter::adapters::GenericShunt<I,R> as core::iter::traits::iterator::Iterator>::next
8: <smallvec::SmallVec<A> as core::iter::traits::collect::Extend<<A as smallvec::Array>::Item>>::extend
9: chalk_ir::fold::boring_impls::<impl chalk_ir::fold::TypeFoldable<I> for chalk_ir::Substitution<I>>::try_fold_with
10: chalk_ir::fold::TypeSuperFoldable::super_fold_with
11: chalk_ir::fold::boring_impls::<impl chalk_ir::fold::TypeFoldable<I> for chalk_ir::GenericArg<I>>::try_fold_with
12: <core::iter::adapters::GenericShunt<I,R> as core::iter::traits::iterator::Iterator>::next
13: <smallvec::SmallVec<A> as core::iter::traits::collect::Extend<<A as smallvec::Array>::Item>>::extend
14: chalk_ir::fold::boring_impls::<impl chalk_ir::fold::TypeFoldable<I> for chalk_ir::Substitution<I>>::try_fold_with
15: chalk_ir::_::<impl chalk_ir::fold::TypeFoldable<I> for chalk_ir::WhereClause<I>>::try_fold_with
16: chalk_solve::infer::instantiate::<impl chalk_solve::infer::InferenceTable<I>>::instantiate_binders_universally
17: <chalk_solve::infer::unify::Unifier<I> as chalk_ir::zip::Zipper<I>>::zip_binders
18: <chalk_solve::infer::unify::Unifier<I> as chalk_ir::zip::Zipper<I>>::zip_binders
19: chalk_solve::infer::unify::Unifier<I>::relate_ty_ty
20: <chalk_solve::infer::unify::Unifier<I> as chalk_ir::zip::Zipper<I>>::zip_tys
21: chalk_ir::zip::Zipper::zip_substs
22: chalk_solve::infer::unify::Unifier<I>::relate_ty_ty
23: <chalk_solve::infer::unify::Unifier<I> as chalk_ir::zip::Zipper<I>>::zip_tys
24: chalk_solve::infer::unify::Unifier<I>::relate_ty_ty
25: chalk_solve::infer::unify::Unifier<I>::relate_var_ty
26: chalk_solve::infer::unify::Unifier<I>::relate_ty_ty
27: <chalk_solve::infer::unify::Unifier<I> as chalk_ir::zip::Zipper<I>>::zip_tys
28: chalk_ir::zip::Zipper::zip_substs
29: chalk_ir::_::<impl chalk_ir::zip::Zip<I> for chalk_ir::WhereClause<I>>::zip_with
30: chalk_ir::_::<impl chalk_ir::zip::Zip<I> for chalk_ir::DomainGoal<I>>::zip_with
31: chalk_solve::infer::unify::Unifier<I>::relate
32: chalk_recursive::fulfill::Fulfill<I,Solver>::new_with_clause
33: chalk_recursive::solve::SolveIterationHelpers::solve_from_clauses
34: chalk_recursive::solve::SolveIteration::solve_iteration
35: chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_goal
36: chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_root_goal
37: hir_ty::traits::trait_solve_query
38: salsa::runtime::Runtime::execute_query_implementation
39: salsa::derived::slot::Slot<Q,MP>::read_upgrade
40: salsa::derived::slot::Slot<Q,MP>::read
41: <salsa::derived::DerivedStorage<Q,MP> as salsa::plumbing::QueryStorageOps<Q>>::try_fetch
42: salsa::QueryTable<Q>::get
43: <DB as hir_ty::db::HirDatabase>::trait_solve_query
44: hir_ty::db::trait_solve_wait
45: <DB as hir_ty::db::HirDatabase>::trait_solve
46: <chalk_ir::Ty<hir_ty::interner::Interner> as hir_ty::chalk_ext::TyExt>::is_copy
47: hir_ty::mir::lower::MirLowerCtx::emit_drop_and_storage_dead_for_scope
48: hir_ty::mir::lower::MirLowerCtx::pop_drop_scope
49: hir_ty::mir::lower::MirLowerCtx::lower_loop
50: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place_without_adjust
51: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place_with_adjust
52: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place
53: hir_ty::mir::lower::MirLowerCtx::lower_block_to_place
54: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place_without_adjust
55: hir_ty::mir::lower::as_place::<impl hir_ty::mir::lower::MirLowerCtx>::lower_expr_to_some_place_without_adjust
56: hir_ty::mir::lower::MirLowerCtx::lower_loop
57: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place_without_adjust
58: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place_with_adjust
59: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place
60: hir_ty::mir::lower::MirLowerCtx::lower_block_to_place
61: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place_without_adjust
62: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place_with_adjust
63: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place
64: hir_ty::mir::lower::mir_body_for_closure_query
65: salsa::runtime::Runtime::execute_query_implementation
66: salsa::derived::slot::Slot<Q,MP>::read_upgrade
67: salsa::derived::slot::Slot<Q,MP>::read
68: <salsa::derived::DerivedStorage<Q,MP> as salsa::plumbing::QueryStorageOps<Q>>::try_fetch
69: <DB as hir_ty::db::HirDatabase>::mir_body_for_closure::__shim
70: <DB as hir_ty::db::HirDatabase>::mir_body_for_closure
71: hir_ty::mir::borrowck::all_mir_bodies::for_closure
72: <core::iter::adapters::flatten::FlatMap<I,U,F> as core::iter::traits::iterator::Iterator>::next
73: <core::iter::adapters::chain::Chain<A,B> as core::iter::traits::iterator::Iterator>::next
74: <core::iter::adapters::flatten::FlatMap<I,U,F> as core::iter::traits::iterator::Iterator>::next
75: <core::iter::adapters::chain::Chain<A,B> as core::iter::traits::iterator::Iterator>::next
76: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::try_fold
77: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter
78: core::iter::adapters::try_process
79: hir_ty::mir::borrowck::borrowck_query
80: salsa::runtime::Runtime::execute_query_implementation
81: salsa::derived::slot::Slot<Q,MP>::read_upgrade
82: salsa::derived::slot::Slot<Q,MP>::read
83: <salsa::derived::DerivedStorage<Q,MP> as salsa::plumbing::QueryStorageOps<Q>>::try_fetch
84: <DB as hir_ty::db::HirDatabase>::borrowck::__shim
85: <DB as hir_ty::db::HirDatabase>::borrowck
86: hir::DefWithBody::diagnostics
87: hir::Module::diagnostics
88: ide_diagnostics::diagnostics
89: salsa::Cancelled::catch
90: ide::Analysis::diagnostics
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
thread 'Worker' panicked at 'index out of bounds: the len is 0 but the index is 0', /github/home/.cargo/registry/src/github.com-1ecc6299db9ec823/chalk-ir-0.89.0/src/fold/subst.rs:55:19
stack backtrace:
0: rust_begin_unwind
at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:579:5
1: core::panicking::panic_fmt
at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/panicking.rs:64:14
2: core::panicking::panic_bounds_check
at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/panicking.rs:159:5
3: <chalk_ir::fold::subst::Subst<I> as chalk_ir::fold::TypeFolder<I>>::fold_free_var_ty
4: chalk_ir::fold::TypeSuperFoldable::super_fold_with
5: chalk_ir::fold::TypeSuperFoldable::super_fold_with
6: chalk_ir::fold::boring_impls::<impl chalk_ir::fold::TypeFoldable<I> for chalk_ir::GenericArg<I>>::try_fold_with
7: <core::iter::adapters::GenericShunt<I,R> as core::iter::traits::iterator::Iterator>::next
8: <smallvec::SmallVec<A> as core::iter::traits::collect::Extend<<A as smallvec::Array>::Item>>::extend
9: chalk_ir::fold::boring_impls::<impl chalk_ir::fold::TypeFoldable<I> for chalk_ir::Substitution<I>>::try_fold_with
10: chalk_ir::fold::TypeSuperFoldable::super_fold_with
11: chalk_ir::fold::boring_impls::<impl chalk_ir::fold::TypeFoldable<I> for chalk_ir::GenericArg<I>>::try_fold_with
12: <core::iter::adapters::GenericShunt<I,R> as core::iter::traits::iterator::Iterator>::next
13: <smallvec::SmallVec<A> as core::iter::traits::collect::Extend<<A as smallvec::Array>::Item>>::extend
14: chalk_ir::fold::boring_impls::<impl chalk_ir::fold::TypeFoldable<I> for chalk_ir::Substitution<I>>::try_fold_with
15: chalk_ir::_::<impl chalk_ir::fold::TypeFoldable<I> for chalk_ir::WhereClause<I>>::try_fold_with
16: chalk_solve::infer::instantiate::<impl chalk_solve::infer::InferenceTable<I>>::instantiate_binders_universally
17: <chalk_solve::infer::unify::Unifier<I> as chalk_ir::zip::Zipper<I>>::zip_binders
18: <chalk_solve::infer::unify::Unifier<I> as chalk_ir::zip::Zipper<I>>::zip_binders
19: chalk_solve::infer::unify::Unifier<I>::relate_ty_ty
20: <chalk_solve::infer::unify::Unifier<I> as chalk_ir::zip::Zipper<I>>::zip_tys
21: chalk_ir::zip::Zipper::zip_substs
22: chalk_solve::infer::unify::Unifier<I>::relate_ty_ty
23: <chalk_solve::infer::unify::Unifier<I> as chalk_ir::zip::Zipper<I>>::zip_tys
24: chalk_solve::infer::unify::Unifier<I>::relate_ty_ty
25: chalk_solve::infer::unify::Unifier<I>::relate_var_ty
26: chalk_solve::infer::unify::Unifier<I>::relate_ty_ty
27: <chalk_solve::infer::unify::Unifier<I> as chalk_ir::zip::Zipper<I>>::zip_tys
28: chalk_ir::zip::Zipper::zip_substs
29: chalk_ir::_::<impl chalk_ir::zip::Zip<I> for chalk_ir::WhereClause<I>>::zip_with
30: chalk_ir::_::<impl chalk_ir::zip::Zip<I> for chalk_ir::DomainGoal<I>>::zip_with
31: chalk_solve::infer::unify::Unifier<I>::relate
32: chalk_recursive::fulfill::Fulfill<I,Solver>::new_with_clause
33: chalk_recursive::solve::SolveIterationHelpers::solve_from_clauses
34: chalk_recursive::solve::SolveIteration::solve_iteration
35: chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_goal
36: chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_root_goal
37: hir_ty::traits::trait_solve_query
38: salsa::runtime::Runtime::execute_query_implementation
39: salsa::derived::slot::Slot<Q,MP>::read_upgrade
40: salsa::derived::slot::Slot<Q,MP>::read
41: <salsa::derived::DerivedStorage<Q,MP> as salsa::plumbing::QueryStorageOps<Q>>::try_fetch
42: salsa::QueryTable<Q>::get
43: <DB as hir_ty::db::HirDatabase>::trait_solve_query
44: hir_ty::db::trait_solve_wait
45: <DB as hir_ty::db::HirDatabase>::trait_solve
46: <chalk_ir::Ty<hir_ty::interner::Interner> as hir_ty::chalk_ext::TyExt>::is_copy
47: hir_ty::mir::lower::MirLowerCtx::emit_drop_and_storage_dead_for_scope
48: hir_ty::mir::lower::MirLowerCtx::pop_drop_scope
49: hir_ty::mir::lower::MirLowerCtx::lower_loop
50: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place_without_adjust
51: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place_with_adjust
52: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place
53: hir_ty::mir::lower::MirLowerCtx::lower_block_to_place
54: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place_without_adjust
55: hir_ty::mir::lower::as_place::<impl hir_ty::mir::lower::MirLowerCtx>::lower_expr_to_some_place_without_adjust
56: hir_ty::mir::lower::MirLowerCtx::lower_loop
57: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place_without_adjust
58: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place_with_adjust
59: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place
60: hir_ty::mir::lower::MirLowerCtx::lower_block_to_place
61: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place_without_adjust
62: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place_with_adjust
63: hir_ty::mir::lower::MirLowerCtx::lower_expr_to_place
64: hir_ty::mir::lower::mir_body_for_closure_query
65: salsa::runtime::Runtime::execute_query_implementation
66: salsa::derived::slot::Slot<Q,MP>::read_upgrade
67: salsa::derived::slot::Slot<Q,MP>::read
68: <salsa::derived::DerivedStorage<Q,MP> as salsa::plumbing::QueryStorageOps<Q>>::try_fetch
69: <DB as hir_ty::db::HirDatabase>::mir_body_for_closure::__shim
70: <DB as hir_ty::db::HirDatabase>::mir_body_for_closure
71: hir_ty::mir::borrowck::all_mir_bodies::for_closure
72: <core::iter::adapters::flatten::FlatMap<I,U,F> as core::iter::traits::iterator::Iterator>::next
73: <core::iter::adapters::chain::Chain<A,B> as core::iter::traits::iterator::Iterator>::next
74: <core::iter::adapters::flatten::FlatMap<I,U,F> as core::iter::traits::iterator::Iterator>::next
75: <core::iter::adapters::chain::Chain<A,B> as core::iter::traits::iterator::Iterator>::next
76: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::try_fold
77: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter
78: core::iter::adapters::try_process
79: hir_ty::mir::borrowck::borrowck_query
80: salsa::runtime::Runtime::execute_query_implementation
81: salsa::derived::slot::Slot<Q,MP>::read_upgrade
82: salsa::derived::slot::Slot<Q,MP>::read
83: <salsa::derived::DerivedStorage<Q,MP> as salsa::plumbing::QueryStorageOps<Q>>::try_fetch
84: <DB as hir_ty::db::HirDatabase>::borrowck::__shim
85: <DB as hir_ty::db::HirDatabase>::borrowck
86: hir::DefWithBody::diagnostics
87: hir::Module::diagnostics
88: ide_diagnostics::diagnostics
89: salsa::Cancelled::catch
90: ide::Analysis::diagnostics
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
EDIT: As for behavior, I'm able to do things like symbol renaming, Format on Save is working as expected, auto-complete, etc. Errors are inconsistently reported, and when they are reported 90% of the time they don't go away once the error is corrected
Persisting Error
(Note that the file is saved)
It seems that it only reports syntax errors as well, as I currently have a lifetime error in one of my signatures and it is not reflected in RA:
Missing Error
The error as reported by cargo check -p attribute-editor
error: lifetime may not live long enough
--> crates/tooling/attribute-editor/src/lib.rs:47:9
|
44 | &mut self,
| - let's call the lifetime of this reference `'1`
45 | args: <A::Builder<'_> as AttributeBuilder<T>>::Args,
| ---- has type `<<A as AttributeWithBuilder<T>>::Builder<'2> as AttributeBuilder<T>>::Args`
46 | ) -> AttributeBuilderWrapper<'_, A::Builder<'_>, T> {
47 | / AttributeBuilderWrapper {
48 | | section: self,
49 | | builder: Some(<A::Builder<'_> as AttributeBuilder<T>>::from_args(args)),
50 | | }
| |_________^ method was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
error: lifetime may not live long enough
--> crates/tooling/attribute-editor/src/lib.rs:47:9
|
44 | &mut self,
| - let's call the lifetime of this reference `'1`
45 | args: <A::Builder<'_> as AttributeBuilder<T>>::Args,
| ---- has type `<<A as AttributeWithBuilder<T>>::Builder<'2> as AttributeBuilder<T>>::Args`
46 | ) -> AttributeBuilderWrapper<'_, A::Builder<'_>, T> {
47 | / AttributeBuilderWrapper {
48 | | section: self,
49 | | builder: Some(<A::Builder<'_> as AttributeBuilder<T>>::from_args(args)),
50 | | }
| |_________^ method was supposed to return data with lifetime `'1` but it is returning data with lifetime `'2`
In-editor
Update, I messed around with it this morning, after a rustup update + cargo update everything seems to be running fine again. Not sure what happened, or if it was my own fault, but you can count me out of this discussion, sorry!
@alucryd does this still happen? Can you prepare a workspace showing the issue?
@alucryd does this still happen? Can you prepare a workspace showing the issue?
Had the issue not too long ago still, I can only have one working rust project in a single workspace.