aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_expand/src/builtin_macro.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_hir_expand/src/builtin_macro.rs')
-rw-r--r--crates/ra_hir_expand/src/builtin_macro.rs18
1 files changed, 6 insertions, 12 deletions
diff --git a/crates/ra_hir_expand/src/builtin_macro.rs b/crates/ra_hir_expand/src/builtin_macro.rs
index eec5fb8eb..7579546d2 100644
--- a/crates/ra_hir_expand/src/builtin_macro.rs
+++ b/crates/ra_hir_expand/src/builtin_macro.rs
@@ -295,19 +295,13 @@ fn concat_expand(
295 295
296fn relative_file(db: &dyn AstDatabase, call_id: MacroCallId, path: &str) -> Option<FileId> { 296fn relative_file(db: &dyn AstDatabase, call_id: MacroCallId, path: &str) -> Option<FileId> {
297 let call_site = call_id.as_file().original_file(db); 297 let call_site = call_id.as_file().original_file(db);
298 298 let res = db.resolve_path(call_site, path)?;
299 // Handle trivial case 299 // Prevent include itself
300 if let Some(res) = db.resolve_path(call_site, path) { 300 if res == call_site {
301 // Prevent include itself 301 None
302 return if res == call_site { None } else { Some(res) }; 302 } else {
303 Some(res)
303 } 304 }
304
305 // Extern paths ?
306 let krate = *db.relevant_crates(call_site).get(0)?;
307 let (extern_source_id, relative_file) =
308 db.crate_graph()[krate].extern_source.extern_path(path)?;
309
310 db.resolve_extern_path(extern_source_id, &relative_file)
311} 305}
312 306
313fn parse_string(tt: &tt::Subtree) -> Result<String, mbe::ExpandError> { 307fn parse_string(tt: &tt::Subtree) -> Result<String, mbe::ExpandError> {