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
Chayim Refael Friedman 13 days ago
parent 7202651 · parent e85eb85 · commit b4ca747
-rw-r--r--crates/hir-ty/src/next_solver/interner.rs22
-rw-r--r--crates/ide-diagnostics/src/handlers/unimplemented_trait.rs19
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 || {});
+}
+
+ "#,
+ );
+ }
}