Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir/src/semantics.rs')
| -rw-r--r-- | crates/hir/src/semantics.rs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/crates/hir/src/semantics.rs b/crates/hir/src/semantics.rs index c2b7e9bb52..4afdde6494 100644 --- a/crates/hir/src/semantics.rs +++ b/crates/hir/src/semantics.rs @@ -358,6 +358,10 @@ impl<'db, DB: HirDatabase> Semantics<'db, DB> { self.imp.resolve_macro_call(macro_call) } + pub fn is_unsafe_macro_call(&self, macro_call: &ast::MacroCall) -> bool { + self.imp.is_unsafe_macro_call(macro_call) + } + pub fn resolve_attr_macro_call(&self, item: &ast::Item) -> Option<Macro> { self.imp.resolve_attr_macro_call(item) } @@ -961,6 +965,12 @@ impl<'db> SemanticsImpl<'db> { sa.resolve_macro_call(self.db, macro_call) } + fn is_unsafe_macro_call(&self, macro_call: &ast::MacroCall) -> bool { + let sa = self.analyze(macro_call.syntax()); + let macro_call = self.find_file(macro_call.syntax()).with_value(macro_call); + sa.is_unsafe_macro_call(self.db, macro_call) + } + fn resolve_attr_macro_call(&self, item: &ast::Item) -> Option<Macro> { let item_in_file = self.wrap_node_infile(item.clone()); let id = self.with_ctx(|ctx| { |