Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir/src/diagnostics.rs')
-rw-r--r--crates/hir/src/diagnostics.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/crates/hir/src/diagnostics.rs b/crates/hir/src/diagnostics.rs
index 616b063419..d99ed37d7e 100644
--- a/crates/hir/src/diagnostics.rs
+++ b/crates/hir/src/diagnostics.rs
@@ -178,6 +178,7 @@ diagnostics![AnyDiagnostic<'db> ->
TypeMustBeKnown<'db>,
UnionExprMustHaveExactlyOneField,
UnimplementedTrait<'db>,
+ YieldOutsideCoroutine,
];
#[derive(Debug)]
@@ -671,6 +672,11 @@ pub struct MutableRefBinding {
pub pat: InFile<ExprOrPatPtr>,
}
+#[derive(Debug)]
+pub struct YieldOutsideCoroutine {
+ pub expr: InFile<ExprOrPatPtr>,
+}
+
impl<'db> AnyDiagnostic<'db> {
pub(crate) fn body_validation_diagnostic(
db: &'db dyn HirDatabase,
@@ -1102,6 +1108,9 @@ impl<'db> AnyDiagnostic<'db> {
let pat = pat_syntax(*pat)?.map(Into::into);
MutableRefBinding { pat }.into()
}
+ &InferenceDiagnostic::YieldOutsideCoroutine { expr } => {
+ YieldOutsideCoroutine { expr: expr_syntax(expr)? }.into()
+ }
})
}