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.rs | 10 |
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 { |