rust-lang / rust-lang/rust-analyzer

thread 'Worker' panicked

Open
#18,777 15 comments 7 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

C-bug I-panic S-unactionable
Dominant language
Rust
Stars
16.9k
Forks
2.2k
Avg merge
1d 12h
Merged PRs (30d)
72

Description

version: 0.3.2228

2024-12-28T23:08:12.029781324+08:00 ERROR Position LineCol { line: 55, col: 13 } column exceeds line length 11, clamping it
2024-12-28T23:08:12.029840077+08:00 ERROR Position LineCol { line: 55, col: 13 } column exceeds line length 11, clamping it
2024-12-28T23:09:11.04839502+08:00 ERROR Position LineCol { line: 89, col: 18 } column exceeds line length 1, clamping it
2024-12-28T23:09:11.048452108+08:00 ERROR Position LineCol { line: 89, col: 18 } column exceeds line length 1, clamping it
2024-12-28T23:09:11.048460884+08:00 ERROR Position LineCol { line: 120, col: 18 } column exceeds line length 1, clamping it
2024-12-28T23:09:11.048468112+08:00 ERROR Position LineCol { line: 120, col: 18 } column exceeds line length 1, clamping it
2024-12-28T23:09:11.048475134+08:00 ERROR Position LineCol { line: 131, col: 24 } column exceeds line length 1, clamping it
2024-12-28T23:09:11.048482934+08:00 ERROR Position LineCol { line: 131, col: 24 } column exceeds line length 1, clamping it
2024-12-28T23:09:11.048491434+08:00 ERROR Position LineCol { line: 141, col: 24 } column exceeds line length 2, clamping it
2024-12-28T23:09:11.048498255+08:00 ERROR Position LineCol { line: 141, col: 24 } column exceeds line length 2, clamping it
2024-12-28T23:09:29.769465964+08:00 ERROR Position LineCol { line: 120, col: 18 } column exceeds line length 1, clamping it
2024-12-28T23:09:29.769498334+08:00 ERROR Position LineCol { line: 120, col: 18 } column exceeds line length 1, clamping it
2024-12-28T23:09:29.769502598+08:00 ERROR Position LineCol { line: 131, col: 24 } column exceeds line length 1, clamping it
2024-12-28T23:09:29.769505802+08:00 ERROR Position LineCol { line: 131, col: 24 } column exceeds line length 1, clamping it
2024-12-28T23:09:29.769509167+08:00 ERROR Position LineCol { line: 141, col: 24 } column exceeds line length 2, clamping it
2024-12-28T23:09:29.769512141+08:00 ERROR Position LineCol { line: 141, col: 24 } column exceeds line length 2, clamping it
2024-12-28T23:11:08.748416828+08:00 ERROR Position LineCol { line: 140, col: 19 } column exceeds line length 10, clamping it
2024-12-28T23:11:08.748492679+08:00 ERROR Position LineCol { line: 140, col: 19 } column exceeds line length 10, clamping it
2024-12-28T23:14:43.440354304+08:00 ERROR Position LineCol { line: 934, col: 30 } column exceeds line length 14, clamping it
2024-12-28T23:14:43.440404285+08:00 ERROR Position LineCol { line: 934, col: 30 } column exceeds line length 14, clamping it
2024-12-28T23:14:50.925405007+08:00 ERROR Position LineCol { line: 934, col: 30 } column exceeds line length 14, clamping it
2024-12-28T23:14:50.925445526+08:00 ERROR Position LineCol { line: 934, col: 30 } column exceeds line length 14, clamping it
Panic context:

version: 0.3.2228-standalone
request: textDocument/diagnostic DocumentDiagnosticParams {
text_document: TextDocumentIdentifier {
uri: Url {
scheme: "file",
cannot_be_a_base: false,
username: "",
password: None,
host: None,
port: None,
path: "/home/user1/txnkv/participant/src/page.rs",
query: None,
fragment: None,
},
},
identifier: None,
previous_result_id: Some(
"rust-analyzer",
),
work_done_progress_params: WorkDoneProgressParams {
work_done_token: None,
},
partial_result_params: PartialResultParams {
partial_result_token: None,
},
}

thread 'Worker' panicked at /github/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/chalk-ir-0.98.0/src/lib.rs:2238:9:
assertion left == right failed
left: 2
right: 1
stack backtrace:
0: rust_begin_unwind
1: core::panicking::panic_fmt
2: core::panicking::assert_failed_inner
3: core::panicking::assert_failed
4: chalk_ir::Binders::substitute
5: hir_ty::mir::ProjectionElem<V,T>::projected_ty
6: hir_ty::mir::borrowck::moved_out_of_ref::{{closure}}
7: hir_ty::mir::borrowck::borrowck_query::{{closure}}
8: hir_ty::mir::borrowck::borrowck_query
9: ra_salsa::derived_lru::slot::Slot<Q,MP>::execute
10: ra_salsa::derived_lru::slot::Slot<Q,MP>::read
11: <ra_salsa::derived_lru::DerivedStorage<Q,MP> as ra_salsa::plumbing::QueryStorageOps>::fetch
12: ::borrowck
13: hir::DefWithBody::diagnostics
14: hir::Module::diagnostics
15: ide_diagnostics::semantic_diagnostics
16: ide_diagnostics::full_diagnostics
17: ra_salsa::Cancelled::catch
18: ide::Analysis::full_diagnostics
19: rust_analyzer::handlers::request::handle_document_diagnostics
20: core::ops::function::FnOnce::call_once{{vtable.shim}}
note: Some details are omitted, run with RUST_BACKTRACE=full for a verbose backtrace.
[Error - 11:15:44 PM] Request textDocument/diagnostic failed.
Message: request handler panicked: assertion left == right failed
left: 2
right: 1
Code: -32603
[Error - 11:15:44 PM] Document pull failed for text document file:///home/user1/txnkv/participant/src/page.rs
Message: request handler panicked: assertion left == right failed
left: 2
right: 1
Code: -32603
Panic context:

version: 0.3.2228-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/user1/txnkv/participant/src/page.rs",
query: None,
fragment: None,
},
},
range: Range {
start: Position {
line: 930,
character: 41,
},
end: Position {
line: 930,
character: 41,
},
},
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 /github/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/chalk-ir-0.98.0/src/lib.rs:2238:9:
assertion left == right failed
left: 2
right: 1
stack backtrace:
0: rust_begin_unwind
1: core::panicking::panic_fmt
2: core::panicking::assert_failed_inner
3: core::panicking::assert_failed
4: chalk_ir::Binders::substitute
5: hir_ty::mir::ProjectionElem<V,T>::projected_ty
6: hir_ty::mir::borrowck::moved_out_of_ref::{{closure}}
7: hir_ty::mir::borrowck::borrowck_query::{{closure}}
8: hir_ty::mir::borrowck::borrowck_query
9: ra_salsa::derived_lru::slot::Slot<Q,MP>::execute
10: ra_salsa::derived_lru::slot::Slot<Q,MP>::read
11: <ra_salsa::derived_lru::DerivedStorage<Q,MP> as ra_salsa::plumbing::QueryStorageOps>::fetch
12: ::borrowck
13: hir::DefWithBody::diagnostics
14: hir::Module::diagnostics
15: ide_diagnostics::semantic_diagnostics
16: ide_diagnostics::full_diagnostics
17: ra_salsa::Cancelled::catch
18: rust_analyzer::handlers::request::handle_code_action
19: core::ops::function::FnOnce::call_once{{vtable.shim}}
note: Some details are omitted, run with RUST_BACKTRACE=full for a verbose backtrace.
Panic context:

version: 0.3.2228-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/user1/txnkv/participant/src/page.rs",
query: None,
fragment: None,
},
},
range: Range {
start: Position {
line: 930,
character: 41,
},
end: Position {
line: 930,
character: 41,
},
},
context: CodeActionContext {
diagnostics: [
Diagnostic {
range: Range {
start: Position {
line: 930,
character: 41,
},
end: Position {
line: 930,
character: 41,
},
},
severity: Some(
Error,
),
code: Some(
String(
"Click for full compiler diagnostic",
),
),
code_description: Some(
CodeDescription {
href: Url {
scheme: "rust-analyzer-diagnostics-view",
cannot_be_a_base: false,
username: "",
password: None,
host: None,
port: None,
path: "/diagnostic%20message%20%5B0%5D",
query: Some(
"0",
),
fragment: Some(
"file%3A%2F%2F%2Fhome%2Fuser1%2Ftxnkv%2Fparticipant%2Fsrc%2Fpage.rs",
),
},
},
),
source: Some(
"rustc",
),
message: "expected ;, found sibling",
related_information: Some(
[
DiagnosticRelatedInformation {
location: Location {
uri: Url {
scheme: "file",
cannot_be_a_base: false,
username: "",
password: None,
host: None,
port: None,
path: "/home/user1/txnkv/participant/src/page.rs",
query: None,
fragment: None,
},
range: Range {
start: Position {
line: 931,
character: 8,
},
end: Position {
line: 931,
character: 15,
},
},
},
message: "unexpected token",
},
DiagnosticRelatedInformation {
location: Location {
uri: Url {
scheme: "file",
cannot_be_a_base: false,
username: "",
password: None,
host: None,
port: None,
path: "/home/user1/txnkv/participant/src/page.rs",
query: None,
fragment: None,
},
range: Range {
start: Position {
line: 930,
character: 41,
},
end: Position {
line: 930,
character: 41,
},
},
},
message: "add ; here: ;",
},
],
),
tags: None,
data: Some(
Object {
"rendered": String("\u{1b}[0m\u{1b}[1m\u{1b}[38;5;9merror\u{1b}[0m\u{1b}[0m\u{1b}[1m: expected ;, found sibling\u{1b}[0m\n\u{1b}[0m \u{1b}[0m\u{1b}[0m\u{1b}[1m\u{1b}[38;5;12m--> \u{1b}[0m\u{1b}[0mparticipant/src/page.rs:931:42\u{1b}[0m\n\u{1b}[0m \u{1b}[0m\u{1b}[0m\u{1b}[1m\u{1b}[38;5;12m|\u{1b}[0m\n\u{1b}[0m\u{1b}[1m\u{1b}[38;5;12m931\u{1b}[0m\u{1b}[0m \u{1b}[0m\u{1b}[0m\u{1b}[1m\u{1b}[38;5;12m|\u{1b}[0m\u{1b}[0m \u{1b}[0m\u{1b}[0m let sibling_frame = sibling.frame\u{1b}[0m\n\u{1b}[0m \u{1b}[0m\u{1b}[0m\u{1b}[1m\u{1b}[38;5;12m|\u{1b}[0m\u{1b}[0m \u{1b}[0m\u{1b}[0m\u{1b}[1m\u{1b}[38;5;9m^\u{1b}[0m\u{1b}[0m \u{1b}[0m\u{1b}[0m\u{1b}[1m\u{1b}[38;5;9mhelp: add ; here\u{1b}[0m\n\u{1b}[0m\u{1b}[1m\u{1b}[38;5;12m932\u{1b}[0m\u{1b}[0m \u{1b}[0m\u{1b}[0m\u{1b}[1m\u{1b}[38;5;12m|\u{1b}[0m\u{1b}[0m \u{1b}[0m\u{1b}[0m sibling.set_last_seq(xlog.push(\u{1b}[0m\n\u{1b}[0m \u{1b}[0m\u{1b}[0m\u{1b}[1m\u{1b}[38;5;12m|\u{1b}[0m\u{1b}[0m \u{1b}[0m\u{1b}[0m\u{1b}[1m\u{1b}[38;5;12m-------\u{1b}[0m\u{1b}[0m \u{1b}[0m\u{1b}[0m\u{1b}[1m\u{1b}[38;5;12munexpected token\u{1b}[0m\n\n"),
},
),
},
Diagnostic {
range: Range {
start: Position {
line: 930,
character: 41,
},
end: Position {
line: 930,
character: 41,
},
},
severity: Some(
Hint,
),
code: None,
code_description: None,
source: Some(
"rustc",
),
message: "add ; here: ;",
related_information: Some(
[
DiagnosticRelatedInformation {
location: Location {
uri: Url {
scheme: "file",
cannot_be_a_base: false,
username: "",
password: None,
host: None,
port: None,
path: "/home/user1/txnkv/participant/src/page.rs",
query: None,
fragment: None,
},
range: Range {
start: Position {
line: 930,
character: 41,
},
end: Position {
line: 930,
character: 41,
},
},
},
message: "original diagnostic",
},
],
),
tags: None,
data: None,
},
],
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 /github/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/chalk-ir-0.98.0/src/lib.rs:2238:9:
assertion left == right failed
left: 2
right: 1
stack backtrace:
0: rust_begin_unwind
1: core::panicking::panic_fmt
2: core::panicking::assert_failed_inner
3: core::panicking::assert_failed
4: chalk_ir::Binders::substitute
5: hir_ty::mir::ProjectionElem<V,T>::projected_ty
6: hir_ty::mir::borrowck::moved_out_of_ref::{{closure}}
7: hir_ty::mir::borrowck::borrowck_query::{{closure}}
8: hir_ty::mir::borrowck::borrowck_query
9: ra_salsa::derived_lru::slot::Slot<Q,MP>::execute
10: ra_salsa::derived_lru::slot::Slot<Q,MP>::read
11: <ra_salsa::derived_lru::DerivedStorage<Q,MP> as ra_salsa::plumbing::QueryStorageOps>::fetch
12: ::borrowck
13: hir::DefWithBody::diagnostics
14: hir::Module::diagnostics
15: ide_diagnostics::semantic_diagnostics
16: ide_diagnostics::full_diagnostics
17: ra_salsa::Cancelled::catch
18: rust_analyzer::handlers::request::handle_code_action
19: core::ops::function::FnOnce::call_once{{vtable.shim}}
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 the panic reports for participant/src/page.rs and trace the shown entry points from rust_analyzer request handling through ide_diagnostics, hir_ty::mir::borrowck, and chalk_ir::Binders::substitute. Reproduce the textDocument/diagnostic and textDocument/codeAction failures, then verify that both requests no longer panic for this input.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
devtools
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.