aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/ids.rs
diff options
context:
space:
mode:
authoruHOOCCOOHu <[email protected]>2019-09-26 18:59:38 +0100
committeruHOOCCOOHu <[email protected]>2019-09-26 19:05:06 +0100
commit2ecb126f5caeb248e333f8559eb1b7dfd34cc744 (patch)
tree02ca4f902520e3d2ec98fe8ce71be8a319bcdc66 /crates/ra_hir/src/ids.rs
parent8cd23a4fb8c6a1012ba3e40dd3329a5abaed06b7 (diff)
Support `$crate` in item and expr place.
Diffstat (limited to 'crates/ra_hir/src/ids.rs')
-rw-r--r--crates/ra_hir/src/ids.rs11
1 files changed, 11 insertions, 0 deletions
diff --git a/crates/ra_hir/src/ids.rs b/crates/ra_hir/src/ids.rs
index 246377100..bcbcd3dd7 100644
--- a/crates/ra_hir/src/ids.rs
+++ b/crates/ra_hir/src/ids.rs
@@ -58,6 +58,17 @@ impl HirFileId {
58 } 58 }
59 } 59 }
60 60
61 /// Get the crate which the macro lives in, if it is a macro file.
62 pub(crate) fn macro_crate(self, db: &impl AstDatabase) -> Option<Crate> {
63 match self.0 {
64 HirFileIdRepr::File(_) => None,
65 HirFileIdRepr::Macro(macro_file) => {
66 let loc = macro_file.macro_call_id.loc(db);
67 Some(loc.def.krate)
68 }
69 }
70 }
71
61 pub(crate) fn parse_or_expand_query( 72 pub(crate) fn parse_or_expand_query(
62 db: &impl AstDatabase, 73 db: &impl AstDatabase,
63 file_id: HirFileId, 74 file_id: HirFileId,