-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Closed
Labels
A-tytype system / type inference / traits / method resolutiontype system / type inference / traits / method resolutionBroken WindowBugs / technical debt to be addressed immediatelyBugs / technical debt to be addressed immediatelyS-actionableSomeone could pick this issue up and work on it right nowSomeone could pick this issue up and work on it right now
Description
Environment
- VSCode version: 1.59.1, Windows 10 with repo open in WSL remote.
- rust-analyzer version: 996300f 2021-08-23 stable
To reproduce
- Set up VSCode with the rust-analyzer plugin.
- Check out https://github.com/zkcrypto/bellman/tree/2021-08-26-rust-analyzer-multiexp-bug
- Open
src/multiexp.rsin VSCode editor window.
Result
rust-analyzer panics twice: once at position 0,0, and again at a position within a line or so of my cursor. Any time I move my cursor (or I think even move my mouse above the multiexp.rs editor pane), another panic is triggered within a second or so.
Panic output
Panic context:
>
version: 996300f4a 2021-08-23 stable
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/str4d/dev/rust/zkcrypto/bellman/src/multiexp.rs",
query: None,
fragment: None,
},
},
range: Range {
start: Position {
line: 0,
character: 0,
},
end: Position {
line: 0,
character: 0,
},
},
context: CodeActionContext {
diagnostics: [],
only: None,
},
work_done_progress_params: WorkDoneProgressParams {
work_done_token: None,
},
partial_result_params: PartialResultParams {
partial_result_token: None,
},
}
thread '<unnamed>' panicked at 'index out of bounds: the len is 1 but the index is 1', /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/chalk-ir-0.70.0/src/lib.rs:2752:10
stack backtrace:
0: rust_begin_unwind
at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:515:5
1: core::panicking::panic_fmt
at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/panicking.rs:92:14
2: core::panicking::panic_bounds_check
at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/panicking.rs:69:5
3: <&chalk_ir::SubstFolder<I,A> as chalk_ir::fold::Folder<I>>::fold_free_var_ty
4: <chalk_ir::Ty<I> as chalk_ir::fold::SuperFold<I>>::super_fold_with
5: chalk_ir::fold::boring_impls::<impl chalk_ir::fold::Fold<I> for chalk_ir::GenericArg<I>>::fold_with
6: <smallvec::SmallVec<A> as core::iter::traits::collect::Extend<<A as smallvec::Array>::Item>>::extend
7: chalk_ir::fold::boring_impls::<impl chalk_ir::fold::Fold<I> for chalk_ir::Substitution<I>>::fold_with
8: <chalk_ir::Ty<I> as chalk_ir::fold::SuperFold<I>>::super_fold_with
9: <chalk_ir::Ty<I> as chalk_ir::fold::SuperFold<I>>::super_fold_with
10: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_method_call
11: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
12: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr
13: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_method_call
14: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
15: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
16: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
17: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
18: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
19: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
20: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
21: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
22: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
23: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
24: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
25: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr
26: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
27: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
28: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
29: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
30: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
31: hir_ty::infer::infer_query
32: salsa::runtime::Runtime::execute_query_implementation
33: salsa::derived::slot::Slot<Q,MP>::read_upgrade
34: salsa::derived::slot::Slot<Q,MP>::read
35: <salsa::derived::DerivedStorage<Q,MP> as salsa::plumbing::QueryStorageOps<Q>>::try_fetch
36: <DB as hir_ty::db::HirDatabase>::infer_query
37: hir_ty::db::infer_wait
38: hir::Function::diagnostics
39: hir::Module::diagnostics
40: ide_diagnostics::diagnostics
41: ide::Analysis::assists_with_fixes::{{closure}}
42: std::panicking::try
43: rust_analyzer::handlers::handle_code_action
44: rust_analyzer::dispatch::RequestDispatcher::on::{{closure}}::{{closure}}
45: <F as threadpool::FnBox>::call_box
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
Panic context:
>
version: 996300f4a 2021-08-23 stable
request: rust-analyzer/inlayHints InlayHintsParams {
text_document: TextDocumentIdentifier {
uri: Url {
scheme: "file",
cannot_be_a_base: false,
username: "",
password: None,
host: None,
port: None,
path: "/home/str4d/dev/rust/zkcrypto/bellman/src/multiexp.rs",
query: None,
fragment: None,
},
},
}
thread '<unnamed>' panicked at 'index out of bounds: the len is 1 but the index is 1', /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/chalk-ir-0.70.0/src/lib.rs:2752:10
stack backtrace:
0: rust_begin_unwind
at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:515:5
1: core::panicking::panic_fmt
at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/panicking.rs:92:14
2: core::panicking::panic_bounds_check
at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/panicking.rs:69:5
3: <&chalk_ir::SubstFolder<I,A> as chalk_ir::fold::Folder<I>>::fold_free_var_ty
4: <chalk_ir::Ty<I> as chalk_ir::fold::SuperFold<I>>::super_fold_with
5: chalk_ir::fold::boring_impls::<impl chalk_ir::fold::Fold<I> for chalk_ir::GenericArg<I>>::fold_with
6: <smallvec::SmallVec<A> as core::iter::traits::collect::Extend<<A as smallvec::Array>::Item>>::extend
7: chalk_ir::fold::boring_impls::<impl chalk_ir::fold::Fold<I> for chalk_ir::Substitution<I>>::fold_with
8: <chalk_ir::Ty<I> as chalk_ir::fold::SuperFold<I>>::super_fold_with
9: <chalk_ir::Ty<I> as chalk_ir::fold::SuperFold<I>>::super_fold_with
10: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_method_call
11: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
12: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr
13: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_method_call
14: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
15: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
16: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
17: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
18: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
19: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
20: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
21: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
22: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
23: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
24: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
25: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr
26: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
27: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
28: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
29: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
30: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
31: hir_ty::infer::infer_query
32: salsa::runtime::Runtime::execute_query_implementation
33: salsa::derived::slot::Slot<Q,MP>::read_upgrade
34: salsa::derived::slot::Slot<Q,MP>::read
35: <salsa::derived::DerivedStorage<Q,MP> as salsa::plumbing::QueryStorageOps<Q>>::try_fetch
36: <DB as hir_ty::db::HirDatabase>::infer_query
37: hir_ty::db::infer_wait
38: hir::semantics::SemanticsImpl::analyze_impl
39: hir::semantics::SemanticsImpl::scope
40: ide::inlay_hints::inlay_hints
41: std::panicking::try
42: rust_analyzer::handlers::handle_inlay_hints
43: rust_analyzer::dispatch::RequestDispatcher::on::{{closure}}::{{closure}}
44: <F as threadpool::FnBox>::call_box
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
Panic context:
>
version: 996300f4a 2021-08-23 stable
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/str4d/dev/rust/zkcrypto/bellman/src/multiexp.rs",
query: None,
fragment: None,
},
},
range: Range {
start: Position {
line: 15,
character: 18,
},
end: Position {
line: 15,
character: 18,
},
},
context: CodeActionContext {
diagnostics: [],
only: None,
},
work_done_progress_params: WorkDoneProgressParams {
work_done_token: None,
},
partial_result_params: PartialResultParams {
partial_result_token: None,
},
}
thread '<unnamed>' panicked at 'index out of bounds: the len is 1 but the index is 1', /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/chalk-ir-0.70.0/src/lib.rs:2752:10
stack backtrace:
0: rust_begin_unwind
at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:515:5
1: core::panicking::panic_fmt
at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/panicking.rs:92:14
2: core::panicking::panic_bounds_check
at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/panicking.rs:69:5
3: <&chalk_ir::SubstFolder<I,A> as chalk_ir::fold::Folder<I>>::fold_free_var_ty
4: <chalk_ir::Ty<I> as chalk_ir::fold::SuperFold<I>>::super_fold_with
5: chalk_ir::fold::boring_impls::<impl chalk_ir::fold::Fold<I> for chalk_ir::GenericArg<I>>::fold_with
6: <smallvec::SmallVec<A> as core::iter::traits::collect::Extend<<A as smallvec::Array>::Item>>::extend
7: chalk_ir::fold::boring_impls::<impl chalk_ir::fold::Fold<I> for chalk_ir::Substitution<I>>::fold_with
8: <chalk_ir::Ty<I> as chalk_ir::fold::SuperFold<I>>::super_fold_with
9: <chalk_ir::Ty<I> as chalk_ir::fold::SuperFold<I>>::super_fold_with
10: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_method_call
11: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
12: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr
13: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_method_call
14: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
15: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
16: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
17: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
18: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
19: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
20: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
21: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
22: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
23: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
24: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
25: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr
26: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
27: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
28: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
29: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
30: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
31: hir_ty::infer::infer_query
32: salsa::runtime::Runtime::execute_query_implementation
33: salsa::derived::slot::Slot<Q,MP>::read_upgrade
34: salsa::derived::slot::Slot<Q,MP>::read
35: <salsa::derived::DerivedStorage<Q,MP> as salsa::plumbing::QueryStorageOps<Q>>::try_fetch
36: <DB as hir_ty::db::HirDatabase>::infer_query
37: hir_ty::db::infer_wait
38: hir::Function::diagnostics
39: hir::Module::diagnostics
40: ide_diagnostics::diagnostics
41: ide::Analysis::assists_with_fixes::{{closure}}
42: std::panicking::try
43: rust_analyzer::handlers::handle_code_action
44: rust_analyzer::dispatch::RequestDispatcher::on::{{closure}}::{{closure}}
45: <F as threadpool::FnBox>::call_box
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
EFanZh and Halkcyon
Metadata
Metadata
Assignees
Labels
A-tytype system / type inference / traits / method resolutiontype system / type inference / traits / method resolutionBroken WindowBugs / technical debt to be addressed immediatelyBugs / technical debt to be addressed immediatelyS-actionableSomeone could pick this issue up and work on it right nowSomeone could pick this issue up and work on it right now