diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:19:13 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:19:13 +0000 |
commit | 218caa410aa38c29984be31a5229b9fa717560ee (patch) | |
tree | c54bd55eeb6e4c508940a30e94c0032fbd45d677 /src/test/ui/macros/restricted-shadowing-legacy.rs | |
parent | Releasing progress-linux version 1.67.1+dfsg1-1~progress7.99u1. (diff) | |
download | rustc-218caa410aa38c29984be31a5229b9fa717560ee.tar.xz rustc-218caa410aa38c29984be31a5229b9fa717560ee.zip |
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/test/ui/macros/restricted-shadowing-legacy.rs')
-rw-r--r-- | src/test/ui/macros/restricted-shadowing-legacy.rs | 289 |
1 files changed, 0 insertions, 289 deletions
diff --git a/src/test/ui/macros/restricted-shadowing-legacy.rs b/src/test/ui/macros/restricted-shadowing-legacy.rs deleted file mode 100644 index f5cac2dfb..000000000 --- a/src/test/ui/macros/restricted-shadowing-legacy.rs +++ /dev/null @@ -1,289 +0,0 @@ -// Legend: -// `N` - number of combination, from 0 to 4*4*4=64 -// `Outer < Invoc` means that expansion that produced macro definition `Outer` -// is a strict ancestor of expansion that produced macro definition `Inner`. -// `>`, `=` and `Unordered` mean "strict descendant", "same" and -// "not in ordering relation" for parent expansions. -// `+` - possible configuration -// `-` - configuration impossible due to properties of partial ordering -// `-?` - configuration impossible due to block/scope syntax -// `+?` - configuration possible only with legacy scoping - -// N | Outer ~ Invoc | Invoc ~ Inner | Outer ~ Inner | Possible | -// 1 | < | < | < | + | -// 2 | < | < | = | - | -// 3 | < | < | > | - | -// 4 | < | < | Unordered | - | -// 5 | < | = | < | + | -// 6 | < | = | = | - | -// 7 | < | = | > | - | -// 8 | < | = | Unordered | - | -// 9 | < | > | < | + | -// 10 | < | > | = | + | -// 11 | < | > | > | -? | -// 12 | < | > | Unordered | -? | -// 13 | < | Unordered | < | + | -// 14 | < | Unordered | = | - | -// 15 | < | Unordered | > | - | -// 16 | < | Unordered | Unordered | -? | -// 17 | = | < | < | + | -// 18 | = | < | = | - | -// 19 | = | < | > | - | -// 20 | = | < | Unordered | - | -// 21 | = | = | < | - | -// 22 | = | = | = | + | -// 23 | = | = | > | - | -// 24 | = | = | Unordered | - | -// 25 | = | > | < | - | -// 26 | = | > | = | - | -// 27 | = | > | > | -? | -// 28 | = | > | Unordered | - | -// 29 | = | Unordered | < | - | -// 30 | = | Unordered | = | - | -// 31 | = | Unordered | > | - | -// 32 | = | Unordered | Unordered | -? | -// 33 | > | < | < | +? | -// 34 | > | < | = | +? | -// 35 | > | < | > | +? | -// 36 | > | < | Unordered | + | -// 37 | > | = | < | - | -// 38 | > | = | = | - | -// 39 | > | = | > | + | -// 40 | > | = | Unordered | - | -// 41 | > | > | < | - | -// 42 | > | > | = | - | -// 43 | > | > | > | -? | -// 44 | > | > | Unordered | - | -// 45 | > | Unordered | < | - | -// 46 | > | Unordered | = | - | -// 47 | > | Unordered | > | -? | -// 48 | > | Unordered | Unordered | -? | -// 49 | Unordered | < | < | -? | -// 50 | Unordered | < | = | - | -// 51 | Unordered | < | > | - | -// 52 | Unordered | < | Unordered | + | -// 53 | Unordered | = | < | - | -// 54 | Unordered | = | = | - | -// 55 | Unordered | = | > | - | -// 56 | Unordered | = | Unordered | + | -// 57 | Unordered | > | < | - | -// 58 | Unordered | > | = | - | -// 59 | Unordered | > | > | + | -// 60 | Unordered | > | Unordered | + | -// 61 | Unordered | Unordered | < | +? | -// 62 | Unordered | Unordered | = | +? | -// 63 | Unordered | Unordered | > | +? | -// 64 | Unordered | Unordered | Unordered | + | - -#![feature(decl_macro, rustc_attrs)] - -struct Right; -// struct Wrong; // not defined - -macro_rules! include { () => { - macro_rules! gen_outer { () => { - macro_rules! m { () => { Wrong } } - }} - macro_rules! gen_inner { () => { - macro_rules! m { () => { Right } } - }} - macro_rules! gen_invoc { () => { - m!() - }} - - // ----------------------------------------------------------- - - fn check1() { - macro_rules! m { () => {} } - - macro_rules! gen_gen_inner_invoc { () => { - gen_inner!(); - m!(); //~ ERROR `m` is ambiguous - }} - gen_gen_inner_invoc!(); - } - - fn check5() { - macro_rules! m { () => { Wrong } } - - macro_rules! gen_inner_invoc { () => { - macro_rules! m { () => { Right } } - m!(); // OK - }} - gen_inner_invoc!(); - } - - fn check9() { - macro_rules! m { () => { Wrong } } - - macro_rules! gen_inner_gen_invoc { () => { - macro_rules! m { () => { Right } } - gen_invoc!(); // OK - }} - gen_inner_gen_invoc!(); - } - - fn check10() { - macro_rules! m { () => { Wrong } } - - macro_rules! m { () => { Right } } - - gen_invoc!(); // OK - } - - fn check13() { - macro_rules! m { () => {} } - - gen_inner!(); - - macro_rules! gen_invoc { () => { m!() } } //~ ERROR `m` is ambiguous - gen_invoc!(); - } - - fn check17() { - macro_rules! m { () => {} } - - gen_inner!(); - - m!(); //~ ERROR `m` is ambiguous - } - - fn check22() { - macro_rules! m { () => { Wrong } } - - macro_rules! m { () => { Right } } - - m!(); // OK - } - - fn check36() { - gen_outer!(); - - gen_inner!(); - - m!(); //~ ERROR `m` is ambiguous - } - - fn check39() { - gen_outer!(); - - macro_rules! m { () => { Right } } - - m!(); // OK - } - - fn check52() { - gen_outer!(); - - macro_rules! gen_gen_inner_invoc { () => { - gen_inner!(); - m!(); //~ ERROR `m` is ambiguous - }} - gen_gen_inner_invoc!(); - } - - fn check56() { - gen_outer!(); - - macro_rules! gen_inner_invoc { () => { - macro_rules! m { () => { Right } } - m!(); // OK - }} - gen_inner_invoc!(); - } - - fn check59() { - gen_outer!(); - - macro_rules! m { () => { Right } } - - gen_invoc!(); // OK - } - - fn check60() { - gen_outer!(); - - macro_rules! gen_inner_gen_invoc { () => { - macro_rules! m { () => { Right } } - gen_invoc!(); // OK - }} - gen_inner_gen_invoc!(); - } - - fn check64() { - gen_outer!(); - - gen_inner!(); - - macro_rules! gen_invoc { () => { m!() } } //~ ERROR `m` is ambiguous - gen_invoc!(); - } - - // ----------------------------------------------------------- - // These configurations are only possible with legacy macro scoping - - fn check33() { - macro_rules! gen_outer_gen_inner { () => { - macro_rules! m { () => {} } - gen_inner!(); - }} - gen_outer_gen_inner!(); - - m!(); //~ ERROR `m` is ambiguous - } - - fn check34() { - macro_rules! gen_outer_inner { () => { - macro_rules! m { () => { Wrong } } - macro_rules! m { () => { Right } } - }} - gen_outer_inner!(); - - m!(); // OK - } - - fn check35() { - macro_rules! gen_gen_outer_inner { () => { - gen_outer!(); - macro_rules! m { () => { Right } } - }} - gen_gen_outer_inner!(); - - m!(); // OK - } - - fn check61() { - macro_rules! gen_outer_gen_inner { () => { - macro_rules! m { () => {} } - gen_inner!(); - }} - gen_outer_gen_inner!(); - - macro_rules! gen_invoc { () => { m!() } } //~ ERROR `m` is ambiguous - gen_invoc!(); - } - - fn check62() { - macro_rules! gen_outer_inner { () => { - macro_rules! m { () => { Wrong } } - macro_rules! m { () => { Right } } - }} - gen_outer_inner!(); - - gen_invoc!(); // OK - } - - fn check63() { - macro_rules! gen_gen_outer_inner { () => { - gen_outer!(); - macro_rules! m { () => { Right } } - }} - gen_gen_outer_inner!(); - - gen_invoc!(); // OK - } -}} - -include!(); - -fn main() {} |