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 6b07834231..d482135812 100644
--- a/crates/hir/src/diagnostics.rs
+++ b/crates/hir/src/diagnostics.rs
@@ -132,6 +132,7 @@ diagnostics![AnyDiagnostic<'db> ->
MissingMatchArms,
MissingUnsafe,
MovedOutOfRef<'db>,
+ MutableRefBinding,
NeedMut,
NonExhaustiveLet,
NonExhaustiveRecordExpr,
@@ -640,6 +641,11 @@ pub struct UnimplementedTrait<'db> {
pub root_trait_predicate: Option<crate::TraitPredicate<'db>>,
}
+#[derive(Debug)]
+pub struct MutableRefBinding {
+ pub pat: InFile<ExprOrPatPtr>,
+}
+
impl<'db> AnyDiagnostic<'db> {
pub(crate) fn body_validation_diagnostic(
db: &'db dyn HirDatabase,
@@ -1081,6 +1087,10 @@ impl<'db> AnyDiagnostic<'db> {
};
ExplicitDropMethodUse { expr_or_path }.into()
}
+ InferenceDiagnostic::MutableRefBinding { pat } => {
+ let pat = pat_syntax(*pat)?.map(Into::into);
+ MutableRefBinding { pat }.into()
+ }
})
}