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.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/crates/hir/src/diagnostics.rs b/crates/hir/src/diagnostics.rs
index 473a25379a..1009a8b31b 100644
--- a/crates/hir/src/diagnostics.rs
+++ b/crates/hir/src/diagnostics.rs
@@ -63,6 +63,7 @@ diagnostics![AnyDiagnostic<'db> ->
IncorrectCase,
InvalidCast<'db>,
InvalidDeriveTarget,
+ InvalidLhsOfAssignment,
MacroDefError,
MacroError,
MacroExpansionParseError,
@@ -472,6 +473,11 @@ pub struct GenericDefaultRefersToSelf {
pub segment: InFile<AstPtr<ast::PathSegment>>,
}
+#[derive(Debug)]
+pub struct InvalidLhsOfAssignment {
+ pub lhs: InFile<AstPtr<Either<ast::Expr, ast::Pat>>>,
+}
+
impl<'db> AnyDiagnostic<'db> {
pub(crate) fn body_validation_diagnostic(
db: &'db dyn HirDatabase,
@@ -790,6 +796,10 @@ impl<'db> AnyDiagnostic<'db> {
let expected_kind = GenericArgKind::from_id(param_id);
IncorrectGenericsOrder { provided_arg, expected_kind }.into()
}
+ &InferenceDiagnostic::InvalidLhsOfAssignment { lhs } => {
+ let lhs = expr_syntax(lhs)?;
+ InvalidLhsOfAssignment { lhs }.into()
+ }
})
}