diff options
Diffstat (limited to 'crates/hir_def/src/diagnostics.rs')
-rw-r--r-- | crates/hir_def/src/diagnostics.rs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/crates/hir_def/src/diagnostics.rs b/crates/hir_def/src/diagnostics.rs index 001b3c5db..c9c08b01f 100644 --- a/crates/hir_def/src/diagnostics.rs +++ b/crates/hir_def/src/diagnostics.rs | |||
@@ -7,6 +7,9 @@ use syntax::{ast, AstPtr, SyntaxNodePtr}; | |||
7 | 7 | ||
8 | use hir_expand::{HirFileId, InFile}; | 8 | use hir_expand::{HirFileId, InFile}; |
9 | 9 | ||
10 | // Diagnostic: unresolved-module | ||
11 | // | ||
12 | // This diagnostic is triggered if rust-analyzer is unable to discover referred module. | ||
10 | #[derive(Debug)] | 13 | #[derive(Debug)] |
11 | pub struct UnresolvedModule { | 14 | pub struct UnresolvedModule { |
12 | pub file: HirFileId, | 15 | pub file: HirFileId, |
@@ -29,6 +32,9 @@ impl Diagnostic for UnresolvedModule { | |||
29 | } | 32 | } |
30 | } | 33 | } |
31 | 34 | ||
35 | // Diagnostic: unresolved-extern-crate | ||
36 | // | ||
37 | // This diagnostic is triggered if rust-analyzer is unable to discover referred extern crate. | ||
32 | #[derive(Debug)] | 38 | #[derive(Debug)] |
33 | pub struct UnresolvedExternCrate { | 39 | pub struct UnresolvedExternCrate { |
34 | pub file: HirFileId, | 40 | pub file: HirFileId, |
@@ -50,6 +56,9 @@ impl Diagnostic for UnresolvedExternCrate { | |||
50 | } | 56 | } |
51 | } | 57 | } |
52 | 58 | ||
59 | // Diagnostic: unresolved-import | ||
60 | // | ||
61 | // This diagnostic is triggered if rust-analyzer is unable to discover imported module. | ||
53 | #[derive(Debug)] | 62 | #[derive(Debug)] |
54 | pub struct UnresolvedImport { | 63 | pub struct UnresolvedImport { |
55 | pub file: HirFileId, | 64 | pub file: HirFileId, |
@@ -77,3 +86,28 @@ impl Diagnostic for UnresolvedImport { | |||
77 | true | 86 | true |
78 | } | 87 | } |
79 | } | 88 | } |
89 | |||
90 | // Diagnostic: unconfigured-code | ||
91 | // | ||
92 | // This diagnostic is shown for code with inactive `#[cfg]` attributes. | ||
93 | #[derive(Debug)] | ||
94 | pub struct InactiveCode { | ||
95 | pub file: HirFileId, | ||
96 | pub node: SyntaxNodePtr, | ||
97 | } | ||
98 | |||
99 | impl Diagnostic for InactiveCode { | ||
100 | fn code(&self) -> DiagnosticCode { | ||
101 | DiagnosticCode("inactive-code") | ||
102 | } | ||
103 | fn message(&self) -> String { | ||
104 | // FIXME: say *why* it is configured out | ||
105 | "code is inactive due to #[cfg] directives".to_string() | ||
106 | } | ||
107 | fn display_source(&self) -> InFile<SyntaxNodePtr> { | ||
108 | InFile::new(self.file, self.node.clone()) | ||
109 | } | ||
110 | fn as_any(&self) -> &(dyn Any + Send + 'static) { | ||
111 | self | ||
112 | } | ||
113 | } | ||