summaryrefslogtreecommitdiffstats
path: root/src/test/ui/macros/issue-57597.rs
blob: ebeb3fe07adb4401d660066d9e22102e6475a896 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
// Regression test for #57597.
//
// Make sure that nested matchers work correctly rather than causing an infinite loop or crash.

// edition:2018

macro_rules! foo1 {
    ($($($i:ident)?)+) => {};
    //~^ ERROR repetition matches empty token tree
}

macro_rules! foo2 {
    ($($($i:ident)?)*) => {};
    //~^ ERROR repetition matches empty token tree
}

macro_rules! foo3 {
    ($($($i:ident)?)?) => {};
    //~^ ERROR repetition matches empty token tree
}

macro_rules! foo4 {
    ($($($($i:ident)?)?)?) => {};
    //~^ ERROR repetition matches empty token tree
}

macro_rules! foo5 {
    ($($($($i:ident)*)?)?) => {};
    //~^ ERROR repetition matches empty token tree
}

macro_rules! foo6 {
    ($($($($i:ident)?)*)?) => {};
    //~^ ERROR repetition matches empty token tree
}

macro_rules! foo7 {
    ($($($($i:ident)?)?)*) => {};
    //~^ ERROR repetition matches empty token tree
}

macro_rules! foo8 {
    ($($($($i:ident)*)*)?) => {};
    //~^ ERROR repetition matches empty token tree
}

macro_rules! foo9 {
    ($($($($i:ident)?)*)*) => {};
    //~^ ERROR repetition matches empty token tree
}

macro_rules! foo10 {
    ($($($($i:ident)?)*)+) => {};
    //~^ ERROR repetition matches empty token tree
}

macro_rules! foo11 {
    ($($($($i:ident)+)?)*) => {};
    //~^ ERROR repetition matches empty token tree
}

macro_rules! foo12 {
    ($($($($i:ident)+)*)?) => {};
    //~^ ERROR repetition matches empty token tree
}

fn main() {
    foo1!();
    foo2!();
    foo3!();
    foo4!();
    foo5!();
    foo6!();
    foo7!();
    foo8!();
    foo9!();
    foo10!();
    foo11!();
    foo12!();
}