@@ -35,7 +35,8 @@ use tracing::debug;
35
35
36
36
use crate :: errors:: {
37
37
self , AddedMacroUse , ChangeImportBinding , ChangeImportBindingSuggestion , ConsiderAddingADerive ,
38
- ExplicitUnsafeTraits , MacroDefinedLater , MacroSuggMovePosition , MaybeMissingMacroRulesName ,
38
+ ExplicitUnsafeTraits , MacroDefinedLater , MacroRulesNot , MacroSuggMovePosition ,
39
+ MaybeMissingMacroRulesName ,
39
40
} ;
40
41
use crate :: imports:: { Import , ImportKind } ;
41
42
use crate :: late:: { PatternSource , Rib } ;
@@ -1473,8 +1474,19 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> {
1473
1474
let scope = self . local_macro_def_scopes [ & def_id] ;
1474
1475
let parent_nearest = parent_scope. module . nearest_parent_mod ( ) ;
1475
1476
if Some ( parent_nearest) == scope. opt_def_id ( ) {
1476
- err. subdiagnostic ( MacroDefinedLater { span : unused_ident. span } ) ;
1477
- err. subdiagnostic ( MacroSuggMovePosition { span : ident. span , ident } ) ;
1477
+ match macro_kind {
1478
+ MacroKind :: Bang => {
1479
+ err. subdiagnostic ( MacroDefinedLater { span : unused_ident. span } ) ;
1480
+ err. subdiagnostic ( MacroSuggMovePosition { span : ident. span , ident } ) ;
1481
+ }
1482
+ MacroKind :: Attr => {
1483
+ err. subdiagnostic ( MacroRulesNot :: Attr { span : unused_ident. span , ident } ) ;
1484
+ }
1485
+ MacroKind :: Derive => {
1486
+ err. subdiagnostic ( MacroRulesNot :: Derive { span : unused_ident. span , ident } ) ;
1487
+ }
1488
+ }
1489
+
1478
1490
return ;
1479
1491
}
1480
1492
}
0 commit comments