1 // Some non-controversial subset of ambiguities "modern macro name" vs "macro_rules"
2 // is disambiguated to mitigate regressions from macro modularization.
3 // Scoping for `macro_rules` behaves like scoping for `let` at module level, in general.
5 #![feature(decl_macro)]
7 fn same_unnamed_mod() {
10 macro_rules! m { () => (()) }
15 fn nested_unnamed_mod() {
19 macro_rules! m { () => (()) }
25 fn nested_unnamed_mod_fail() {
26 macro_rules! m { () => (()) }
31 m!() //~ ERROR `m` is ambiguous
35 fn nexted_named_mod_fail() {
40 macro_rules! m { () => (()) }
43 m!() //~ ERROR `m` is ambiguous