diff options
author | Aleksey Kladov <[email protected]> | 2020-06-05 15:45:20 +0100 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2020-06-05 16:22:56 +0100 |
commit | bbb40d746368eb6a38498649a723c7ead0ef8136 (patch) | |
tree | 6496e07d1558ef7b1f8c0cb51648fd44755c8f8e /crates/ra_hir_expand/src/builtin_macro.rs | |
parent | 9c52f527a1cef7d39c2b1c55b49dc5459d392a4d (diff) |
Minimize FileLoader interface
Diffstat (limited to 'crates/ra_hir_expand/src/builtin_macro.rs')
-rw-r--r-- | crates/ra_hir_expand/src/builtin_macro.rs | 18 |
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 | ||
296 | fn relative_file(db: &dyn AstDatabase, call_id: MacroCallId, path: &str) -> Option<FileId> { | 296 | fn 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 | ||
313 | fn parse_string(tt: &tt::Subtree) -> Result<String, mbe::ExpandError> { | 307 | fn parse_string(tt: &tt::Subtree) -> Result<String, mbe::ExpandError> { |