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.rs11
1 files changed, 11 insertions, 0 deletions
diff --git a/crates/hir/src/diagnostics.rs b/crates/hir/src/diagnostics.rs
index f5b1463f6f..f3188c9aad 100644
--- a/crates/hir/src/diagnostics.rs
+++ b/crates/hir/src/diagnostics.rs
@@ -104,6 +104,7 @@ diagnostics![AnyDiagnostic<'db> ->
AwaitOutsideOfAsync,
BreakOutsideOfLoop,
CannotBeDereferenced<'db>,
+ CannotImplicitlyDerefTraitObject<'db>,
CannotIndexInto<'db>,
CastToUnsized<'db>,
ExpectedArrayOrSlicePat<'db>,
@@ -335,6 +336,12 @@ pub struct CannotBeDereferenced<'db> {
}
#[derive(Debug)]
+pub struct CannotImplicitlyDerefTraitObject<'db> {
+ pub pat: InFile<ExprOrPatPtr>,
+ pub found: Type<'db>,
+}
+
+#[derive(Debug)]
pub struct CannotIndexInto<'db> {
pub expr: InFile<ExprOrPatPtr>,
pub found: Type<'db>,
@@ -973,6 +980,10 @@ impl<'db> AnyDiagnostic<'db> {
let expr = expr_syntax(*expr)?;
CannotBeDereferenced { expr, found: new_ty(found.as_ref()) }.into()
}
+ InferenceDiagnostic::CannotImplicitlyDerefTraitObject { pat, found } => {
+ let pat = pat_syntax(*pat)?.map(Into::into);
+ CannotImplicitlyDerefTraitObject { pat, found: new_ty(found.as_ref()) }.into()
+ }
InferenceDiagnostic::CannotIndexInto { expr, found } => {
let expr = expr_syntax(*expr)?;
CannotIndexInto { expr, found: new_ty(found.as_ref()) }.into()