@@ -27,10 +27,8 @@ use rustc_span::symbol::{kw, sym, Ident, Symbol};
2727use rustc_span:: { BytePos , Span , SyntaxContext } ;
2828use thin_vec:: { thin_vec, ThinVec } ;
2929
30- use crate :: errors:: {
31- AddedMacroUse , ChangeImportBinding , ChangeImportBindingSuggestion , ConsiderAddingADerive ,
32- ExplicitUnsafeTraits ,
33- } ;
30+ use crate :: errors:: { AddedMacroUse , ChangeImportBinding , ChangeImportBindingSuggestion } ;
31+ use crate :: errors:: { ConsiderAddingADerive , ExplicitUnsafeTraits , MaybeMissingMacroRulesName } ;
3432use crate :: imports:: { Import , ImportKind } ;
3533use crate :: late:: { PatternSource , Rib } ;
3634use crate :: path_names_to_string;
@@ -1421,14 +1419,21 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
14211419 "" ,
14221420 ) ;
14231421
1422+ if macro_kind == MacroKind :: Bang && ident. name == sym:: macro_rules {
1423+ err. subdiagnostic ( MaybeMissingMacroRulesName { span : ident. span } ) ;
1424+ return ;
1425+ }
1426+
14241427 if macro_kind == MacroKind :: Derive && ( ident. name == sym:: Send || ident. name == sym:: Sync ) {
14251428 err. subdiagnostic ( ExplicitUnsafeTraits { span : ident. span , ident } ) ;
14261429 return ;
14271430 }
1431+
14281432 if self . macro_names . contains ( & ident. normalize_to_macros_2_0 ( ) ) {
14291433 err. subdiagnostic ( AddedMacroUse ) ;
14301434 return ;
14311435 }
1436+
14321437 if ident. name == kw:: Default
14331438 && let ModuleKind :: Def ( DefKind :: Enum , def_id, _) = parent_scope. module . kind
14341439 {
0 commit comments