diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2020-06-16 17:58:41 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2020-06-16 17:58:41 +0100 |
commit | b64d0a36598085315990cb600c2cffd65a6c12be (patch) | |
tree | 18501e20ac9848d31019c572170aee9259f1d0ea /crates/ra_ide/src/diagnostics.rs | |
parent | da34d630b878f14e85be02b8ffdb702edf736539 (diff) | |
parent | 3c72fc05738b8a08dbf90dab18a15b9894d9e2a1 (diff) |
Merge #4909
4909: Anchor file-system operations to the file, and not to the source root. r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <[email protected]>
Diffstat (limited to 'crates/ra_ide/src/diagnostics.rs')
-rw-r--r-- | crates/ra_ide/src/diagnostics.rs | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/crates/ra_ide/src/diagnostics.rs b/crates/ra_ide/src/diagnostics.rs index e1bfd72f9..fd9abb55b 100644 --- a/crates/ra_ide/src/diagnostics.rs +++ b/crates/ra_ide/src/diagnostics.rs | |||
@@ -11,7 +11,7 @@ use hir::{ | |||
11 | Semantics, | 11 | Semantics, |
12 | }; | 12 | }; |
13 | use itertools::Itertools; | 13 | use itertools::Itertools; |
14 | use ra_db::{RelativePath, SourceDatabase, SourceDatabaseExt}; | 14 | use ra_db::SourceDatabase; |
15 | use ra_ide_db::RootDatabase; | 15 | use ra_ide_db::RootDatabase; |
16 | use ra_prof::profile; | 16 | use ra_prof::profile; |
17 | use ra_syntax::{ | 17 | use ra_syntax::{ |
@@ -57,14 +57,10 @@ pub(crate) fn diagnostics(db: &RootDatabase, file_id: FileId) -> Vec<Diagnostic> | |||
57 | }) | 57 | }) |
58 | .on::<hir::diagnostics::UnresolvedModule, _>(|d| { | 58 | .on::<hir::diagnostics::UnresolvedModule, _>(|d| { |
59 | let original_file = d.source().file_id.original_file(db); | 59 | let original_file = d.source().file_id.original_file(db); |
60 | let source_root = db.file_source_root(original_file); | 60 | let fix = Fix::new( |
61 | let path = db | 61 | "Create module", |
62 | .file_relative_path(original_file) | 62 | FileSystemEdit::CreateFile { anchor: original_file, dst: d.candidate.clone() }.into(), |
63 | .parent() | 63 | ); |
64 | .unwrap_or_else(|| RelativePath::new("")) | ||
65 | .join(&d.candidate); | ||
66 | let fix = | ||
67 | Fix::new("Create module", FileSystemEdit::CreateFile { source_root, path }.into()); | ||
68 | res.borrow_mut().push(Diagnostic { | 64 | res.borrow_mut().push(Diagnostic { |
69 | range: sema.diagnostics_range(d).range, | 65 | range: sema.diagnostics_range(d).range, |
70 | message: d.message(), | 66 | message: d.message(), |
@@ -612,10 +608,10 @@ mod tests { | |||
612 | source_file_edits: [], | 608 | source_file_edits: [], |
613 | file_system_edits: [ | 609 | file_system_edits: [ |
614 | CreateFile { | 610 | CreateFile { |
615 | source_root: SourceRootId( | 611 | anchor: FileId( |
616 | 0, | 612 | 1, |
617 | ), | 613 | ), |
618 | path: "foo.rs", | 614 | dst: "foo.rs", |
619 | }, | 615 | }, |
620 | ], | 616 | ], |
621 | is_snippet: false, | 617 | is_snippet: false, |