rust-analyzer icon indicating copy to clipboard operation
rust-analyzer copied to clipboard

getting codelens resolve error

Open pdeva opened this issue 1 month ago • 6 comments

Image

constantly seeing this error in latest Cursor since today morning. using latest version of everything

pdeva avatar Nov 06 '25 22:11 pdeva

What's in the Output pane?

ChayimFriedman2 avatar Nov 06 '25 22:11 ChayimFriedman2

2025-11-06T13:35:52.341052-08:00  WARN notify error: No path was found. about ["/Users/pdeva/Library/Application Support/rust-analyzer/rust-analyzer.toml"]
2025-11-06T13:35:53.520852-08:00  WARN notify error: No path was found. about ["/Users/pdeva/Library/Application Support/rust-analyzer/rust-analyzer.toml"]
2025-11-06T13:36:02.092237-08:00  WARN overly long loop turn took 601.389834ms (event handling took 601.355625ms): PrimeCaches(End { cancelled: false })

thread 'Worker10' (11793089) panicked at crates/hir-ty/src/next_solver/normalize.rs:48:5:
assertion `left == right` failed
  left: [Goal { param_env: ParamEnv { clauses: [] }, predicate: Binder { value: AliasRelate(Alias(Projection, AliasTy { args: [TryFlatten<MapOk<Once<Coroutine(InternedCoroutineId(InternedCoroutineId { loc: InternedCoroutine(FunctionId(FunctionId(112d0e)), Idx::<Expr>(743)) }), [(), (), (), Result<Vec<ObjectMeta, Global>, StorageError>, ()])>, Closure(InternedClosureId(InternedClosureId { loc: InternedClosure(FunctionId(FunctionId(112d0e)), Idx::<Expr>(745)) }), [i16, Binder { value: fn(Vec<ObjectMeta, Global>) -> Iter<Map<IntoIter<ObjectMeta, Global>, FnDef(EnumVariantId(EnumVariantId(1cc0c)), [ObjectMeta, ?729t])>>, bound_vars: [] }, ()])>>], def_id: TypeAliasId("Item"), .. }), Equate, ?743t), 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_coerce
   7: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
   8: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner::{{closure}}
   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::{{closure}}
  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::{{closure}}
  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::{{closure}}
  18: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
  19: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_return
  20: hir_ty::infer::infer_query
  21: salsa::function::execute::<impl salsa::function::IngredientImpl<C>>::execute
  22: salsa::function::fetch::<impl salsa::function::IngredientImpl<C>>::fetch_cold_with_retry
  23: std::thread::local::LocalKey<T>::with
  24: hir::semantics::SemanticsImpl::analyze_impl
  25: hir::semantics::SemanticsImpl::resolve_path_with_subst
  26: ide_db::defs::NameRefClass::classify
  27: ide_db::search::FindUsages::found_name_ref
  28: ide_db::search::FindUsages::search
  29: ide_db::search::FindUsages::all
  30: <alloc::vec::into_iter::IntoIter<T,A> as core::iter::traits::iterator::Iterator>::fold
  31: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::fold
  32: alloc::vec::in_place_collect::<impl alloc::vec::spec_from_iter::SpecFromIter<T,I> for alloc::vec::Vec<T>>::from_iter
  33: ide::references::find_all_refs
  34: ide::annotations::resolve_annotation
  35: salsa::cancelled::Cancelled::catch
  36: std::thread::local::LocalKey<T>::with
  37: ide::Analysis::resolve_annotation
  38: rust_analyzer::handlers::request::handle_code_lens_resolve
  39: 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(112d0e)) -> (R13964, Durability::LOW)
             at crates/hir-ty/src/db.rs:28

additional context:
   0: 
version: 0.3.2667-standalone (bacc5bbd30 2025-11-02)
request: codeLens/resolve CodeLens {
    range: Range {
        start: Position {
            line: 37,
            character: 7,
        },
        end: Position {
            line: 37,
            character: 14,
        },
    },
    command: None,
    data: Some(
        Object {
            "version": Number(76),
            "kind": Object {
                "references": Object {
                    "textDocument": Object {
                        "uri": String("file:///Users/pdeva/code/monorepo/services/qu-meta/src/kafka/state.rs"),
                    },
                    "position": Object {
                        "line": Number(37),
                        "character": Number(7),
                    },
                },
            },
        },
    ),
}


thread 'Worker2' (11793081) panicked at crates/hir-ty/src/next_solver/normalize.rs:48:5:
assertion `left == right` failed
  left: [Goal { param_env: ParamEnv { clauses: [] }, predicate: Binder { value: AliasRelate(Alias(Projection, AliasTy { args: [TryFlatten<MapOk<Once<Coroutine(InternedCoroutineId(InternedCoroutineId { loc: InternedCoroutine(FunctionId(FunctionId(112d0e)), Idx::<Expr>(743)) }), [(), (), (), Result<Vec<ObjectMeta, Global>, StorageError>, ()])>, Closure(InternedClosureId(InternedClosureId { loc: InternedClosure(FunctionId(FunctionId(112d0e)), Idx::<Expr>(745)) }), [i16, Binder { value: fn(Vec<ObjectMeta, Global>) -> Iter<Map<IntoIter<ObjectMeta, Global>, FnDef(EnumVariantId(EnumVariantId(1cc0c)), [ObjectMeta, ?729t])>>, bound_vars: [] }, ()])>>], def_id: TypeAliasId("Item"), .. }), Equate, ?743t), 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_coerce
   7: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
   8: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner::{{closure}}
   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::{{closure}}
  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::{{closure}}
  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::{{closure}}
  18: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
  19: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_return
  20: hir_ty::infer::infer_query
  21: salsa::function::execute::<impl salsa::function::IngredientImpl<C>>::execute
  22: salsa::function::fetch::<impl salsa::function::IngredientImpl<C>>::fetch_cold_with_retry
  23: std::thread::local::LocalKey<T>::with
  24: hir::semantics::SemanticsImpl::analyze_impl
  25: hir::semantics::SemanticsImpl::resolve_path_with_subst
  26: ide_db::defs::NameRefClass::classify
  27: ide_db::search::FindUsages::found_name_ref
  28: ide_db::search::FindUsages::search
  29: ide_db::search::FindUsages::all
  30: <alloc::vec::into_iter::IntoIter<T,A> as core::iter::traits::iterator::Iterator>::fold
  31: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::fold
  32: alloc::vec::in_place_collect::<impl alloc::vec::spec_from_iter::SpecFromIter<T,I> for alloc::vec::Vec<T>>::from_iter
  33: ide::references::find_all_refs
  34: ide::annotations::resolve_annotation
  35: salsa::cancelled::Cancelled::catch
  36: std::thread::local::LocalKey<T>::with
  37: ide::Analysis::resolve_annotation
  38: rust_analyzer::handlers::request::handle_code_lens_resolve
  39: 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(112d0e)) -> (R13964, Durability::LOW)
             at crates/hir-ty/src/db.rs:28

additional context:
   0: 
version: 0.3.2667-standalone (bacc5bbd30 2025-11-02)
request: codeLens/resolve CodeLens {
    range: Range {
        start: Position {
            line: 440,
            character: 7,
        },
        end: Position {
            line: 440,
            character: 14,
        },
    },
    command: None,
    data: Some(
        Object {
            "version": Number(76),
            "kind": Object {
                "references": Object {
                    "textDocument": Object {
                        "uri": String("file:///Users/pdeva/code/monorepo/services/qu-meta/src/kafka/state.rs"),
                    },
                    "position": Object {
                        "line": Number(440),
                        "character": Number(7),
                    },
                },
            },
        },
    ),
}


thread 'Worker7' (11793086) panicked at crates/hir-ty/src/next_solver/normalize.rs:48:5:
assertion `left == right` failed
  left: [Goal { param_env: ParamEnv { clauses: [] }, predicate: Binder { value: AliasRelate(Alias(Projection, AliasTy { args: [TryFlatten<MapOk<Once<Coroutine(InternedCoroutineId(InternedCoroutineId { loc: InternedCoroutine(FunctionId(FunctionId(112d0e)), Idx::<Expr>(743)) }), [(), (), (), Result<Vec<ObjectMeta, Global>, StorageError>, ()])>, Closure(InternedClosureId(InternedClosureId { loc: InternedClosure(FunctionId(FunctionId(112d0e)), Idx::<Expr>(745)) }), [i16, Binder { value: fn(Vec<ObjectMeta, Global>) -> Iter<Map<IntoIter<ObjectMeta, Global>, FnDef(EnumVariantId(EnumVariantId(1cc0c)), [ObjectMeta, ?729t])>>, bound_vars: [] }, ()])>>], def_id: TypeAliasId("Item"), .. }), Equate, ?743t), 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_coerce
   7: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
   8: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner::{{closure}}
   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::{{closure}}
  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::{{closure}}
  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::{{closure}}
  18: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
  19: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_return
  20: hir_ty::infer::infer_query
  21: salsa::function::execute::<impl salsa::function::IngredientImpl<C>>::execute
  22: salsa::function::fetch::<impl salsa::function::IngredientImpl<C>>::fetch_cold_with_retry
  23: std::thread::local::LocalKey<T>::with
  24: hir::semantics::SemanticsImpl::analyze_impl
  25: hir::semantics::SemanticsImpl::resolve_path_with_subst
  26: ide_db::defs::NameRefClass::classify
  27: ide_db::search::FindUsages::found_name_ref
  28: ide_db::search::FindUsages::search
  29: ide_db::search::FindUsages::all
  30: <alloc::vec::into_iter::IntoIter<T,A> as core::iter::traits::iterator::Iterator>::fold
  31: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::fold
  32: alloc::vec::in_place_collect::<impl alloc::vec::spec_from_iter::SpecFromIter<T,I> for alloc::vec::Vec<T>>::from_iter
  33: ide::references::find_all_refs
  34: ide::annotations::resolve_annotation
  35: salsa::cancelled::Cancelled::catch
  36: std::thread::local::LocalKey<T>::with
  37: ide::Analysis::resolve_annotation
  38: rust_analyzer::handlers::request::handle_code_lens_resolve
  39: 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(112d0e)) -> (R13964, Durability::LOW)
             at crates/hir-ty/src/db.rs:28

additional context:
   0: 
version: 0.3.2667-standalone (bacc5bbd30 2025-11-02)
request: codeLens/resolve CodeLens {
    range: Range {
        start: Position {
            line: 440,
            character: 7,
        },
        end: Position {
            line: 440,
            character: 14,
        },
    },
    command: None,
    data: Some(
        Object {
            "version": Number(76),
            "kind": Object {
                "references": Object {
                    "textDocument": Object {
                        "uri": String("file:///Users/pdeva/code/monorepo/services/qu-meta/src/kafka/state.rs"),
                    },
                    "position": Object {
                        "line": Number(440),
                        "character": Number(7),
                    },
                },
            },
        },
    ),
}


thread 'Worker5' (11793084) panicked at crates/hir-ty/src/next_solver/normalize.rs:48:5:
assertion `left == right` failed
  left: [Goal { param_env: ParamEnv { clauses: [] }, predicate: Binder { value: AliasRelate(Alias(Projection, AliasTy { args: [TryFlatten<MapOk<Once<Coroutine(InternedCoroutineId(InternedCoroutineId { loc: InternedCoroutine(FunctionId(FunctionId(112d0e)), Idx::<Expr>(743)) }), [(), (), (), Result<Vec<ObjectMeta, Global>, StorageError>, ()])>, Closure(InternedClosureId(InternedClosureId { loc: InternedClosure(FunctionId(FunctionId(112d0e)), Idx::<Expr>(745)) }), [i16, Binder { value: fn(Vec<ObjectMeta, Global>) -> Iter<Map<IntoIter<ObjectMeta, Global>, FnDef(EnumVariantId(EnumVariantId(1cc0c)), [ObjectMeta, ?729t])>>, bound_vars: [] }, ()])>>], def_id: TypeAliasId("Item"), .. }), Equate, ?743t), 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_coerce
   7: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
   8: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner::{{closure}}
   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::{{closure}}
  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::{{closure}}
  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::{{closure}}
  18: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
  19: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_return
  20: hir_ty::infer::infer_query
  21: salsa::function::execute::<impl salsa::function::IngredientImpl<C>>::execute
  22: salsa::function::fetch::<impl salsa::function::IngredientImpl<C>>::fetch_cold_with_retry
  23: std::thread::local::LocalKey<T>::with
  24: hir::semantics::SemanticsImpl::analyze_impl
  25: hir::semantics::SemanticsImpl::resolve_path_with_subst
  26: ide_db::defs::NameRefClass::classify
  27: ide_db::search::FindUsages::found_name_ref
  28: ide_db::search::FindUsages::search
  29: ide_db::search::FindUsages::all
  30: <alloc::vec::into_iter::IntoIter<T,A> as core::iter::traits::iterator::Iterator>::fold
  31: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::fold
  32: alloc::vec::in_place_collect::<impl alloc::vec::spec_from_iter::SpecFromIter<T,I> for alloc::vec::Vec<T>>::from_iter
  33: ide::references::find_all_refs
  34: ide::annotations::resolve_annotation
  35: salsa::cancelled::Cancelled::catch
  36: std::thread::local::LocalKey<T>::with
  37: ide::Analysis::resolve_annotation
  38: rust_analyzer::handlers::request::handle_code_lens_resolve
  39: 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(112d0e)) -> (R13964, Durability::LOW)
             at crates/hir-ty/src/db.rs:28

additional context:
   0: 
version: 0.3.2667-standalone (bacc5bbd30 2025-11-02)
request: codeLens/resolve CodeLens {
    range: Range {
        start: Position {
            line: 440,
            character: 7,
        },
        end: Position {
            line: 440,
            character: 14,
        },
    },
    command: None,
    data: Some(
        Object {
            "version": Number(76),
            "kind": Object {
                "references": Object {
                    "textDocument": Object {
                        "uri": String("file:///Users/pdeva/code/monorepo/services/qu-meta/src/kafka/state.rs"),
                    },
                    "position": Object {
                        "line": Number(440),
                        "character": Number(7),
                    },
                },
            },
        },
    ),
}

2025-11-06T14:16:00.807523-08:00  WARN overly long loop turn took 426.150917ms (event handling took 57.542µs): Notification { method: "textDocument/didChange" }

thread 'Worker1' (11793080) panicked at crates/hir-ty/src/next_solver/normalize.rs:48:5:
assertion `left == right` failed
  left: [Goal { param_env: ParamEnv { clauses: [] }, predicate: Binder { value: AliasRelate(Alias(Projection, AliasTy { args: [TryFlatten<MapOk<Once<Coroutine(InternedCoroutineId(InternedCoroutineId { loc: InternedCoroutine(FunctionId(FunctionId(112d0e)), Idx::<Expr>(743)) }), [(), (), (), Result<Vec<ObjectMeta, Global>, StorageError>, ()])>, Closure(InternedClosureId(InternedClosureId { loc: InternedClosure(FunctionId(FunctionId(112d0e)), Idx::<Expr>(745)) }), [i16, Binder { value: fn(Vec<ObjectMeta, Global>) -> Iter<Map<IntoIter<ObjectMeta, Global>, FnDef(EnumVariantId(EnumVariantId(1cc0c)), [ObjectMeta, ?729t])>>, bound_vars: [] }, ()])>>], def_id: TypeAliasId("Item"), .. }), Equate, ?743t), 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_coerce
   7: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
   8: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner::{{closure}}
   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::{{closure}}
  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::{{closure}}
  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::{{closure}}
  18: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
  19: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_return
  20: hir_ty::infer::infer_query
  21: salsa::function::execute::<impl salsa::function::IngredientImpl<C>>::execute
  22: salsa::function::fetch::<impl salsa::function::IngredientImpl<C>>::fetch_cold_with_retry
  23: std::thread::local::LocalKey<T>::with
  24: hir::semantics::SemanticsImpl::analyze_impl
  25: hir::semantics::SemanticsImpl::resolve_path_with_subst
  26: ide_db::defs::NameRefClass::classify
  27: ide_db::search::FindUsages::found_name_ref
  28: ide_db::search::FindUsages::search
  29: ide_db::search::FindUsages::all
  30: <alloc::vec::into_iter::IntoIter<T,A> as core::iter::traits::iterator::Iterator>::fold
  31: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::fold
  32: alloc::vec::in_place_collect::<impl alloc::vec::spec_from_iter::SpecFromIter<T,I> for alloc::vec::Vec<T>>::from_iter
  33: ide::references::find_all_refs
  34: ide::annotations::resolve_annotation
  35: salsa::cancelled::Cancelled::catch
  36: std::thread::local::LocalKey<T>::with
  37: ide::Analysis::resolve_annotation
  38: rust_analyzer::handlers::request::handle_code_lens_resolve
  39: 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(112d0e)) -> (R14234, Durability::LOW)
             at crates/hir-ty/src/db.rs:28

additional context:
   0: 
version: 0.3.2667-standalone (bacc5bbd30 2025-11-02)
request: codeLens/resolve CodeLens {
    range: Range {
        start: Position {
            line: 38,
            character: 7,
        },
        end: Position {
            line: 38,
            character: 14,
        },
    },
    command: None,
    data: Some(
        Object {
            "version": Number(156),
            "kind": Object {
                "references": Object {
                    "textDocument": Object {
                        "uri": String("file:///Users/pdeva/code/monorepo/services/qu-meta/src/kafka/state.rs"),
                    },
                    "position": Object {
                        "line": Number(38),
                        "character": Number(7),
                    },
                },
            },
        },
    ),
}

[Error - 2:21:25 PM] Request codeLens/resolve failed.
  Message: request handler panicked: assertion `left == right` failed
  left: [Goal { param_env: ParamEnv { clauses: [] }, predicate: Binder { value: AliasRelate(Alias(Projection, AliasTy { args: [TryFlatten<MapOk<Once<Coroutine(InternedCoroutineId(InternedCoroutineId { loc: InternedCoroutine(FunctionId(FunctionId(112d0e)), Idx::<Expr>(743)) }), [(), (), (), Result<Vec<ObjectMeta, Global>, StorageError>, ()])>, Closure(InternedClosureId(InternedClosureId { loc: InternedClosure(FunctionId(FunctionId(112d0e)), Idx::<Expr>(745)) }), [i16, Binder { value: fn(Vec<ObjectMeta, Global>) -> Iter<Map<IntoIter<ObjectMeta, Global>, FnDef(EnumVariantId(EnumVariantId(1cc0c)), [ObjectMeta, ?729t])>>, bound_vars: [] }, ()])>>], def_id: TypeAliasId("Item"), .. }), Equate, ?743t), bound_vars: [] } }]
 right: []
  Code: -32603 

thread 'Worker12' (11793091) panicked at crates/hir-ty/src/next_solver/normalize.rs:48:5:
assertion `left == right` failed
  left: [Goal { param_env: ParamEnv { clauses: [] }, predicate: Binder { value: AliasRelate(Alias(Projection, AliasTy { args: [TryFlatten<MapOk<Once<Coroutine(InternedCoroutineId(InternedCoroutineId { loc: InternedCoroutine(FunctionId(FunctionId(112d0e)), Idx::<Expr>(743)) }), [(), (), (), Result<Vec<ObjectMeta, Global>, StorageError>, ()])>, Closure(InternedClosureId(InternedClosureId { loc: InternedClosure(FunctionId(FunctionId(112d0e)), Idx::<Expr>(745)) }), [i16, Binder { value: fn(Vec<ObjectMeta, Global>) -> Iter<Map<IntoIter<ObjectMeta, Global>, FnDef(EnumVariantId(EnumVariantId(1cc0c)), [ObjectMeta, ?729t])>>, bound_vars: [] }, ()])>>], def_id: TypeAliasId("Item"), .. }), Equate, ?743t), 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_coerce
   7: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
   8: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner::{{closure}}
   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::{{closure}}
  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::{{closure}}
  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::{{closure}}
  18: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
  19: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_return
  20: hir_ty::infer::infer_query
  21: salsa::function::execute::<impl salsa::function::IngredientImpl<C>>::execute
  22: salsa::function::fetch::<impl salsa::function::IngredientImpl<C>>::fetch_cold_with_retry
  23: std::thread::local::LocalKey<T>::with
  24: hir::semantics::SemanticsImpl::analyze_impl
  25: hir::semantics::SemanticsImpl::resolve_path_with_subst
  26: ide_db::defs::NameRefClass::classify
  27: ide_db::search::FindUsages::found_name_ref
  28: ide_db::search::FindUsages::search
  29: ide_db::search::FindUsages::all
  30: <alloc::vec::into_iter::IntoIter<T,A> as core::iter::traits::iterator::Iterator>::fold
  31: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::fold
  32: alloc::vec::in_place_collect::<impl alloc::vec::spec_from_iter::SpecFromIter<T,I> for alloc::vec::Vec<T>>::from_iter
  33: ide::references::find_all_refs
  34: ide::annotations::resolve_annotation
  35: salsa::cancelled::Cancelled::catch
  36: std::thread::local::LocalKey<T>::with
  37: ide::Analysis::resolve_annotation
  38: rust_analyzer::handlers::request::handle_code_lens_resolve
  39: 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(112d0e)) -> (R14234, Durability::LOW)
             at crates/hir-ty/src/db.rs:28

additional context:
   0: 
version: 0.3.2667-standalone (bacc5bbd30 2025-11-02)
request: codeLens/resolve CodeLens {
    range: Range {
        start: Position {
            line: 38,
            character: 7,
        },
        end: Position {
            line: 38,
            character: 14,
        },
    },
    command: None,
    data: Some(
        Object {
            "version": Number(156),
            "kind": Object {
                "references": Object {
                    "textDocument": Object {
                        "uri": String("file:///Users/pdeva/code/monorepo/services/qu-meta/src/kafka/state.rs"),
                    },
                    "position": Object {
                        "line": Number(38),
                        "character": Number(7),
                    },
                },
            },
        },
    ),
}

[Error - 2:23:02 PM] Request codeLens/resolve failed.
  Message: request handler panicked: assertion `left == right` failed
  left: [Goal { param_env: ParamEnv { clauses: [] }, predicate: Binder { value: AliasRelate(Alias(Projection, AliasTy { args: [TryFlatten<MapOk<Once<Coroutine(InternedCoroutineId(InternedCoroutineId { loc: InternedCoroutine(FunctionId(FunctionId(112d0e)), Idx::<Expr>(743)) }), [(), (), (), Result<Vec<ObjectMeta, Global>, StorageError>, ()])>, Closure(InternedClosureId(InternedClosureId { loc: InternedClosure(FunctionId(FunctionId(112d0e)), Idx::<Expr>(745)) }), [i16, Binder { value: fn(Vec<ObjectMeta, Global>) -> Iter<Map<IntoIter<ObjectMeta, Global>, FnDef(EnumVariantId(EnumVariantId(1cc0c)), [ObjectMeta, ?729t])>>, bound_vars: [] }, ()])>>], def_id: TypeAliasId("Item"), .. }), Equate, ?743t), bound_vars: [] } }]
 right: []
  Code: -32603 
2025-11-06T14:27:55.88268-08:00  WARN overly long loop turn took 780.434833ms (event handling took 44.083µs): Changed { n_files: 1 }
2025-11-06T14:27:57.239326-08:00  WARN overly long loop turn took 137.563167ms (event handling took 137.531625ms): PrimeCaches(End { cancelled: false })

thread 'Worker0' (11793079) panicked at crates/hir-ty/src/next_solver/normalize.rs:48:5:
assertion `left == right` failed
  left: [Goal { param_env: ParamEnv { clauses: [] }, predicate: Binder { value: AliasRelate(Alias(Projection, AliasTy { args: [TryFlatten<MapOk<Once<Coroutine(InternedCoroutineId(InternedCoroutineId { loc: InternedCoroutine(FunctionId(FunctionId(112d0e)), Idx::<Expr>(743)) }), [(), (), (), Result<Vec<ObjectMeta, Global>, StorageError>, ()])>, Closure(InternedClosureId(InternedClosureId { loc: InternedClosure(FunctionId(FunctionId(112d0e)), Idx::<Expr>(745)) }), [i16, Binder { value: fn(Vec<ObjectMeta, Global>) -> Iter<Map<IntoIter<ObjectMeta, Global>, FnDef(EnumVariantId(EnumVariantId(1cc0c)), [ObjectMeta, ?729t])>>, bound_vars: [] }, ()])>>], def_id: TypeAliasId("Item"), .. }), Equate, ?743t), 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_coerce
   7: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
   8: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner::{{closure}}
   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::{{closure}}
  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::{{closure}}
  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::{{closure}}
  18: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
  19: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_return
  20: hir_ty::infer::infer_query
  21: salsa::function::execute::<impl salsa::function::IngredientImpl<C>>::execute
  22: salsa::function::fetch::<impl salsa::function::IngredientImpl<C>>::fetch_cold_with_retry
  23: std::thread::local::LocalKey<T>::with
  24: hir::semantics::SemanticsImpl::analyze_impl
  25: hir::semantics::SemanticsImpl::resolve_path_with_subst
  26: ide_db::defs::NameRefClass::classify
  27: ide_db::search::FindUsages::found_name_ref
  28: ide_db::search::FindUsages::search
  29: ide_db::search::FindUsages::all
  30: <alloc::vec::into_iter::IntoIter<T,A> as core::iter::traits::iterator::Iterator>::fold
  31: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::fold
  32: alloc::vec::in_place_collect::<impl alloc::vec::spec_from_iter::SpecFromIter<T,I> for alloc::vec::Vec<T>>::from_iter
  33: ide::references::find_all_refs
  34: ide::annotations::resolve_annotation
  35: salsa::cancelled::Cancelled::catch
  36: std::thread::local::LocalKey<T>::with
  37: ide::Analysis::resolve_annotation
  38: rust_analyzer::handlers::request::handle_code_lens_resolve
  39: 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(112d0e)) -> (R28137, Durability::LOW)
             at crates/hir-ty/src/db.rs:28

additional context:
   0: 
version: 0.3.2667-standalone (bacc5bbd30 2025-11-02)
request: codeLens/resolve CodeLens {
    range: Range {
        start: Position {
            line: 37,
            character: 7,
        },
        end: Position {
            line: 37,
            character: 14,
        },
    },
    command: None,
    data: Some(
        Object {
            "version": Number(157),
            "kind": Object {
                "references": Object {
                    "textDocument": Object {
                        "uri": String("file:///Users/pdeva/code/monorepo/services/qu-meta/src/kafka/state.rs"),
                    },
                    "position": Object {
                        "line": Number(37),
                        "character": Number(7),
                    },
                },
            },
        },
    ),
}

[Error - 2:28:03 PM] Request codeLens/resolve failed.
  Message: request handler panicked: assertion `left == right` failed
  left: [Goal { param_env: ParamEnv { clauses: [] }, predicate: Binder { value: AliasRelate(Alias(Projection, AliasTy { args: [TryFlatten<MapOk<Once<Coroutine(InternedCoroutineId(InternedCoroutineId { loc: InternedCoroutine(FunctionId(FunctionId(112d0e)), Idx::<Expr>(743)) }), [(), (), (), Result<Vec<ObjectMeta, Global>, StorageError>, ()])>, Closure(InternedClosureId(InternedClosureId { loc: InternedClosure(FunctionId(FunctionId(112d0e)), Idx::<Expr>(745)) }), [i16, Binder { value: fn(Vec<ObjectMeta, Global>) -> Iter<Map<IntoIter<ObjectMeta, Global>, FnDef(EnumVariantId(EnumVariantId(1cc0c)), [ObjectMeta, ?729t])>>, bound_vars: [] }, ()])>>], def_id: TypeAliasId("Item"), .. }), Equate, ?743t), bound_vars: [] } }]
 right: []
  Code: -32603 

thread 'Worker13' (11793092) panicked at crates/hir-ty/src/next_solver/normalize.rs:48:5:
assertion `left == right` failed
  left: [Goal { param_env: ParamEnv { clauses: [] }, predicate: Binder { value: AliasRelate(Alias(Projection, AliasTy { args: [TryFlatten<MapOk<Once<Coroutine(InternedCoroutineId(InternedCoroutineId { loc: InternedCoroutine(FunctionId(FunctionId(112d0e)), Idx::<Expr>(743)) }), [(), (), (), Result<Vec<ObjectMeta, Global>, StorageError>, ()])>, Closure(InternedClosureId(InternedClosureId { loc: InternedClosure(FunctionId(FunctionId(112d0e)), Idx::<Expr>(745)) }), [i16, Binder { value: fn(Vec<ObjectMeta, Global>) -> Iter<Map<IntoIter<ObjectMeta, Global>, FnDef(EnumVariantId(EnumVariantId(1cc0c)), [ObjectMeta, ?729t])>>, bound_vars: [] }, ()])>>], def_id: TypeAliasId("Item"), .. }), Equate, ?743t), 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_coerce
   7: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
   8: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner::{{closure}}
   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::{{closure}}
  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::{{closure}}
  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::{{closure}}
  18: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
  19: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_return
  20: hir_ty::infer::infer_query
  21: salsa::function::execute::<impl salsa::function::IngredientImpl<C>>::execute
  22: salsa::function::fetch::<impl salsa::function::IngredientImpl<C>>::fetch_cold_with_retry
  23: std::thread::local::LocalKey<T>::with
  24: hir::semantics::SemanticsImpl::analyze_impl
  25: hir::semantics::SemanticsImpl::resolve_path_with_subst
  26: ide_db::defs::NameRefClass::classify
  27: ide_db::search::FindUsages::found_name_ref
  28: ide_db::search::FindUsages::search
  29: ide_db::search::FindUsages::all
  30: <alloc::vec::into_iter::IntoIter<T,A> as core::iter::traits::iterator::Iterator>::fold
  31: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::fold
  32: alloc::vec::in_place_collect::<impl alloc::vec::spec_from_iter::SpecFromIter<T,I> for alloc::vec::Vec<T>>::from_iter
  33: ide::references::find_all_refs
  34: ide::annotations::resolve_annotation
  35: salsa::cancelled::Cancelled::catch
  36: std::thread::local::LocalKey<T>::with
  37: ide::Analysis::resolve_annotation
  38: rust_analyzer::handlers::request::handle_code_lens_resolve
  39: 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(112d0e)) -> (R28137, Durability::LOW)
             at crates/hir-ty/src/db.rs:28

additional context:
   0: 
version: 0.3.2667-standalone (bacc5bbd30 2025-11-02)
request: codeLens/resolve CodeLens {
    range: Range {
        start: Position {
            line: 37,
            character: 7,
        },
        end: Position {
            line: 37,
            character: 14,
        },
    },
    command: None,
    data: Some(
        Object {
            "version": Number(157),
            "kind": Object {
                "references": Object {
                    "textDocument": Object {
                        "uri": String("file:///Users/pdeva/code/monorepo/services/qu-meta/src/kafka/state.rs"),
                    },
                    "position": Object {
                        "line": Number(37),
                        "character": Number(7),
                    },
                },
            },
        },
    ),
}

[Error - 2:56:07 PM] Request codeLens/resolve failed.
  Message: request handler panicked: assertion `left == right` failed
  left: [Goal { param_env: ParamEnv { clauses: [] }, predicate: Binder { value: AliasRelate(Alias(Projection, AliasTy { args: [TryFlatten<MapOk<Once<Coroutine(InternedCoroutineId(InternedCoroutineId { loc: InternedCoroutine(FunctionId(FunctionId(112d0e)), Idx::<Expr>(743)) }), [(), (), (), Result<Vec<ObjectMeta, Global>, StorageError>, ()])>, Closure(InternedClosureId(InternedClosureId { loc: InternedClosure(FunctionId(FunctionId(112d0e)), Idx::<Expr>(745)) }), [i16, Binder { value: fn(Vec<ObjectMeta, Global>) -> Iter<Map<IntoIter<ObjectMeta, Global>, FnDef(EnumVariantId(EnumVariantId(1cc0c)), [ObjectMeta, ?729t])>>, bound_vars: [] }, ()])>>], def_id: TypeAliasId("Item"), .. }), Equate, ?743t), bound_vars: [] } }]
 right: []
  Code: -32603 

pdeva avatar Nov 06 '25 22:11 pdeva

I think this would be fixed by https://github.com/rust-lang/rust-analyzer/pull/20980

ShoyuVanilla avatar Nov 07 '25 01:11 ShoyuVanilla

Hitting the same issue, with the panic preceded by the "overly long loop turn" warning.

In the logs:

2025-11-21T09:01:36.595409-08:00  WARN overly long loop turn took 4.072230042s (event handling took 103.542µs): Notification { method: "textDocument/didChange" }

thread 'Worker0' (73357038) 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(#1: Sized, polarity:Positive), bound_vars: [] }), Clause(Binder { value: TraitPredicate(#0: Sized, polarity:Positive), bound_vars: [] }), Clause(Binder { value: OutlivesPredicate(Alias(Projection, AliasTy { args: [#0, ServiceRequest], def_id: TypeAliasId("Future"), .. }), 'static), bound_vars: [] }), Clause(Binder { value: ProjectionPredicate(AliasTerm { args: [#0, ServiceRequest], def_id: TypeAliasId("InitError"), .. }, ()), bound_vars: [] }), Clause(Binder { value: ProjectionPredicate(AliasTerm { args: [#0, ServiceRequest], def_id: TypeAliasId("Error"), .. }, Error), bound_vars: [] }), Clause(Binder { value: ProjectionPredicate(AliasTerm { args: [#0, ServiceRequest], def_id: TypeAliasId("Response"), .. }, ServiceResponse<#1>), bound_vars: [] }), Clause(Binder { value: ProjectionPredicate(AliasTerm { args: [#0, ServiceRequest], def_id: TypeAliasId("Config"), .. }, ()), bound_vars: [] }), Clause(Binder { value: TraitPredicate(#0: ServiceFactory<[ServiceRequest]>, polarity:Positive), bound_vars: [] })] }, predicate: Binder { value: AliasRelate(Alias(Projection, AliasTy { args: [FnServiceFactory<Closure(InternedClosureId(InternedClosureId { loc: InternedClosure(FunctionId(FunctionId(221ff0)), Idx::<Expr>(7)) }), [#0, #1, i8, Binder { value: fn(ServiceRequest) -> Coroutine(InternedCoroutineId(InternedCoroutineId { loc: InternedCoroutine(FunctionId(FunctionId(221ff0)), Idx::<Expr>(14)) }), [#0, #1, (), (), (), Result<ServiceResponse<BoxBody>, ?227t>, ()]), bound_vars: [] }, ()]), Coroutine(InternedCoroutineId(InternedCoroutineId { loc: InternedCoroutine(FunctionId(FunctionId(221ff0)), Idx::<Expr>(14)) }), [#0, #1, (), (), (), Result<ServiceResponse<BoxBody>, ?227t>, ()]), ServiceRequest, ServiceResponse<BoxBody>, ?35t, ?244t>, ServiceRequest], def_id: TypeAliasId("Config"), .. }), Equate, ?251t), bound_vars: [] } }, Goal { param_env: ParamEnv { clauses: [Clause(Binder { value: TraitPredicate(#1: Sized, polarity:Positive), bound_vars: [] }), Clause(Binder { value: TraitPredicate(#0: Sized, polarity:Positive), bound_vars: [] }), Clause(Binder { value: OutlivesPredicate(Alias(Projection, AliasTy { args: [#0, ServiceRequest], def_id: TypeAliasId("Future"), .. }), 'static), bound_vars: [] }), Clause(Binder { value: ProjectionPredicate(AliasTerm { args: [#0, ServiceRequest], def_id: TypeAliasId("InitError"), .. }, ()), bound_vars: [] }), Clause(Binder { value: ProjectionPredicate(AliasTerm { args: [#0, ServiceRequest], def_id: TypeAliasId("Error"), .. }, Error), bound_vars: [] }), Clause(Binder { value: ProjectionPredicate(AliasTerm { args: [#0, ServiceRequest], def_id: TypeAliasId("Response"), .. }, ServiceResponse<#1>), bound_vars: [] }), Clause(Binder { value: ProjectionPredicate(AliasTerm { args: [#0, ServiceRequest], def_id: TypeAliasId("Config"), .. }, ()), bound_vars: [] }), Clause(Binder { value: TraitPredicate(#0: ServiceFactory<[ServiceRequest]>, polarity:Positive), bound_vars: [] })] }, predicate: Binder { value: AliasRelate(Alias(Projection, AliasTy { args: [FnServiceFactory<Closure(InternedClosureId(InternedClosureId { loc: InternedClosure(FunctionId(FunctionId(221ff0)), Idx::<Expr>(7)) }), [#0, #1, i8, Binder { value: fn(ServiceRequest) -> Coroutine(InternedCoroutineId(InternedCoroutineId { loc: InternedCoroutine(FunctionId(FunctionId(221ff0)), Idx::<Expr>(14)) }), [#0, #1, (), (), (), Result<ServiceResponse<BoxBody>, ?227t>, ()]), bound_vars: [] }, ()]), Coroutine(InternedCoroutineId(InternedCoroutineId { loc: InternedCoroutine(FunctionId(FunctionId(221ff0)), Idx::<Expr>(14)) }), [#0, #1, (), (), (), Result<ServiceResponse<BoxBody>, ?227t>, ()]), ServiceRequest, ServiceResponse<BoxBody>, ?35t, ?244t>, ServiceRequest], def_id: TypeAliasId("Response"), .. }), Equate, ?256t), bound_vars: [] } }, Goal { param_env: ParamEnv { clauses: [Clause(Binder { value: TraitPredicate(#1: Sized, polarity:Positive), bound_vars: [] }), Clause(Binder { value: TraitPredicate(#0: Sized, polarity:Positive), bound_vars: [] }), Clause(Binder { value: OutlivesPredicate(Alias(Projection, AliasTy { args: [#0, ServiceRequest], def_id: TypeAliasId("Future"), .. }), 'static), bound_vars: [] }), Clause(Binder { value: ProjectionPredicate(AliasTerm { args: [#0, ServiceRequest], def_id: TypeAliasId("InitError"), .. }, ()), bound_vars: [] }), Clause(Binder { value: ProjectionPredicate(AliasTerm { args: [#0, ServiceRequest], def_id: TypeAliasId("Error"), .. }, Error), bound_vars: [] }), Clause(Binder { value: ProjectionPredicate(AliasTerm { args: [#0, ServiceRequest], def_id: TypeAliasId("Response"), .. }, ServiceResponse<#1>), bound_vars: [] }), Clause(Binder { value: ProjectionPredicate(AliasTerm { args: [#0, ServiceRequest], def_id: TypeAliasId("Config"), .. }, ()), bound_vars: [] }), Clause(Binder { value: TraitPredicate(#0: ServiceFactory<[ServiceRequest]>, polarity:Positive), bound_vars: [] })] }, predicate: Binder { value: AliasRelate(Alias(Projection, AliasTy { args: [FnServiceFactory<Closure(InternedClosureId(InternedClosureId { loc: InternedClosure(FunctionId(FunctionId(221ff0)), Idx::<Expr>(7)) }), [#0, #1, i8, Binder { value: fn(ServiceRequest) -> Coroutine(InternedCoroutineId(InternedCoroutineId { loc: InternedCoroutine(FunctionId(FunctionId(221ff0)), Idx::<Expr>(14)) }), [#0, #1, (), (), (), Result<ServiceResponse<BoxBody>, ?227t>, ()]), bound_vars: [] }, ()]), Coroutine(InternedCoroutineId(InternedCoroutineId { loc: InternedCoroutine(FunctionId(FunctionId(221ff0)), Idx::<Expr>(14)) }), [#0, #1, (), (), (), Result<ServiceResponse<BoxBody>, ?227t>, ()]), ServiceRequest, ServiceResponse<BoxBody>, ?35t, ?244t>, ServiceRequest], def_id: TypeAliasId("Error"), .. }), Equate, ?261t), bound_vars: [] } }, Goal { param_env: ParamEnv { clauses: [Clause(Binder { value: TraitPredicate(#1: Sized, polarity:Positive), bound_vars: [] }), Clause(Binder { value: TraitPredicate(#0: Sized, polarity:Positive), bound_vars: [] }), Clause(Binder { value: OutlivesPredicate(Alias(Projection, AliasTy { args: [#0, ServiceRequest], def_id: TypeAliasId("Future"), .. }), 'static), bound_vars: [] }), Clause(Binder { value: ProjectionPredicate(AliasTerm { args: [#0, ServiceRequest], def_id: TypeAliasId("InitError"), .. }, ()), bound_vars: [] }), Clause(Binder { value: ProjectionPredicate(AliasTerm { args: [#0, ServiceRequest], def_id: TypeAliasId("Error"), .. }, Error), bound_vars: [] }), Clause(Binder { value: ProjectionPredicate(AliasTerm { args: [#0, ServiceRequest], def_id: TypeAliasId("Response"), .. }, ServiceResponse<#1>), bound_vars: [] }), Clause(Binder { value: ProjectionPredicate(AliasTerm { args: [#0, ServiceRequest], def_id: TypeAliasId("Config"), .. }, ()), bound_vars: [] }), Clause(Binder { value: TraitPredicate(#0: ServiceFactory<[ServiceRequest]>, polarity:Positive), bound_vars: [] })] }, predicate: Binder { value: AliasRelate(Alias(Projection, AliasTy { args: [FnServiceFactory<Closure(InternedClosureId(InternedClosureId { loc: InternedClosure(FunctionId(FunctionId(221ff0)), Idx::<Expr>(7)) }), [#0, #1, i8, Binder { value: fn(ServiceRequest) -> Coroutine(InternedCoroutineId(InternedCoroutineId { loc: InternedCoroutine(FunctionId(FunctionId(221ff0)), Idx::<Expr>(14)) }), [#0, #1, (), (), (), Result<ServiceResponse<BoxBody>, ?227t>, ()]), bound_vars: [] }, ()]), Coroutine(InternedCoroutineId(InternedCoroutineId { loc: InternedCoroutine(FunctionId(FunctionId(221ff0)), Idx::<Expr>(14)) }), [#0, #1, (), (), (), Result<ServiceResponse<BoxBody>, ?227t>, ()]), ServiceRequest, ServiceResponse<BoxBody>, ?35t, ?244t>, ServiceRequest], def_id: TypeAliasId("InitError"), .. }), Equate, ?266t), 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>::check_call_arguments
   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_coerce
   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_return
  13: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner::{{closure}}
  14: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::check_call_arguments
  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_coerce
  17: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block
  18: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner::{{closure}}
  19: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
  20: hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_return
  21: hir_ty::infer::infer_query
  22: salsa::function::execute::<impl salsa::function::IngredientImpl<C>>::execute
  23: salsa::function::fetch::<impl salsa::function::IngredientImpl<C>>::fetch_cold_with_retry
  24: std::thread::local::LocalKey<T>::with
  25: hir::semantics::SemanticsImpl::analyze_impl
  26: hir::semantics::SemanticsImpl::resolve_method_call_fallback
  27: ide_db::defs::NameRefClass::classify
  28: ide_db::search::FindUsages::found_name_ref
  29: ide_db::search::FindUsages::search
  30: ide_db::search::FindUsages::all
  31: <alloc::vec::into_iter::IntoIter<T,A> as core::iter::traits::iterator::Iterator>::fold
  32: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::fold
  33: alloc::vec::in_place_collect::<impl alloc::vec::spec_from_iter::SpecFromIter<T,I> for alloc::vec::Vec<T>>::from_iter
  34: ide::references::find_all_refs
  35: ide::annotations::resolve_annotation
  36: salsa::cancelled::Cancelled::catch
  37: std::thread::local::LocalKey<T>::with
  38: ide::Analysis::resolve_annotation
  39: rust_analyzer::handlers::request::handle_code_lens_resolve
  40: 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(221ff0)) -> (R20212, Durability::MEDIUM)
             at crates/hir-ty/src/db.rs:28

turingbuilder avatar Nov 21 '25 17:11 turingbuilder

I guess this has been already fixed in the latest unstable release, by https://github.com/rust-lang/rust-analyzer/pull/20974

ShoyuVanilla avatar Nov 21 '25 17:11 ShoyuVanilla

FWIW we hit the same error relatively often in our last release, but it's fixed on master. Bisecting suggests that 50384460c68f9c2aaa9148a9131480c07c933c91 has fixed it.

My minimal repro program was:

pub trait Resolver<Unresolved> {
    type Error;
    fn resolve(&self, unresolved: Unresolved) -> Self::Error;
}
impl<F> Resolver<String> for F {
    type Error = ();
    fn resolve(&self, _: String) -> Self::Error {
        todo!()
    }
}
impl<F> Resolver<()> for F {
    type Error = ();
    fn resolve(&self, _: ()) -> Self::Error {
        todo!()
    }
}
async fn oh_no() {
    let resolver = (|| async {}, || {});
    resolver.resolve();
}

Wilfred avatar Nov 27 '25 17:11 Wilfred