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 | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/crates/hir/src/diagnostics.rs b/crates/hir/src/diagnostics.rs index cfb967f486..b921a5eef1 100644 --- a/crates/hir/src/diagnostics.rs +++ b/crates/hir/src/diagnostics.rs @@ -36,7 +36,7 @@ use crate::{AssocItem, Field, Function, GenericDef, Local, Trait, Type, TypeOwne pub use hir_def::VariantId; pub use hir_ty::{ - GenericArgsProhibitedReason, IncorrectGenericsLenKind, + GenericArgsProhibitedReason, IncorrectGenericsLenKind, ReturnKind, diagnostics::{CaseType, IncorrectCase}, }; @@ -181,6 +181,7 @@ diagnostics![AnyDiagnostic<'db> -> UnionPatHasRest, UnimplementedTrait<'db>, YieldOutsideCoroutine, + ReturnOutsideFunction, ]; #[derive(Debug)] @@ -689,6 +690,12 @@ pub struct YieldOutsideCoroutine { pub expr: InFile<ExprOrPatPtr>, } +#[derive(Debug)] +pub struct ReturnOutsideFunction { + pub expr: InFile<ExprOrPatPtr>, + pub kind: ReturnKind, +} + impl<'db> AnyDiagnostic<'db> { pub(crate) fn body_validation_diagnostic( db: &'db dyn HirDatabase, @@ -1131,6 +1138,9 @@ impl<'db> AnyDiagnostic<'db> { &InferenceDiagnostic::YieldOutsideCoroutine { expr } => { YieldOutsideCoroutine { expr: expr_syntax(expr)? }.into() } + &InferenceDiagnostic::ReturnOutsideFunction { expr, kind } => { + ReturnOutsideFunction { expr: expr_syntax(expr)?, kind }.into() + } }) } |