diff options
Diffstat (limited to 'crates/ra_hir/src/semantics.rs')
-rw-r--r-- | crates/ra_hir/src/semantics.rs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/crates/ra_hir/src/semantics.rs b/crates/ra_hir/src/semantics.rs index b4420d378..c5bc2baff 100644 --- a/crates/ra_hir/src/semantics.rs +++ b/crates/ra_hir/src/semantics.rs | |||
@@ -8,7 +8,7 @@ use hir_def::{ | |||
8 | resolver::{self, HasResolver, Resolver}, | 8 | resolver::{self, HasResolver, Resolver}, |
9 | AsMacroCall, FunctionId, TraitId, VariantId, | 9 | AsMacroCall, FunctionId, TraitId, VariantId, |
10 | }; | 10 | }; |
11 | use hir_expand::{diagnostics::AstDiagnostic, hygiene::Hygiene, name::AsName, ExpansionInfo}; | 11 | use hir_expand::{diagnostics::DiagnosticWithFix, hygiene::Hygiene, name::AsName, ExpansionInfo}; |
12 | use hir_ty::associated_type_shorthand_candidates; | 12 | use hir_ty::associated_type_shorthand_candidates; |
13 | use itertools::Itertools; | 13 | use itertools::Itertools; |
14 | use ra_db::{FileId, FileRange}; | 14 | use ra_db::{FileId, FileRange}; |
@@ -109,12 +109,12 @@ impl<'db, DB: HirDatabase> Semantics<'db, DB> { | |||
109 | self.imp.parse(file_id) | 109 | self.imp.parse(file_id) |
110 | } | 110 | } |
111 | 111 | ||
112 | pub fn diagnostic_fix_source<T: AstDiagnostic + Diagnostic>( | 112 | pub fn diagnostic_fix_source<T: DiagnosticWithFix + Diagnostic>( |
113 | &self, | 113 | &self, |
114 | d: &T, | 114 | d: &T, |
115 | ) -> <T as AstDiagnostic>::AST { | 115 | ) -> Option<<T as DiagnosticWithFix>::AST> { |
116 | let file_id = d.presentation().file_id; | 116 | let file_id = d.presentation().file_id; |
117 | let root = self.db.parse_or_expand(file_id).unwrap(); | 117 | let root = self.db.parse_or_expand(file_id)?; |
118 | self.imp.cache(root, file_id); | 118 | self.imp.cache(root, file_id); |
119 | d.fix_source(self.db.upcast()) | 119 | d.fix_source(self.db.upcast()) |
120 | } | 120 | } |