File: issue-57597.rs

package info (click to toggle)
rustc-web 1.70.0%2Bdfsg1-7~deb11u1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 1,517,036 kB
  • sloc: xml: 147,962; javascript: 10,210; sh: 8,590; python: 8,220; ansic: 5,901; cpp: 4,635; makefile: 4,006; asm: 2,856
file content (80 lines) | stat: -rw-r--r-- 1,608 bytes parent folder | download | duplicates (12)
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!();
}