diff options
author | Aleksey Kladov <[email protected]> | 2019-07-19 10:56:47 +0100 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2019-07-19 11:16:25 +0100 |
commit | f1abc7bdc63fedd5a699b4c495bb23f1b6d254f9 (patch) | |
tree | 9518c43f5ddeaa38426efddc17be19af5381f003 /crates/ra_ide_api/src/diagnostics.rs | |
parent | 0343c4a815a0e82d5e55e76a01d21b0f7a00ff5b (diff) |
migrate ra_ide_api to the new rowan
Diffstat (limited to 'crates/ra_ide_api/src/diagnostics.rs')
-rw-r--r-- | crates/ra_ide_api/src/diagnostics.rs | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/crates/ra_ide_api/src/diagnostics.rs b/crates/ra_ide_api/src/diagnostics.rs index 3f5b9e0a0..affbad6cd 100644 --- a/crates/ra_ide_api/src/diagnostics.rs +++ b/crates/ra_ide_api/src/diagnostics.rs | |||
@@ -35,8 +35,8 @@ pub(crate) fn diagnostics(db: &RootDatabase, file_id: FileId) -> Vec<Diagnostic> | |||
35 | })); | 35 | })); |
36 | 36 | ||
37 | for node in parse.tree().syntax().descendants() { | 37 | for node in parse.tree().syntax().descendants() { |
38 | check_unnecessary_braces_in_use_statement(&mut res, file_id, node); | 38 | check_unnecessary_braces_in_use_statement(&mut res, file_id, &node); |
39 | check_struct_shorthand_initialization(&mut res, file_id, node); | 39 | check_struct_shorthand_initialization(&mut res, file_id, &node); |
40 | } | 40 | } |
41 | let res = RefCell::new(res); | 41 | let res = RefCell::new(res); |
42 | let mut sink = DiagnosticSink::new(|d| { | 42 | let mut sink = DiagnosticSink::new(|d| { |
@@ -60,7 +60,7 @@ pub(crate) fn diagnostics(db: &RootDatabase, file_id: FileId) -> Vec<Diagnostic> | |||
60 | }) | 60 | }) |
61 | .on::<hir::diagnostics::MissingFields, _>(|d| { | 61 | .on::<hir::diagnostics::MissingFields, _>(|d| { |
62 | let node = d.ast(db); | 62 | let node = d.ast(db); |
63 | let mut ast_editor = AstEditor::new(&*node); | 63 | let mut ast_editor = AstEditor::new(node); |
64 | for f in d.missed_fields.iter() { | 64 | for f in d.missed_fields.iter() { |
65 | ast_editor.append_field(&AstBuilder::<NamedField>::from_name(f)); | 65 | ast_editor.append_field(&AstBuilder::<NamedField>::from_name(f)); |
66 | } | 66 | } |
@@ -94,11 +94,11 @@ fn check_unnecessary_braces_in_use_statement( | |||
94 | file_id: FileId, | 94 | file_id: FileId, |
95 | node: &SyntaxNode, | 95 | node: &SyntaxNode, |
96 | ) -> Option<()> { | 96 | ) -> Option<()> { |
97 | let use_tree_list = ast::UseTreeList::cast(node)?; | 97 | let use_tree_list = ast::UseTreeList::cast(node.clone())?; |
98 | if let Some((single_use_tree,)) = use_tree_list.use_trees().collect_tuple() { | 98 | if let Some((single_use_tree,)) = use_tree_list.use_trees().collect_tuple() { |
99 | let range = use_tree_list.syntax().range(); | 99 | let range = use_tree_list.syntax().range(); |
100 | let edit = | 100 | let edit = |
101 | text_edit_for_remove_unnecessary_braces_with_self_in_use_statement(single_use_tree) | 101 | text_edit_for_remove_unnecessary_braces_with_self_in_use_statement(&single_use_tree) |
102 | .unwrap_or_else(|| { | 102 | .unwrap_or_else(|| { |
103 | let to_replace = single_use_tree.syntax().text().to_string(); | 103 | let to_replace = single_use_tree.syntax().text().to_string(); |
104 | let mut edit_builder = TextEditBuilder::default(); | 104 | let mut edit_builder = TextEditBuilder::default(); |
@@ -141,7 +141,7 @@ fn check_struct_shorthand_initialization( | |||
141 | file_id: FileId, | 141 | file_id: FileId, |
142 | node: &SyntaxNode, | 142 | node: &SyntaxNode, |
143 | ) -> Option<()> { | 143 | ) -> Option<()> { |
144 | let struct_lit = ast::StructLit::cast(node)?; | 144 | let struct_lit = ast::StructLit::cast(node.clone())?; |
145 | let named_field_list = struct_lit.named_field_list()?; | 145 | let named_field_list = struct_lit.named_field_list()?; |
146 | for named_field in named_field_list.fields() { | 146 | for named_field in named_field_list.fields() { |
147 | if let (Some(name_ref), Some(expr)) = (named_field.name_ref(), named_field.expr()) { | 147 | if let (Some(name_ref), Some(expr)) = (named_field.name_ref(), named_field.expr()) { |
@@ -184,7 +184,7 @@ mod tests { | |||
184 | let parse = SourceFile::parse(code); | 184 | let parse = SourceFile::parse(code); |
185 | let mut diagnostics = Vec::new(); | 185 | let mut diagnostics = Vec::new(); |
186 | for node in parse.tree().syntax().descendants() { | 186 | for node in parse.tree().syntax().descendants() { |
187 | func(&mut diagnostics, FileId(0), node); | 187 | func(&mut diagnostics, FileId(0), &node); |
188 | } | 188 | } |
189 | assert!(diagnostics.is_empty()); | 189 | assert!(diagnostics.is_empty()); |
190 | } | 190 | } |
@@ -193,7 +193,7 @@ mod tests { | |||
193 | let parse = SourceFile::parse(before); | 193 | let parse = SourceFile::parse(before); |
194 | let mut diagnostics = Vec::new(); | 194 | let mut diagnostics = Vec::new(); |
195 | for node in parse.tree().syntax().descendants() { | 195 | for node in parse.tree().syntax().descendants() { |
196 | func(&mut diagnostics, FileId(0), node); | 196 | func(&mut diagnostics, FileId(0), &node); |
197 | } | 197 | } |
198 | let diagnostic = | 198 | let diagnostic = |
199 | diagnostics.pop().unwrap_or_else(|| panic!("no diagnostics for:\n{}\n", before)); | 199 | diagnostics.pop().unwrap_or_else(|| panic!("no diagnostics for:\n{}\n", before)); |