let macro_call = InFile::new(self.current_file_id, ¯o_call);
- if let Some(call_id) = macro_call.as_call_id(db, self.crate_def_map.krate, |path| {
+ let resolver = |path: ModPath| -> Option<MacroDefId> {
if let Some(local_scope) = local_scope {
if let Some(def) = path.as_ident().and_then(|n| local_scope.get_legacy_macro(n)) {
return Some(def);
}
}
self.resolve_path_as_macro(db, &path)
- }) {
+ };
+
+ if let Some(call_id) = macro_call.as_call_id(db, self.crate_def_map.krate, resolver) {
let file_id = call_id.as_file();
if let Some(node) = db.parse_or_expand(file_id) {
if let Some(expr) = T::cast(node) {