@@ -1155,18 +1155,22 @@ fn macro_call_as_call_id_(
11551155 let def =
11561156 resolver ( call. path . clone ( ) ) . ok_or_else ( || UnresolvedMacro { path : call. path . clone ( ) } ) ?;
11571157
1158- let res = if let MacroDefKind :: BuiltInEager ( ..) = def. kind {
1159- let macro_call = InFile :: new ( call. ast_id . file_id , call. ast_id . to_node ( db) ) ;
1160- expand_eager_macro_input ( db, krate, macro_call, def, & resolver) ?
1161- } else {
1162- ExpandResult {
1158+ let res = match def. kind {
1159+ MacroDefKind :: BuiltInEager ( ..) => {
1160+ let macro_call = InFile :: new ( call. ast_id . file_id , call. ast_id . to_node ( db) ) ;
1161+ expand_eager_macro_input ( db, krate, macro_call, def, & |path| {
1162+ resolver ( path) . filter ( MacroDefId :: is_fn_like)
1163+ } ) ?
1164+ }
1165+ _ if def. is_fn_like ( ) => ExpandResult {
11631166 value : Some ( def. as_lazy_macro (
11641167 db,
11651168 krate,
11661169 MacroCallKind :: FnLike { ast_id : call. ast_id , expand_to } ,
11671170 ) ) ,
11681171 err : None ,
1169- }
1172+ } ,
1173+ _ => return Err ( UnresolvedMacro { path : call. path . clone ( ) } ) ,
11701174 } ;
11711175 Ok ( res)
11721176}
@@ -1251,6 +1255,7 @@ fn derive_macro_as_call_id(
12511255 resolver : impl Fn ( path:: ModPath ) -> Option < ( MacroId , MacroDefId ) > ,
12521256) -> Result < ( MacroId , MacroDefId , MacroCallId ) , UnresolvedMacro > {
12531257 let ( macro_id, def_id) = resolver ( item_attr. path . clone ( ) )
1258+ . filter ( |( _, def_id) | def_id. is_derive ( ) )
12541259 . ok_or_else ( || UnresolvedMacro { path : item_attr. path . clone ( ) } ) ?;
12551260 let call_id = def_id. as_lazy_macro (
12561261 db. upcast ( ) ,
0 commit comments