@@ -3,7 +3,7 @@ use Namespace::*;
33use rustc_ast:: { self as ast, NodeId } ;
44use rustc_errors:: ErrorGuaranteed ;
55use rustc_hir:: def:: { DefKind , MacroKinds , Namespace , NonMacroAttrKind , PartialRes , PerNS } ;
6- use rustc_middle:: bug;
6+ use rustc_middle:: { bug, span_bug } ;
77use rustc_session:: lint:: builtin:: PROC_MACRO_DERIVE_RESOLUTION_FALLBACK ;
88use rustc_session:: parse:: feature_err;
99use rustc_span:: hygiene:: { ExpnId , ExpnKind , LocalExpnId , MacroKind , SyntaxContext } ;
@@ -677,14 +677,21 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> {
677677 innermost_binding,
678678 binding,
679679 )
680- || flags. contains ( Flags :: MACRO_RULES )
681- && innermost_flags. contains ( Flags :: MODULE )
682- && !this. disambiguate_macro_rules_vs_modularized (
683- binding,
684- innermost_binding,
685- )
686680 {
687681 Some ( AmbiguityKind :: MacroRulesVsModularized )
682+ } else if flags. contains ( Flags :: MACRO_RULES )
683+ && innermost_flags. contains ( Flags :: MODULE )
684+ {
685+ // should be impossible because of visitation order in
686+ // visit_scopes
687+ //
688+ // we visit all macro_rules scopes (e.g. textual scope macros)
689+ // before we visit any modules (e.g. path-based scope macros)
690+ span_bug ! (
691+ orig_ident. span,
692+ "ambiguous scoped macro resolutions with path-based \
693+ scope resolution as first candidate"
694+ )
688695 } else if innermost_binding. is_glob_import ( ) {
689696 Some ( AmbiguityKind :: GlobVsOuter )
690697 } else if innermost_binding
0 commit comments