Unnamed repository; edit this file 'description' to name the repository.
Merge pull request #22274 from ChayimFriedman2/solver-lang-items
fix: Add missing solver lang items
| -rw-r--r-- | crates/hir-ty/src/next_solver/interner.rs | 22 | ||||
| -rw-r--r-- | crates/ide-diagnostics/src/handlers/unimplemented_trait.rs | 19 |
2 files changed, 30 insertions, 11 deletions
diff --git a/crates/hir-ty/src/next_solver/interner.rs b/crates/hir-ty/src/next_solver/interner.rs index bdbcaee4f6..fb70734872 100644 --- a/crates/hir-ty/src/next_solver/interner.rs +++ b/crates/hir-ty/src/next_solver/interner.rs @@ -1461,10 +1461,6 @@ impl<'db> Interner for DbInterner<'db> { SolverTraitLangItem, self, def_id.0, lang_item; ignore = { - AsyncFnKindHelper, - BikeshedGuaranteedNoDrop, - FusedIterator, - Field, AsyncFnOnceOutput, // This is incorrectly marked as `SolverTraitLangItem`, and is not used by the solver. } @@ -1493,6 +1489,10 @@ impl<'db> Interner for DbInterner<'db> { AsyncFnMut, AsyncFnOnce, TrivialClone, + AsyncFnKindHelper, + BikeshedGuaranteedNoDrop, + FusedIterator, + Field, ) } @@ -1509,10 +1509,7 @@ impl<'db> Interner for DbInterner<'db> { SolverLangItem, self, id; ignore = { - AsyncFnKindUpvars, DynMetadata, - FieldBase, - FieldType, } Metadata, @@ -1522,6 +1519,9 @@ impl<'db> Interner for DbInterner<'db> { CallRefFuture, CallOnceFuture, AsyncFnOnceOutput, + AsyncFnKindUpvars, + FieldBase, + FieldType, ) } SolverDefId::AdtId(AdtId::StructId(id)) => { @@ -1553,10 +1553,6 @@ impl<'db> Interner for DbInterner<'db> { SolverTraitLangItem, self, def_id.0; ignore = { - AsyncFnKindHelper, - BikeshedGuaranteedNoDrop, - FusedIterator, - Field, AsyncFnOnceOutput, // This is incorrectly marked as `SolverTraitLangItem`, and is not used by the solver. } @@ -1585,6 +1581,10 @@ impl<'db> Interner for DbInterner<'db> { AsyncFnMut, AsyncFnOnce, TrivialClone, + AsyncFnKindHelper, + BikeshedGuaranteedNoDrop, + FusedIterator, + Field, ) } diff --git a/crates/ide-diagnostics/src/handlers/unimplemented_trait.rs b/crates/ide-diagnostics/src/handlers/unimplemented_trait.rs index 4326aec458..bacf273f76 100644 --- a/crates/ide-diagnostics/src/handlers/unimplemented_trait.rs +++ b/crates/ide-diagnostics/src/handlers/unimplemented_trait.rs @@ -50,4 +50,23 @@ fn bar() { "#, ); } + + #[test] + fn async_closure_does_not_trigger() { + check_diagnostics( + r#" +//- minicore: async_fn +fn spawn_in<AsyncFn>(_f: AsyncFn) +where + AsyncFn: AsyncFnOnce(), +{ +} + +fn foo() { + spawn_in(async move || {}); +} + + "#, + ); + } } |