error[E0659]: `m` is ambiguous
  --> $DIR/restricted-shadowing-modern.rs:104:17
   |
LL |                 m!();
   |                 ^ ambiguous name
...
LL | include!();
   | ---------- in this macro invocation
   |
   = note: ambiguous because of a conflict between a macro-expanded name and a less macro-expanded name from outer scope during import or macro resolution
note: `m` could refer to the macro defined here
  --> $DIR/restricted-shadowing-modern.rs:91:9
   |
LL |         macro m() { Right }
   |         ^^^^^^^^^^^^^^^^^^^
...
LL | include!();
   | ---------- in this macro invocation
note: `m` could also refer to the macro defined here
  --> $DIR/restricted-shadowing-modern.rs:99:9
   |
LL |         macro m() {}
   |         ^^^^^^^^^^^^
...
LL | include!();
   | ---------- in this macro invocation
   = note: this error originates in the macro `gen_gen_inner_invoc` which comes from the expansion of the macro `include` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0659]: `m` is ambiguous
  --> $DIR/restricted-shadowing-modern.rs:147:33
   |
LL |             macro gen_invoc() { m!() }
   |                                 ^ ambiguous name
...
LL | include!();
   | ---------- in this macro invocation
   |
   = note: ambiguous because of a conflict between a macro-expanded name and a less macro-expanded name from outer scope during import or macro resolution
note: `m` could refer to the macro defined here
  --> $DIR/restricted-shadowing-modern.rs:91:9
   |
LL |         macro m() { Right }
   |         ^^^^^^^^^^^^^^^^^^^
...
LL | include!();
   | ---------- in this macro invocation
note: `m` could also refer to the macro defined here
  --> $DIR/restricted-shadowing-modern.rs:143:9
   |
LL |         macro m() {}
   |         ^^^^^^^^^^^^
...
LL | include!();
   | ---------- in this macro invocation
   = note: this error originates in the macro `gen_invoc` which comes from the expansion of the macro `include` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0659]: `m` is ambiguous
  --> $DIR/restricted-shadowing-modern.rs:156:13
   |
LL |             m!();
   |             ^ ambiguous name
...
LL | include!();
   | ---------- in this macro invocation
   |
   = note: ambiguous because of a conflict between a macro-expanded name and a less macro-expanded name from outer scope during import or macro resolution
note: `m` could refer to the macro defined here
  --> $DIR/restricted-shadowing-modern.rs:91:9
   |
LL |         macro m() { Right }
   |         ^^^^^^^^^^^^^^^^^^^
...
LL | include!();
   | ---------- in this macro invocation
note: `m` could also refer to the macro defined here
  --> $DIR/restricted-shadowing-modern.rs:153:9
   |
LL |         macro m() {}
   |         ^^^^^^^^^^^^
...
LL | include!();
   | ---------- in this macro invocation
   = note: this error originates in the macro `include` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0659]: `m` is ambiguous
  --> $DIR/restricted-shadowing-modern.rs:172:13
   |
LL |             m!();
   |             ^ ambiguous name
...
LL | include!();
   | ---------- in this macro invocation
   |
   = note: ambiguous because of a conflict between a macro-expanded name and a less macro-expanded name from outer scope during import or macro resolution
note: `m` could refer to the macro defined here
  --> $DIR/restricted-shadowing-modern.rs:91:9
   |
LL |         macro m() { Right }
   |         ^^^^^^^^^^^^^^^^^^^
...
LL | include!();
   | ---------- in this macro invocation
note: `m` could also refer to the macro defined here
  --> $DIR/restricted-shadowing-modern.rs:87:9
   |
LL |         macro m() { Wrong }
   |         ^^^^^^^^^^^^^^^^^^^
...
LL | include!();
   | ---------- in this macro invocation
   = note: this error originates in the macro `include` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0659]: `m` is ambiguous
  --> $DIR/restricted-shadowing-modern.rs:190:17
   |
LL |                 m!();
   |                 ^ ambiguous name
...
LL | include!();
   | ---------- in this macro invocation
   |
   = note: ambiguous because of a conflict between a macro-expanded name and a less macro-expanded name from outer scope during import or macro resolution
note: `m` could refer to the macro defined here
  --> $DIR/restricted-shadowing-modern.rs:91:9
   |
LL |         macro m() { Right }
   |         ^^^^^^^^^^^^^^^^^^^
...
LL | include!();
   | ---------- in this macro invocation
note: `m` could also refer to the macro defined here
  --> $DIR/restricted-shadowing-modern.rs:87:9
   |
LL |         macro m() { Wrong }
   |         ^^^^^^^^^^^^^^^^^^^
...
LL | include!();
   | ---------- in this macro invocation
   = note: this error originates in the macro `gen_gen_inner_invoc` which comes from the expansion of the macro `include` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0659]: `m` is ambiguous
  --> $DIR/restricted-shadowing-modern.rs:233:33
   |
LL |             macro gen_invoc() { m!() }
   |                                 ^ ambiguous name
...
LL | include!();
   | ---------- in this macro invocation
   |
   = note: ambiguous because of a conflict between a macro-expanded name and a less macro-expanded name from outer scope during import or macro resolution
note: `m` could refer to the macro defined here
  --> $DIR/restricted-shadowing-modern.rs:91:9
   |
LL |         macro m() { Right }
   |         ^^^^^^^^^^^^^^^^^^^
...
LL | include!();
   | ---------- in this macro invocation
note: `m` could also refer to the macro defined here
  --> $DIR/restricted-shadowing-modern.rs:87:9
   |
LL |         macro m() { Wrong }
   |         ^^^^^^^^^^^^^^^^^^^
...
LL | include!();
   | ---------- in this macro invocation
   = note: this error originates in the macro `gen_invoc` which comes from the expansion of the macro `include` (in Nightly builds, run with -Z macro-backtrace for more info)

error: aborting due to 6 previous errors

For more information about this error, try `rustc --explain E0659`.
