Skip to content

Constant panicking in my project #20975

@Xaeroxe

Description

@Xaeroxe

Hi, I'm getting constant panics while editing my code. Unfortunately I'm not at liberty to provide my proprietary code, nor do I have time to make a minimal reproduction. They compile just fine with cargo.

[Error - 2:26:12 PM] Request textDocument/documentHighlight failed.
  Message: request handler panicked: assertion `left == right` failed
  left: [Goal { param_env: ParamEnv { clauses: [Clause(Binder { value: TraitPredicate(#0: Sized, polarity:Positive), bound_vars: [] }), Clause(Binder { value: TraitPredicate(#0: Environment, polarity:Positive), bound_vars: [] }), Clause(Binder { value: OutlivesPredicate(#0, 'static), bound_vars: [] })] }, predicate: Binder { value: AliasRelate(Alias(Projection, AliasTy { args: [FilterMap<IntoStream<Coroutine(InternedCoroutineId(InternedCoroutineId { loc: InternedCoroutine(FunctionId(FunctionId(898b1)), Idx::<Expr>(358)) }), [#0, (), (), (), Result<(), RequestError<?527t>>, ()])>, Coroutine(InternedCoroutineId(InternedCoroutineId { loc: InternedCoroutine(FunctionId(FunctionId(898b1)), Idx::<Expr>(362)) }), [#0, (), (), (), Option<?789t>, ()]), Closure(InternedClosureId(InternedClosureId { loc: InternedClosure(FunctionId(FunctionId(898b1)), Idx::<Expr>(360)) }), [#0, i16, Binder { value: fn(Result<(), RequestError<?783t>>) -> Coroutine(InternedCoroutineId(InternedCoroutineId { loc: InternedCoroutine(FunctionId(FunctionId(898b1)), Idx::<Expr>(362)) }), [#0, (), (), (), Option<?789t>, ()]), bound_vars: [] }, ()])>], def_id: TypeAliasId("Item"), .. }), Equate, ?817t), bound_vars: [] } }]
 right: []
  Code: -32603 

thread 'Worker2' (7018720) panicked at crates/hir-ty/src/next_solver/normalize.rs:48:5:
assertion `left == right` failed
  left: [Goal { param_env: ParamEnv { clauses: [Clause(Binder { value: TraitPredicate(#0: Sized, polarity:Positive), bound_vars: [] }), Clause(Binder { value: TraitPredicate(#0: Environment, polarity:Positive), bound_vars: [] }), Clause(Binder { value: OutlivesPredicate(#0, 'static), bound_vars: [] })] }, predicate: Binder { value: AliasRelate(Alias(Projection, AliasTy { args: [FilterMap<IntoStream<Coroutine(InternedCoroutineId(InternedCoroutineId { loc: InternedCoroutine(FunctionId(FunctionId(898b1)), Idx::<Expr>(358)) }), [#0, (), (), (), Result<(), RequestError<?527t>>, ()])>, Coroutine(InternedCoroutineId(InternedCoroutineId { loc: InternedCoroutine(FunctionId(FunctionId(898b1)), Idx::<Expr>(362)) }), [#0, (), (), (), Option<?789t>, ()]), Closure(InternedClosureId(InternedClosureId { loc: InternedClosure(FunctionId(FunctionId(898b1)), Idx::<Expr>(360)) }), [#0, i16, Binder { value: fn(Result<(), RequestError<?783t>>) -> Coroutine(InternedCoroutineId(InternedCoroutineId { loc: InternedCoroutine(FunctionId(FunctionId(898b1)), Idx::<Expr>(362)) }), [#0, (), (), (), Option<?789t>, ()]), bound_vars: [] }, ()])>], def_id: TypeAliasId("Item"), .. }), Equate, ?817t), bound_vars: [] } }]
 right: []
stack backtrace:
   0: __rustc::rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::panicking::assert_failed_inner
   3: core::panicking::assert_failed
   4: hir_ty::infer::unify::InferenceTable::normalize_associated_types_in
   5: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner::{{closure}}
   6: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
   7: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner::{{closure}}
   8: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr
   9: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
  10: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner::{{closure}}
  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_inner::{{closure}}
  13: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
  14: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
  15: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner::{{closure}}
  16: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
  17: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner::{{closure}}
  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::{{closure}}
  21: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr
  22: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner::{{closure}}
  23: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
  24: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
  25: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner::{{closure}}
  26: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
  27: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
  28: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner::{{closure}}
  29: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
  30: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
  31: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner::{{closure}}
  32: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
  33: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
  34: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner::{{closure}}
  35: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
  36: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_return
  37: hir_ty::infer::infer_query
  38: salsa::function::execute::<impl salsa::function::IngredientImpl<C>>::execute
  39: salsa::function::fetch::<impl salsa::function::IngredientImpl<C>>::fetch_cold_with_retry
  40: std::thread::local::LocalKey<T>::with
  41: hir::semantics::SemanticsImpl::analyze_impl
  42: hir::semantics::SemanticsImpl::type_of_binding_in_pat
  43: ide::inlay_hints::bind_pat::hints
  44: std::thread::local::LocalKey<T>::with
  45: salsa::cancelled::Cancelled::catch
  46: ide::Analysis::inlay_hints
  47: rust_analyzer::handlers::request::handle_inlay_hints
  48: core::ops::function::FnOnce::call_once{{vtable.shim}}
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
query stacktrace:
   0: infer_shim(Id(898b1)) -> (R12593, Durability::LOW)
             at crates/hir-ty/src/db.rs:28

additional context:
   0: 
version: 0.3.2667-standalone (bacc5bbd30 2025-11-02)
request: textDocument/inlayHint InlayHintParams {
    work_done_progress_params: WorkDoneProgressParams {
        work_done_token: None,
    },
    text_document: TextDocumentIdentifier {
        uri: Url {
            scheme: "file",
            cannot_be_a_base: false,
            username: "",
            password: None,
            host: None,
            port: None,
            path: <redacted>,
            query: None,
            fragment: None,
        },
    },
    range: Range {
        start: Position {
            line: 66,
            character: 0,
        },
        end: Position {
            line: 262,
            character: 48,
        },
    },
}

rust-analyzer version: rust-analyzer version: 0.3.2667-standalone (bacc5bb 2025-11-02) [/Users/jacob/.vscode/extensions/rust-lang.rust-analyzer-0.3.2667-darwin-arm64/server/rust-analyzer]

rustc version: rustc 1.87.0 (17067e9ac 2025-05-09)

editor or extension: VSCode, extension version 0.3.2667

relevant settings: All at default

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-tytype system / type inference / traits / method resolutionC-bugCategory: bugI-panic

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions