aboutsummaryrefslogtreecommitdiff
path: root/crates/ide/src/diagnostics/fixes/unresolved_module.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ide/src/diagnostics/fixes/unresolved_module.rs')
-rw-r--r--crates/ide/src/diagnostics/fixes/unresolved_module.rs66
1 files changed, 34 insertions, 32 deletions
diff --git a/crates/ide/src/diagnostics/fixes/unresolved_module.rs b/crates/ide/src/diagnostics/fixes/unresolved_module.rs
index 81244b293..b3d0283bb 100644
--- a/crates/ide/src/diagnostics/fixes/unresolved_module.rs
+++ b/crates/ide/src/diagnostics/fixes/unresolved_module.rs
@@ -3,17 +3,17 @@ use ide_assists::{Assist, AssistResolveStrategy};
3use ide_db::{base_db::AnchoredPathBuf, source_change::FileSystemEdit, RootDatabase}; 3use ide_db::{base_db::AnchoredPathBuf, source_change::FileSystemEdit, RootDatabase};
4use syntax::AstNode; 4use syntax::AstNode;
5 5
6use crate::diagnostics::{fix, DiagnosticWithFix}; 6use crate::diagnostics::{fix, DiagnosticWithFixes};
7 7
8impl DiagnosticWithFix for UnresolvedModule { 8impl DiagnosticWithFixes for UnresolvedModule {
9 fn fix( 9 fn fixes(
10 &self, 10 &self,
11 sema: &Semantics<RootDatabase>, 11 sema: &Semantics<RootDatabase>,
12 _resolve: &AssistResolveStrategy, 12 _resolve: &AssistResolveStrategy,
13 ) -> Option<Assist> { 13 ) -> Option<Vec<Assist>> {
14 let root = sema.db.parse_or_expand(self.file)?; 14 let root = sema.db.parse_or_expand(self.file)?;
15 let unresolved_module = self.decl.to_node(&root); 15 let unresolved_module = self.decl.to_node(&root);
16 Some(fix( 16 Some(vec![fix(
17 "create_module", 17 "create_module",
18 "Create module", 18 "Create module",
19 FileSystemEdit::CreateFile { 19 FileSystemEdit::CreateFile {
@@ -25,7 +25,7 @@ impl DiagnosticWithFix for UnresolvedModule {
25 } 25 }
26 .into(), 26 .into(),
27 unresolved_module.syntax().text_range(), 27 unresolved_module.syntax().text_range(),
28 )) 28 )])
29 } 29 }
30} 30}
31 31
@@ -45,33 +45,35 @@ mod tests {
45 message: "unresolved module", 45 message: "unresolved module",
46 range: 0..8, 46 range: 0..8,
47 severity: Error, 47 severity: Error,
48 fix: Some( 48 fixes: Some(
49 Assist { 49 [
50 id: AssistId( 50 Assist {
51 "create_module", 51 id: AssistId(
52 QuickFix, 52 "create_module",
53 ), 53 QuickFix,
54 label: "Create module", 54 ),
55 group: None, 55 label: "Create module",
56 target: 0..8, 56 group: None,
57 source_change: Some( 57 target: 0..8,
58 SourceChange { 58 source_change: Some(
59 source_file_edits: {}, 59 SourceChange {
60 file_system_edits: [ 60 source_file_edits: {},
61 CreateFile { 61 file_system_edits: [
62 dst: AnchoredPathBuf { 62 CreateFile {
63 anchor: FileId( 63 dst: AnchoredPathBuf {
64 0, 64 anchor: FileId(
65 ), 65 0,
66 path: "foo.rs", 66 ),
67 path: "foo.rs",
68 },
69 initial_contents: "",
67 }, 70 },
68 initial_contents: "", 71 ],
69 }, 72 is_snippet: false,
70 ], 73 },
71 is_snippet: false, 74 ),
72 }, 75 },
73 ), 76 ],
74 },
75 ), 77 ),
76 unused: false, 78 unused: false,
77 code: Some( 79 code: Some(