aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2019-10-11 07:01:58 +0100
committerGitHub <[email protected]>2019-10-11 07:01:58 +0100
commitef6ccd75e0961956cb8bd07c59382f85da1dadd3 (patch)
treec51b9acd97d0f3a336a8473b743e468cd570224c
parent3b4c506f338d03a633419459bb32daf331153d5e (diff)
parent0d0a444d4380d9d1eb580d862b2376b9693d77f3 (diff)
Merge #1991
1991: Use `original_file` instead of `as_original_file` r=matklad a=sinkuu I saw ra_lsp_server panics originating from `as_original_file`, though I have not been able to reproduce. Co-authored-by: Shotaro Yamada <[email protected]>
-rw-r--r--crates/ra_hir/src/ids.rs10
-rw-r--r--crates/ra_ide_api/src/display/navigation_target.rs6
-rw-r--r--crates/ra_ide_api/src/references.rs2
3 files changed, 4 insertions, 14 deletions
diff --git a/crates/ra_hir/src/ids.rs b/crates/ra_hir/src/ids.rs
index a3b65cc79..85b022744 100644
--- a/crates/ra_hir/src/ids.rs
+++ b/crates/ra_hir/src/ids.rs
@@ -50,16 +50,6 @@ impl HirFileId {
50 } 50 }
51 } 51 }
52 52
53 /// XXX: this is a temporary function, which should go away when we implement the
54 /// nameresolution+macro expansion combo. Prefer using `original_file` if
55 /// possible.
56 pub fn as_original_file(self) -> FileId {
57 match self.0 {
58 HirFileIdRepr::File(file_id) => file_id,
59 HirFileIdRepr::Macro(_r) => panic!("macro generated file: {:?}", self),
60 }
61 }
62
63 /// Get the crate which the macro lives in, if it is a macro file. 53 /// Get the crate which the macro lives in, if it is a macro file.
64 pub(crate) fn macro_crate(self, db: &impl AstDatabase) -> Option<Crate> { 54 pub(crate) fn macro_crate(self, db: &impl AstDatabase) -> Option<Crate> {
65 match self.0 { 55 match self.0 {
diff --git a/crates/ra_ide_api/src/display/navigation_target.rs b/crates/ra_ide_api/src/display/navigation_target.rs
index d0b1a8a2a..5cb67fb95 100644
--- a/crates/ra_ide_api/src/display/navigation_target.rs
+++ b/crates/ra_ide_api/src/display/navigation_target.rs
@@ -119,7 +119,7 @@ impl NavigationTarget {
119 119
120 pub(crate) fn from_module(db: &RootDatabase, module: hir::Module) -> NavigationTarget { 120 pub(crate) fn from_module(db: &RootDatabase, module: hir::Module) -> NavigationTarget {
121 let src = module.definition_source(db); 121 let src = module.definition_source(db);
122 let file_id = src.file_id.as_original_file(); 122 let file_id = src.file_id.original_file(db);
123 let name = module.name(db).map(|it| it.to_string().into()).unwrap_or_default(); 123 let name = module.name(db).map(|it| it.to_string().into()).unwrap_or_default();
124 match src.ast { 124 match src.ast {
125 ModuleSource::SourceFile(node) => { 125 ModuleSource::SourceFile(node) => {
@@ -139,7 +139,7 @@ impl NavigationTarget {
139 pub(crate) fn from_module_to_decl(db: &RootDatabase, module: hir::Module) -> NavigationTarget { 139 pub(crate) fn from_module_to_decl(db: &RootDatabase, module: hir::Module) -> NavigationTarget {
140 let name = module.name(db).map(|it| it.to_string().into()).unwrap_or_default(); 140 let name = module.name(db).map(|it| it.to_string().into()).unwrap_or_default();
141 if let Some(src) = module.declaration_source(db) { 141 if let Some(src) = module.declaration_source(db) {
142 let file_id = src.file_id.as_original_file(); 142 let file_id = src.file_id.original_file(db);
143 return NavigationTarget::from_syntax( 143 return NavigationTarget::from_syntax(
144 file_id, 144 file_id,
145 name, 145 name,
@@ -213,7 +213,7 @@ impl NavigationTarget {
213 ) -> NavigationTarget { 213 ) -> NavigationTarget {
214 let src = impl_block.source(db); 214 let src = impl_block.source(db);
215 NavigationTarget::from_syntax( 215 NavigationTarget::from_syntax(
216 src.file_id.as_original_file(), 216 src.file_id.original_file(db),
217 "impl".into(), 217 "impl".into(),
218 None, 218 None,
219 src.ast.syntax(), 219 src.ast.syntax(),
diff --git a/crates/ra_ide_api/src/references.rs b/crates/ra_ide_api/src/references.rs
index 84c2eb793..c95c47bf1 100644
--- a/crates/ra_ide_api/src/references.rs
+++ b/crates/ra_ide_api/src/references.rs
@@ -140,7 +140,7 @@ fn rename_mod(
140 let module_src = hir::Source { file_id: position.file_id.into(), ast: ast_module.clone() }; 140 let module_src = hir::Source { file_id: position.file_id.into(), ast: ast_module.clone() };
141 if let Some(module) = hir::Module::from_declaration(db, module_src) { 141 if let Some(module) = hir::Module::from_declaration(db, module_src) {
142 let src = module.definition_source(db); 142 let src = module.definition_source(db);
143 let file_id = src.file_id.as_original_file(); 143 let file_id = src.file_id.original_file(db);
144 match src.ast { 144 match src.ast {
145 ModuleSource::SourceFile(..) => { 145 ModuleSource::SourceFile(..) => {
146 let mod_path: RelativePathBuf = db.file_relative_path(file_id); 146 let mod_path: RelativePathBuf = db.file_relative_path(file_id);