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.rs | 9 |
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() + } }) } |