aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/diagnostics.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_hir/src/diagnostics.rs')
-rw-r--r--crates/ra_hir/src/diagnostics.rs24
1 files changed, 23 insertions, 1 deletions
diff --git a/crates/ra_hir/src/diagnostics.rs b/crates/ra_hir/src/diagnostics.rs
index d6a51b833..61cd9d6b1 100644
--- a/crates/ra_hir/src/diagnostics.rs
+++ b/crates/ra_hir/src/diagnostics.rs
@@ -3,7 +3,7 @@ use std::{fmt, any::Any};
3use ra_syntax::{SyntaxNodePtr, TreeArc, AstPtr, TextRange, ast, SyntaxNode}; 3use ra_syntax::{SyntaxNodePtr, TreeArc, AstPtr, TextRange, ast, SyntaxNode};
4use relative_path::RelativePathBuf; 4use relative_path::RelativePathBuf;
5 5
6use crate::{HirFileId, HirDatabase}; 6use crate::{HirFileId, HirDatabase, Name};
7 7
8/// Diagnostic defines hir API for errors and warnings. 8/// Diagnostic defines hir API for errors and warnings.
9/// 9///
@@ -113,3 +113,25 @@ impl Diagnostic for UnresolvedModule {
113 self 113 self
114 } 114 }
115} 115}
116
117#[derive(Debug)]
118pub struct MissingFields {
119 pub file: HirFileId,
120 pub field_list: AstPtr<ast::NamedFieldList>,
121 pub missed_fields: Vec<Name>,
122}
123
124impl Diagnostic for MissingFields {
125 fn message(&self) -> String {
126 "fill structure fields".to_string()
127 }
128 fn file(&self) -> HirFileId {
129 self.file
130 }
131 fn syntax_node_ptr(&self) -> SyntaxNodePtr {
132 self.field_list.into()
133 }
134 fn as_any(&self) -> &(dyn Any + Send + 'static) {
135 self
136 }
137}