compio-rs / compio

A thread-per-core Rust runtime with IOCP/io_uring/polling.
MIT License
420 stars 37 forks source link

compio casuing rust-analyzer to crash and freeze randomly!? #177

Closed parthibx24 closed 4 months ago

parthibx24 commented 10 months ago

rust analyzer is crashing even on a simple project after adding compio. I dont know where I should start looking to fix this issue, the rust analyzer errors are very vague. Any help?

env: 
rustc 1.76.0-nightly (a96d57bdb 2023-12-15)
nightly-x86_64-unknown-linux-gnu
rust-analyzer v0.3.1766
[package]
name = "compiotest"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
compio = { version = "0.9.0-beta.3", features = ["runtime", "macros"] }
// src/main.rs
use compio::net::TcpStream;
use compio::io::AsyncWrite;

#[compio::main]
async fn main() {
    let mut sub = TcpStream::connect("127.0.0.1:2222").await.unwrap();
    let vec = Vec::with_capacity(1200);
    let res = sub.write(vec);
}
Panic context:
> 
version: 0.3.1766-standalone
request: textDocument/semanticTokens/full SemanticTokensParams {
    work_done_progress_params: WorkDoneProgressParams {
        work_done_token: None,
    },
    partial_result_params: PartialResultParams {
        partial_result_token: None,
    },
    text_document: TextDocumentIdentifier {
        uri: Url {
            scheme: "file",
            cannot_be_a_base: false,
            username: "",
            password: None,
            host: None,
            port: None,
            path: "/workspaces/compiotest/src/main.rs",
            query: None,
            fragment: None,
        },
    },
}

thread 'Worker' panicked at /github/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/chalk-ir-0.95.0/src/lib.rs:2974:1:
index out of bounds: the len is 0 but the index is 0
stack backtrace:
   0: rust_begin_unwind
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:597:5
   1: core::panicking::panic_fmt
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:72:14
   2: core::panicking::panic_bounds_check
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:180:5
   3: hir_ty::infer::unify::InferenceTable::run_in_snapshot
   4: hir_ty::method_resolution::is_valid_candidate
   5: hir_ty::method_resolution::iterate_trait_method_candidates
   6: hir_ty::method_resolution::iterate_method_candidates_with_autoref::{{closure}}
   7: hir_ty::method_resolution::iterate_method_candidates_dyn
   8: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
   9: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
  10: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
  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_coerce
  13: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
  14: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
  15: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_return
  16: hir_ty::infer::infer_query
  17: salsa::Cycle::catch
  18: salsa::derived::slot::Slot<Q,MP>::execute
  19: salsa::derived::slot::Slot<Q,MP>::read
  20: <salsa::derived::DerivedStorage<Q,MP> as salsa::plumbing::QueryStorageOps<Q>>::fetch
  21: hir_ty::db::infer_wait
  22: hir::source_analyzer::SourceAnalyzer::new_for_body
  23: hir::semantics::SemanticsImpl::analyze_impl
  24: ide_db::defs::NameRefClass::classify
  25: ide::syntax_highlighting::highlight::name_like
  26: ide::syntax_highlighting::traverse
  27: ide::syntax_highlighting::highlight
  28: salsa::Cancelled::catch
  29: rust_analyzer::handlers::request::handle_semantic_tokens_full
  30: std::panicking::try
  31: core::ops::function::FnOnce::call_once{{vtable.shim}}
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
[Error - 11:50:10 AM] Request textDocument/semanticTokens/full failed.
  Message: request handler panicked: index out of bounds: the len is 0 but the index is 0
  Code: -32603 
Panic context:
> fetch_native_diagnostics

thread 'Worker' panicked at /github/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/chalk-ir-0.95.0/src/lib.rs:2974:1:
index out of bounds: the len is 0 but the index is 0
stack backtrace:
   0: rust_begin_unwind
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:597:5
   1: core::panicking::panic_fmt
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:72:14
   2: core::panicking::panic_bounds_check
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:180:5
   3: hir_ty::infer::unify::InferenceTable::run_in_snapshot
   4: hir_ty::method_resolution::is_valid_candidate
   5: hir_ty::method_resolution::iterate_trait_method_candidates
   6: hir_ty::method_resolution::iterate_method_candidates_with_autoref::{{closure}}
   7: hir_ty::method_resolution::iterate_method_candidates_dyn
   8: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
   9: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
  10: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
  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_coerce
  13: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
  14: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
  15: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_return
  16: hir_ty::infer::infer_query
  17: salsa::Cycle::catch
  18: salsa::derived::slot::Slot<Q,MP>::execute
  19: salsa::derived::slot::Slot<Q,MP>::read
  20: <salsa::derived::DerivedStorage<Q,MP> as salsa::plumbing::QueryStorageOps<Q>>::fetch
  21: hir_ty::db::infer_wait
  22: hir::DefWithBody::diagnostics
  23: hir::ModuleDef::diagnostics
  24: hir::Module::diagnostics
  25: ide_diagnostics::diagnostics
  26: salsa::Cancelled::catch
  27: core::ops::function::impls::<impl core::ops::function::FnMut<A> for &mut F>::call_mut
  28: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter
  29: rust_analyzer::diagnostics::fetch_native_diagnostics
  30: core::ops::function::FnOnce::call_once{{vtable.shim}}
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
thread 'LspServer' panicked at /__w/rust-analyzer/rust-analyzer/crates/stdx/src/thread/pool.rs:86:35:
called `Result::unwrap()` on an `Err` value: "SendError(..)"
stack backtrace:
   0: rust_begin_unwind
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:597:5
   1: core::panicking::panic_fmt
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:72:14
   2: core::result::unwrap_failed
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/result.rs:1652:5
   3: rust_analyzer::task_pool::TaskPool<T>::spawn
   4: rust_analyzer::dispatch::RequestDispatcher::on_with_thread_intent
   5: rust_analyzer::main_loop::<impl rust_analyzer::global_state::GlobalState>::on_request
   6: rust_analyzer::main_loop::<impl rust_analyzer::global_state::GlobalState>::handle_event
   7: rust_analyzer::main_loop::<impl rust_analyzer::global_state::GlobalState>::run
   8: rust_analyzer::main_loop::main_loop
   9: rust_analyzer::run_server
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
thread 'main' panicked at /github/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/jod-thread-0.1.2/src/lib.rs:33:22:
called `Result::unwrap()` on an `Err` value: Any { .. }
stack backtrace:
   0: rust_begin_unwind
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:597:5
   1: core::panicking::panic_fmt
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:72:14
   2: core::result::unwrap_failed
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/result.rs:1652:5
   3: stdx::thread::JoinHandle<T>::join
   4: rust_analyzer::with_extra_thread
   5: rust_analyzer::main
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
[Info  - 11:50:11 AM] Connection to server got closed. Server will restart.
true
Panic context:
> 
version: 0.3.1766-standalone
request: textDocument/semanticTokens/full SemanticTokensParams {
    work_done_progress_params: WorkDoneProgressParams {
        work_done_token: None,
    },
    partial_result_params: PartialResultParams {
        partial_result_token: None,
    },
    text_document: TextDocumentIdentifier {
        uri: Url {
            scheme: "file",
            cannot_be_a_base: false,
            username: "",
            password: None,
            host: None,
            port: None,
            path: "/workspaces/compiotest/src/main.rs",
            query: None,
            fragment: None,
        },
    },
}

thread 'Worker' panicked at /github/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/chalk-ir-0.95.0/src/lib.rs:2974:1:
index out of bounds: the len is 0 but the index is 0
stack backtrace:
   0: rust_begin_unwind
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:597:5
   1: core::panicking::panic_fmt
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:72:14
   2: core::panicking::panic_bounds_check
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:180:5
   3: hir_ty::infer::unify::InferenceTable::run_in_snapshot
   4: hir_ty::method_resolution::is_valid_candidate
   5: hir_ty::method_resolution::iterate_trait_method_candidates
   6: hir_ty::method_resolution::iterate_method_candidates_with_autoref::{{closure}}
   7: hir_ty::method_resolution::iterate_method_candidates_dyn
   8: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
   9: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
  10: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
  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_coerce
  13: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
  14: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
  15: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_return
  16: hir_ty::infer::infer_query
  17: salsa::Cycle::catch
  18: salsa::derived::slot::Slot<Q,MP>::execute
  19: salsa::derived::slot::Slot<Q,MP>::read
  20: <salsa::derived::DerivedStorage<Q,MP> as salsa::plumbing::QueryStorageOps<Q>>::fetch
  21: hir_ty::db::infer_wait
  22: hir::source_analyzer::SourceAnalyzer::new_for_body
  23: hir::semantics::SemanticsImpl::analyze_impl
  24: ide_db::defs::NameRefClass::classify
  25: ide::syntax_highlighting::highlight::name_like
  26: ide::syntax_highlighting::traverse
  27: ide::syntax_highlighting::highlight
  28: salsa::Cancelled::catch
  29: rust_analyzer::handlers::request::handle_semantic_tokens_full
  30: std::panicking::try
  31: core::ops::function::FnOnce::call_once{{vtable.shim}}
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
[Error - 11:50:19 AM] Request textDocument/semanticTokens/full failed.
  Message: request handler panicked: index out of bounds: the len is 0 but the index is 0
  Code: -32603 
Panic context:
> fetch_native_diagnostics

thread 'Worker' panicked at /github/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/chalk-ir-0.95.0/src/lib.rs:2974:1:
index out of bounds: the len is 0 but the index is 0
stack backtrace:
   0: rust_begin_unwind
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:597:5
   1: core::panicking::panic_fmt
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:72:14
   2: core::panicking::panic_bounds_check
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:180:5
   3: hir_ty::infer::unify::InferenceTable::run_in_snapshot
   4: hir_ty::method_resolution::is_valid_candidate
   5: hir_ty::method_resolution::iterate_trait_method_candidates
   6: hir_ty::method_resolution::iterate_method_candidates_with_autoref::{{closure}}
   7: hir_ty::method_resolution::iterate_method_candidates_dyn
   8: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
   9: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
  10: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
  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_coerce
  13: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
  14: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
  15: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_return
  16: hir_ty::infer::infer_query
  17: salsa::Cycle::catch
  18: salsa::derived::slot::Slot<Q,MP>::execute
  19: salsa::derived::slot::Slot<Q,MP>::read
  20: <salsa::derived::DerivedStorage<Q,MP> as salsa::plumbing::QueryStorageOps<Q>>::fetch
  21: hir_ty::db::infer_wait
  22: hir::DefWithBody::diagnostics
  23: hir::ModuleDef::diagnostics
  24: hir::Module::diagnostics
  25: ide_diagnostics::diagnostics
  26: salsa::Cancelled::catch
  27: core::ops::function::impls::<impl core::ops::function::FnMut<A> for &mut F>::call_mut
  28: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter
  29: rust_analyzer::diagnostics::fetch_native_diagnostics
  30: core::ops::function::FnOnce::call_once{{vtable.shim}}
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
thread 'LspServer' panicked at /__w/rust-analyzer/rust-analyzer/crates/stdx/src/thread/pool.rs:86:35:
called `Result::unwrap()` on an `Err` value: "SendError(..)"
stack backtrace:
   0: rust_begin_unwind
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:597:5
   1: core::panicking::panic_fmt
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:72:14
   2: core::result::unwrap_failed
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/result.rs:1652:5
   3: rust_analyzer::task_pool::TaskPool<T>::spawn
   4: rust_analyzer::dispatch::RequestDispatcher::on_with_thread_intent
   5: rust_analyzer::main_loop::<impl rust_analyzer::global_state::GlobalState>::on_request
   6: rust_analyzer::main_loop::<impl rust_analyzer::global_state::GlobalState>::handle_event
   7: rust_analyzer::main_loop::<impl rust_analyzer::global_state::GlobalState>::run
   8: rust_analyzer::main_loop::main_loop
   9: rust_analyzer::run_server
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
thread 'main' panicked at /github/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/jod-thread-0.1.2/src/lib.rs:33:22:
called `Result::unwrap()` on an `Err` value: Any { .. }
stack backtrace:
   0: rust_begin_unwind
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:597:5
   1: core::panicking::panic_fmt
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:72:14
   2: core::result::unwrap_failed
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/result.rs:1652:5
   3: stdx::thread::JoinHandle<T>::join
   4: rust_analyzer::with_extra_thread
   5: rust_analyzer::main
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
[Info  - 11:50:21 AM] Connection to server got closed. Server will restart.
true
Panic context:
> 
version: 0.3.1766-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: "/workspaces/compiotest/src/main.rs",
            query: None,
            fragment: None,
        },
    },
    range: Range {
        start: Position {
            line: 10,
            character: 35,
        },
        end: Position {
            line: 10,
            character: 35,
        },
    },
    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.95.0/src/lib.rs:2974:1:
index out of bounds: the len is 0 but the index is 0
stack backtrace:
   0: rust_begin_unwind
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:597:5
   1: core::panicking::panic_fmt
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:72:14
   2: core::panicking::panic_bounds_check
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:180:5
   3: hir_ty::infer::unify::InferenceTable::run_in_snapshot
   4: hir_ty::method_resolution::is_valid_candidate
   5: hir_ty::method_resolution::iterate_trait_method_candidates
   6: hir_ty::method_resolution::iterate_method_candidates_with_autoref::{{closure}}
   7: hir_ty::method_resolution::iterate_method_candidates_dyn
   8: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
   9: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
  10: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
  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_coerce
  13: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
  14: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
  15: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_return
  16: hir_ty::infer::infer_query
  17: salsa::Cycle::catch
  18: salsa::derived::slot::Slot<Q,MP>::execute
  19: salsa::derived::slot::Slot<Q,MP>::read
  20: <salsa::derived::DerivedStorage<Q,MP> as salsa::plumbing::QueryStorageOps<Q>>::fetch
  21: hir_ty::db::infer_wait
  22: hir::DefWithBody::diagnostics
  23: hir::ModuleDef::diagnostics
  24: hir::Module::diagnostics
  25: ide_diagnostics::diagnostics
  26: salsa::Cancelled::catch
  27: rust_analyzer::handlers::request::handle_code_action
  28: std::panicking::try
  29: 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.1766-standalone
request: textDocument/semanticTokens/full SemanticTokensParams {
    work_done_progress_params: WorkDoneProgressParams {
        work_done_token: None,
    },
    partial_result_params: PartialResultParams {
        partial_result_token: None,
    },
    text_document: TextDocumentIdentifier {
        uri: Url {
            scheme: "file",
            cannot_be_a_base: false,
            username: "",
            password: None,
            host: None,
            port: None,
            path: "/workspaces/compiotest/src/main.rs",
            query: None,
            fragment: None,
        },
    },
}

thread 'Worker' panicked at /github/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/chalk-ir-0.95.0/src/lib.rs:2974:1:
index out of bounds: the len is 0 but the index is 0
stack backtrace:
   0: rust_begin_unwind
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:597:5
   1: core::panicking::panic_fmt
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:72:14
   2: core::panicking::panic_bounds_check
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:180:5
   3: hir_ty::infer::unify::InferenceTable::run_in_snapshot
   4: hir_ty::method_resolution::is_valid_candidate
   5: hir_ty::method_resolution::iterate_trait_method_candidates
   6: hir_ty::method_resolution::iterate_method_candidates_with_autoref::{{closure}}
   7: hir_ty::method_resolution::iterate_method_candidates_dyn
   8: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
   9: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
  10: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
  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_coerce
  13: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
  14: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
  15: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_return
  16: hir_ty::infer::infer_query
  17: salsa::Cycle::catch
  18: salsa::derived::slot::Slot<Q,MP>::execute
  19: salsa::derived::slot::Slot<Q,MP>::read
  20: <salsa::derived::DerivedStorage<Q,MP> as salsa::plumbing::QueryStorageOps<Q>>::fetch
  21: hir_ty::db::infer_wait
  22: hir::source_analyzer::SourceAnalyzer::new_for_body
  23: hir::semantics::SemanticsImpl::analyze_impl
  24: ide_db::defs::NameRefClass::classify
  25: ide::syntax_highlighting::highlight::name_like
  26: ide::syntax_highlighting::traverse
  27: ide::syntax_highlighting::highlight
  28: salsa::Cancelled::catch
  29: rust_analyzer::handlers::request::handle_semantic_tokens_full
  30: std::panicking::try
  31: core::ops::function::FnOnce::call_once{{vtable.shim}}
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
[Error - 11:50:29 AM] Request textDocument/semanticTokens/full failed.
  Message: request handler panicked: index out of bounds: the len is 0 but the index is 0
  Code: -32603 
Panic context:
> fetch_native_diagnostics

thread 'Worker' panicked at /github/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/chalk-ir-0.95.0/src/lib.rs:2974:1:
index out of bounds: the len is 0 but the index is 0
stack backtrace:
   0: rust_begin_unwind
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:597:5
   1: core::panicking::panic_fmt
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:72:14
   2: core::panicking::panic_bounds_check
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:180:5
   3: hir_ty::infer::unify::InferenceTable::run_in_snapshot
   4: hir_ty::method_resolution::is_valid_candidate
   5: hir_ty::method_resolution::iterate_trait_method_candidates
   6: hir_ty::method_resolution::iterate_method_candidates_with_autoref::{{closure}}
   7: hir_ty::method_resolution::iterate_method_candidates_dyn
   8: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
   9: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
  10: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
  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_coerce
  13: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
  14: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
  15: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_return
  16: hir_ty::infer::infer_query
  17: salsa::Cycle::catch
  18: salsa::derived::slot::Slot<Q,MP>::execute
  19: salsa::derived::slot::Slot<Q,MP>::read
  20: <salsa::derived::DerivedStorage<Q,MP> as salsa::plumbing::QueryStorageOps<Q>>::fetch
  21: hir_ty::db::infer_wait
  22: hir::DefWithBody::diagnostics
  23: hir::ModuleDef::diagnostics
  24: hir::Module::diagnostics
  25: ide_diagnostics::diagnostics
  26: salsa::Cancelled::catch
  27: core::ops::function::impls::<impl core::ops::function::FnMut<A> for &mut F>::call_mut
  28: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter
  29: rust_analyzer::diagnostics::fetch_native_diagnostics
  30: core::ops::function::FnOnce::call_once{{vtable.shim}}
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
thread 'LspServer' panicked at /__w/rust-analyzer/rust-analyzer/crates/stdx/src/thread/pool.rs:86:35:
called `Result::unwrap()` on an `Err` value: "SendError(..)"
stack backtrace:
   0: rust_begin_unwind
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:597:5
   1: core::panicking::panic_fmt
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:72:14
   2: core::result::unwrap_failed
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/result.rs:1652:5
   3: rust_analyzer::task_pool::TaskPool<T>::spawn
   4: rust_analyzer::dispatch::RequestDispatcher::on_with_thread_intent
   5: rust_analyzer::main_loop::<impl rust_analyzer::global_state::GlobalState>::on_request
   6: rust_analyzer::main_loop::<impl rust_analyzer::global_state::GlobalState>::handle_event
   7: rust_analyzer::main_loop::<impl rust_analyzer::global_state::GlobalState>::run
   8: rust_analyzer::main_loop::main_loop
   9: rust_analyzer::run_server
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
thread 'main' panicked at /github/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/jod-thread-0.1.2/src/lib.rs:33:22:
called `Result::unwrap()` on an `Err` value: Any { .. }
stack backtrace:
   0: rust_begin_unwind
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:597:5
   1: core::panicking::panic_fmt
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:72:14
   2: core::result::unwrap_failed
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/result.rs:1652:5
   3: stdx::thread::JoinHandle<T>::join
   4: rust_analyzer::with_extra_thread
   5: rust_analyzer::main
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
[Info  - 11:50:31 AM] Connection to server got closed. Server will restart.
true
Panic context:
> 
version: 0.3.1766-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: "/workspaces/compiotest/src/main.rs",
            query: None,
            fragment: None,
        },
    },
    range: Range {
        start: Position {
            line: 10,
            character: 35,
        },
        end: Position {
            line: 10,
            character: 35,
        },
    },
    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.95.0/src/lib.rs:2974:1:
index out of bounds: the len is 0 but the index is 0
stack backtrace:
   0: rust_begin_unwind
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:597:5
   1: core::panicking::panic_fmt
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:72:14
   2: core::panicking::panic_bounds_check
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:180:5
   3: hir_ty::infer::unify::InferenceTable::run_in_snapshot
   4: hir_ty::method_resolution::is_valid_candidate
   5: hir_ty::method_resolution::iterate_trait_method_candidates
   6: hir_ty::method_resolution::iterate_method_candidates_with_autoref::{{closure}}
   7: hir_ty::method_resolution::iterate_method_candidates_dyn
   8: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
   9: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
  10: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
  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_coerce
  13: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
  14: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
  15: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_return
  16: hir_ty::infer::infer_query
  17: salsa::Cycle::catch
  18: salsa::derived::slot::Slot<Q,MP>::execute
  19: salsa::derived::slot::Slot<Q,MP>::read
  20: <salsa::derived::DerivedStorage<Q,MP> as salsa::plumbing::QueryStorageOps<Q>>::fetch
  21: hir_ty::db::infer_wait
  22: hir::DefWithBody::diagnostics
  23: hir::ModuleDef::diagnostics
  24: hir::Module::diagnostics
  25: ide_diagnostics::diagnostics
  26: salsa::Cancelled::catch
  27: rust_analyzer::handlers::request::handle_code_action
  28: std::panicking::try
  29: 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.1766-standalone
request: textDocument/semanticTokens/full SemanticTokensParams {
    work_done_progress_params: WorkDoneProgressParams {
        work_done_token: None,
    },
    partial_result_params: PartialResultParams {
        partial_result_token: None,
    },
    text_document: TextDocumentIdentifier {
        uri: Url {
            scheme: "file",
            cannot_be_a_base: false,
            username: "",
            password: None,
            host: None,
            port: None,
            path: "/workspaces/compiotest/src/main.rs",
            query: None,
            fragment: None,
        },
    },
}

thread 'Worker' panicked at /github/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/chalk-ir-0.95.0/src/lib.rs:2974:1:
index out of bounds: the len is 0 but the index is 0
stack backtrace:
   0: rust_begin_unwind
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:597:5
   1: core::panicking::panic_fmt
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:72:14
   2: core::panicking::panic_bounds_check
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:180:5
   3: hir_ty::infer::unify::InferenceTable::run_in_snapshot
   4: hir_ty::method_resolution::is_valid_candidate
   5: hir_ty::method_resolution::iterate_trait_method_candidates
   6: hir_ty::method_resolution::iterate_method_candidates_with_autoref::{{closure}}
   7: hir_ty::method_resolution::iterate_method_candidates_dyn
   8: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
   9: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
  10: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
  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_coerce
  13: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
  14: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
  15: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_return
  16: hir_ty::infer::infer_query
  17: salsa::Cycle::catch
  18: salsa::derived::slot::Slot<Q,MP>::execute
  19: salsa::derived::slot::Slot<Q,MP>::read
  20: <salsa::derived::DerivedStorage<Q,MP> as salsa::plumbing::QueryStorageOps<Q>>::fetch
  21: hir_ty::db::infer_wait
  22: hir::source_analyzer::SourceAnalyzer::new_for_body
  23: hir::semantics::SemanticsImpl::analyze_impl
  24: ide_db::defs::NameRefClass::classify
  25: ide::syntax_highlighting::highlight::name_like
  26: ide::syntax_highlighting::traverse
  27: ide::syntax_highlighting::highlight
  28: salsa::Cancelled::catch
  29: rust_analyzer::handlers::request::handle_semantic_tokens_full
  30: std::panicking::try
  31: core::ops::function::FnOnce::call_once{{vtable.shim}}
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
Panic context:
> fetch_native_diagnostics

thread 'Worker' panicked at /github/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/chalk-ir-0.95.0/src/lib.rs:2974:1:
index out of bounds: the len is 0 but the index is 0
stack backtrace:
   0: rust_begin_unwind
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:597:5
   1: core::panicking::panic_fmt
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:72:14
   2: core::panicking::panic_bounds_check
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:180:5
   3: hir_ty::infer::unify::InferenceTable::run_in_snapshot
   4: hir_ty::method_resolution::is_valid_candidate
   5: hir_ty::method_resolution::iterate_trait_method_candidates
   6: hir_ty::method_resolution::iterate_method_candidates_with_autoref::{{closure}}
   7: hir_ty::method_resolution::iterate_method_candidates_dyn
   8: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
   9: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
  10: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
  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_coerce
  13: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
  14: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
  15: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_return
  16: hir_ty::infer::infer_query
  17: salsa::Cycle::catch
  18: salsa::derived::slot::Slot<Q,MP>::execute
  19: salsa::derived::slot::Slot<Q,MP>::read
  20: <salsa::derived::[Error - 11:50:39 AM] Request textDocument/semanticTokens/full failed.
  Message: request handler panicked: index out of bounds: the len is 0 but the index is 0
  Code: -32603 
DerivedStorage<Q,MP> as salsa::plumbing::QueryStorageOps<Q>>::fetch
  21: hir_ty::db::infer_wait
  22: hir::DefWithBody::diagnostics
  23: hir::ModuleDef::diagnostics
  24: hir::Module::diagnostics
  25: ide_diagnostics::diagnostics
  26: salsa::Cancelled::catch
  27: core::ops::function::impls::<impl core::ops::function::FnMut<A> for &mut F>::call_mut
  28: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter
  29: rust_analyzer::diagnostics::fetch_native_diagnostics
  30: core::ops::function::FnOnce::call_once{{vtable.shim}}
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
thread 'LspServer' panicked at /__w/rust-analyzer/rust-analyzer/crates/stdx/src/thread/pool.rs:86:35:
called `Result::unwrap()` on an `Err` value: "SendError(..)"
stack backtrace:
   0: rust_begin_unwind
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:597:5
   1: core::panicking::panic_fmt
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:72:14
   2: core::result::unwrap_failed
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/result.rs:1652:5
   3: rust_analyzer::task_pool::TaskPool<T>::spawn
   4: rust_analyzer::dispatch::RequestDispatcher::on_with_thread_intent
   5: rust_analyzer::main_loop::<impl rust_analyzer::global_state::GlobalState>::on_request
   6: rust_analyzer::main_loop::<impl rust_analyzer::global_state::GlobalState>::handle_event
   7: rust_analyzer::main_loop::<impl rust_analyzer::global_state::GlobalState>::run
   8: rust_analyzer::main_loop::main_loop
   9: rust_analyzer::run_server
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
thread 'main' panicked at /github/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/jod-thread-0.1.2/src/lib.rs:33:22:
called `Result::unwrap()` on an `Err` value: Any { .. }
stack backtrace:
   0: rust_begin_unwind
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:597:5
   1: core::panicking::panic_fmt
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:72:14
   2: core::result::unwrap_failed
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/result.rs:1652:5
   3: stdx::thread::JoinHandle<T>::join
   4: rust_analyzer::with_extra_thread
   5: rust_analyzer::main
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
[Info  - 11:50:41 AM] Connection to server got closed. Server will restart.
true
Panic context:
> 
version: 0.3.1766-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: "/workspaces/compiotest/src/main.rs",
            query: None,
            fragment: None,
        },
    },
    range: Range {
        start: Position {
            line: 10,
            character: 35,
        },
        end: Position {
            line: 10,
            character: 35,
        },
    },
    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.95.0/src/lib.rs:2974:1:
index out of bounds: the len is 0 but the index is 0
stack backtrace:
   0: rust_begin_unwind
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:597:5
   1: core::panicking::panic_fmt
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:72:14
   2: core::panicking::panic_bounds_check
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:180:5
   3: hir_ty::infer::unify::InferenceTable::run_in_snapshot
   4: hir_ty::method_resolution::is_valid_candidate
   5: hir_ty::method_resolution::iterate_trait_method_candidates
   6: hir_ty::method_resolution::iterate_method_candidates_with_autoref::{{closure}}
   7: hir_ty::method_resolution::iterate_method_candidates_dyn
   8: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
   9: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
  10: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
  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_coerce
  13: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
  14: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
  15: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_return
  16: hir_ty::infer::infer_query
  17: salsa::Cycle::catch
  18: salsa::derived::slot::Slot<Q,MP>::execute
  19: salsa::derived::slot::Slot<Q,MP>::read
  20: <salsa::derived::DerivedStorage<Q,MP> as salsa::plumbing::QueryStorageOps<Q>>::fetch
  21: hir_ty::db::infer_wait
  22: hir::DefWithBody::diagnostics
  23: hir::ModuleDef::diagnostics
  24: hir::Module::diagnostics
  25: ide_diagnostics::diagnostics
  26: salsa::Cancelled::catch
  27: rust_analyzer::handlers::request::handle_code_action
  28: std::panicking::try
  29: 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.1766-standalone
request: textDocument/semanticTokens/full SemanticTokensParams {
    work_done_progress_params: WorkDoneProgressParams {
        work_done_token: None,
    },
    partial_result_params: PartialResultParams {
        partial_result_token: None,
    },
    text_document: TextDocumentIdentifier {
        uri: Url {
            scheme: "file",
            cannot_be_a_base: false,
            username: "",
            password: None,
            host: None,
            port: None,
            path: "/workspaces/compiotest/src/main.rs",
            query: None,
            fragment: None,
        },
    },
}

thread 'Worker' panicked at /github/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/chalk-ir-0.95.0/src/lib.rs:2974:1:
index out of bounds: the len is 0 but the index is 0
stack backtrace:
   0: rust_begin_unwind
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:597:5
   1: core::panicking::panic_fmt
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:72:14
   2: core::panicking::panic_bounds_check
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:180:5
   3: hir_ty::infer::unify::InferenceTable::run_in_snapshot
   4: hir_ty::method_resolution::is_valid_candidate
   5: hir_ty::method_resolution::iterate_trait_method_candidates
   6: hir_ty::method_resolution::iterate_method_candidates_with_autoref::{{closure}}
   7: hir_ty::method_resolution::iterate_method_candidates_dyn
   8: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
   9: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
  10: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
  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_coerce
  13: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
  14: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
  15: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_return
  16: hir_ty::infer::infer_query
  17: salsa::Cycle::catch
  18: salsa::derived::slot::Slot<Q,MP>::execute
  19: salsa::derived::slot::Slot<Q,MP>::read
  20: <salsa::derived::DerivedStorage<Q,MP> as salsa::plumbing::QueryStorageOps<Q>>::fetch
  21: hir_ty::db::infer_wait
  22: hir::source_analyzer::SourceAnalyzer::new_for_body
  23: hir::semantics::SemanticsImpl::analyze_impl
  24: ide_db::defs::NameRefClass::classify
  25: ide::syntax_highlighting::highlight::name_like
  26: ide::syntax_highlighting::traverse
  27: ide::syntax_highlighting::highlight
  28: salsa::Cancelled::catch
  29: rust_analyzer::handlers::request::handle_semantic_tokens_full
  30: std::panicking::try
  31: core::ops::function::FnOnce::call_once{{vtable.shim}}
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
Panic context:
> fetch_native_diagnostics

thread 'Worker' panicked at /github/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/chalk-ir-0.95.0/src/lib.rs:2974:1:
index out of bounds: the len is 0 but the index is 0
stack backtrace:
   0: rust_begin_unwind
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:597:5
   1: core::panicking::panic_fmt
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:72:14
   2: core::panicking::panic_bounds_check
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:180:5
   3: hir_ty::infer::unify::InferenceTable::run_in_snapshot
   4: hir_ty::method_resolution::is_valid_candidate
   5: hir_ty::method_resolution::iterate_trait_method_candidates
   6: hir_ty::method_resolution::iterate_method_candidates_with_autoref::{{closure}}
   7: hir_ty::method_resolution::iterate_method_candidates_dyn
   8: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
   9: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
  10: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
  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_coerce
  13: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
  14: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
  15: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_return
  16: hir_ty::infer::infer_query
  17: salsa::Cycle::catch
  18: salsa::derived::slot::Slot<Q,MP>::execute
  19: salsa::derived::slot::Slot<Q,MP>::read
  20: <salsa::derived::DerivedStorage<Q,MP> as salsa::plumbing::QueryStorageOps<Q>>::fetch
  21: hir_ty::db[Error - 11:50:49 AM] Request textDocument/semanticTokens/full failed.
  Message: request handler panicked: index out of bounds: the len is 0 but the index is 0
  Code: -32603 
::infer_wait
  22: hir::DefWithBody::diagnostics
  23: hir::ModuleDef::diagnostics
  24: hir::Module::diagnostics
  25: ide_diagnostics::diagnostics
  26: salsa::Cancelled::catch
  27: core::ops::function::impls::<impl core::ops::function::FnMut<A> for &mut F>::call_mut
  28: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter
  29: rust_analyzer::diagnostics::fetch_native_diagnostics
  30: core::ops::function::FnOnce::call_once{{vtable.shim}}
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
thread 'LspServer' panicked at /__w/rust-analyzer/rust-analyzer/crates/stdx/src/thread/pool.rs:86:35:
called `Result::unwrap()` on an `Err` value: "SendError(..)"
stack backtrace:
   0: rust_begin_unwind
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:597:5
   1: core::panicking::panic_fmt
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:72:14
   2: core::result::unwrap_failed
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/result.rs:1652:5
   3: rust_analyzer::task_pool::TaskPool<T>::spawn
   4: rust_analyzer::dispatch::RequestDispatcher::on_with_thread_intent
   5: rust_analyzer::main_loop::<impl rust_analyzer::global_state::GlobalState>::on_request
   6: rust_analyzer::main_loop::<impl rust_analyzer::global_state::GlobalState>::handle_event
   7: rust_analyzer::main_loop::<impl rust_analyzer::global_state::GlobalState>::run
   8: rust_analyzer::main_loop::main_loop
   9: rust_analyzer::run_server
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
thread 'main' panicked at /github/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/jod-thread-0.1.2/src/lib.rs:33:22:
called `Result::unwrap()` on an `Err` value: Any { .. }
stack backtrace:
   0: rust_begin_unwind
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:597:5
   1: core::panicking::panic_fmt
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:72:14
   2: core::result::unwrap_failed
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/result.rs:1652:5
   3: stdx::thread::JoinHandle<T>::join
   4: rust_analyzer::with_extra_thread
   5: rust_analyzer::main
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
[Error - 11:50:51 AM] The Rust Analyzer Language Server server crashed 5 times in the last 3 minutes. The server will not be restarted. See the output for more information.
Berrysoft commented 10 months ago

I can reproduce this problem. A temporary solution is to enable "nightly" feature of compio. I still don't why r-a crashes if "nightly" is not enabled. It might be an r-a bug.

parthibx24 commented 10 months ago

@Berrysoft Thanks its working now. But its a very weird workaround.

Berrysoft commented 10 months ago

Tracking: https://github.com/rust-lang/rust-analyzer/issues/16141

Berrysoft commented 4 months ago

The bug has been fixed. Use the bundled rust-analyzer of the plugin, instead of the one shipped by rustup.