Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-expand/src/lib.rs')
-rw-r--r--crates/hir-expand/src/lib.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/crates/hir-expand/src/lib.rs b/crates/hir-expand/src/lib.rs
index 9c5714be2d..3386e2257a 100644
--- a/crates/hir-expand/src/lib.rs
+++ b/crates/hir-expand/src/lib.rs
@@ -1128,6 +1128,16 @@ impl HirFileId {
HirFileId::MacroFile(_) => None,
}
}
+
+ pub fn syntax_context(self, db: &dyn ExpandDatabase, edition: Edition) -> SyntaxContext {
+ match self {
+ HirFileId::FileId(_) => SyntaxContext::root(edition),
+ HirFileId::MacroFile(m) => {
+ let kind = &m.loc(db).kind;
+ db.macro_arg_considering_derives(m, kind).2.ctx
+ }
+ }
+ }
}
impl PartialEq<EditionedFileId> for HirFileId {