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.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/crates/hir/src/diagnostics.rs b/crates/hir/src/diagnostics.rs
index b14bf64266..110cc19cf1 100644
--- a/crates/hir/src/diagnostics.rs
+++ b/crates/hir/src/diagnostics.rs
@@ -57,6 +57,7 @@ diagnostics![AnyDiagnostic<'db> ->
BreakOutsideOfLoop,
CastToUnsized<'db>,
ExpectedFunction<'db>,
+ GenericDefaultRefersToSelf,
InactiveCode,
IncoherentImpl,
IncorrectCase,
@@ -465,6 +466,12 @@ pub struct IncorrectGenericsOrder {
pub expected_kind: GenericArgKind,
}
+#[derive(Debug)]
+pub struct GenericDefaultRefersToSelf {
+ /// The `Self` segment.
+ pub segment: InFile<AstPtr<ast::PathSegment>>,
+}
+
impl<'db> AnyDiagnostic<'db> {
pub(crate) fn body_validation_diagnostic(
db: &'db dyn HirDatabase,
@@ -888,6 +895,11 @@ impl<'db> AnyDiagnostic<'db> {
}
.into()
}
+ PathLoweringDiagnostic::GenericDefaultRefersToSelf { segment } => {
+ let segment = hir_segment_to_ast_segment(&path.value, segment)?;
+ let segment = path.with_value(AstPtr::new(&segment));
+ GenericDefaultRefersToSelf { segment }.into()
+ }
})
}