Skip to content

Commit 6a73199

Browse files
committed
or_patterns: add run-rustfix tests.
1 parent 1caaa40 commit 6a73199

6 files changed

+150
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
// Test the suggestion to wrap an or-pattern as a function parameter in parens.
2+
3+
// run-rustfix
4+
5+
#![feature(or_patterns)]
6+
#![allow(warnings)]
7+
8+
fn main() {}
9+
10+
enum E { A, B }
11+
use E::*;
12+
13+
#[cfg(FALSE)]
14+
fn fun1((A | B): E) {} //~ ERROR an or-pattern parameter must be wrapped in parenthesis
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
// Test the suggestion to wrap an or-pattern as a function parameter in parens.
2+
3+
// run-rustfix
4+
5+
#![feature(or_patterns)]
6+
#![allow(warnings)]
7+
8+
fn main() {}
9+
10+
enum E { A, B }
11+
use E::*;
12+
13+
#[cfg(FALSE)]
14+
fn fun1(A | B: E) {} //~ ERROR an or-pattern parameter must be wrapped in parenthesis
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
error: an or-pattern parameter must be wrapped in parenthesis
2+
--> $DIR/fn-param-wrap-parens.rs:14:9
3+
|
4+
LL | fn fun1(A | B: E) {}
5+
| ^^^^^ help: wrap the pattern in parenthesis: `(A | B)`
6+
7+
error: aborting due to previous error
8+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
// Test the suggestion to remove a leading `|`.
2+
3+
// run-rustfix
4+
5+
#![feature(or_patterns)]
6+
#![allow(warnings)]
7+
8+
fn main() {}
9+
10+
#[cfg(FALSE)]
11+
fn leading_vert() {
12+
fn fun1( A: E) {} //~ ERROR a leading `|` is not allowed in a parameter pattern
13+
fn fun2( A: E) {} //~ ERROR a leading `|` is not allowed in a parameter pattern
14+
let ( A): E; //~ ERROR a leading `|` is only allowed in a top-level pattern
15+
let ( A): (E); //~ ERROR a leading `|` is only allowed in a top-level pattern
16+
let ( A,): (E,); //~ ERROR a leading `|` is only allowed in a top-level pattern
17+
let [ A ]: [E; 1]; //~ ERROR a leading `|` is only allowed in a top-level pattern
18+
let [ A ]: [E; 1]; //~ ERROR a leading `|` is only allowed in a top-level pattern
19+
let TS( A ): TS; //~ ERROR a leading `|` is only allowed in a top-level pattern
20+
let TS( A ): TS; //~ ERROR a leading `|` is only allowed in a top-level pattern
21+
let NS { f: A }: NS; //~ ERROR a leading `|` is only allowed in a top-level pattern
22+
let NS { f: A }: NS; //~ ERROR a leading `|` is only allowed in a top-level pattern
23+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
// Test the suggestion to remove a leading `|`.
2+
3+
// run-rustfix
4+
5+
#![feature(or_patterns)]
6+
#![allow(warnings)]
7+
8+
fn main() {}
9+
10+
#[cfg(FALSE)]
11+
fn leading_vert() {
12+
fn fun1( | A: E) {} //~ ERROR a leading `|` is not allowed in a parameter pattern
13+
fn fun2( || A: E) {} //~ ERROR a leading `|` is not allowed in a parameter pattern
14+
let ( | A): E; //~ ERROR a leading `|` is only allowed in a top-level pattern
15+
let ( || A): (E); //~ ERROR a leading `|` is only allowed in a top-level pattern
16+
let ( | A,): (E,); //~ ERROR a leading `|` is only allowed in a top-level pattern
17+
let [ | A ]: [E; 1]; //~ ERROR a leading `|` is only allowed in a top-level pattern
18+
let [ || A ]: [E; 1]; //~ ERROR a leading `|` is only allowed in a top-level pattern
19+
let TS( | A ): TS; //~ ERROR a leading `|` is only allowed in a top-level pattern
20+
let TS( || A ): TS; //~ ERROR a leading `|` is only allowed in a top-level pattern
21+
let NS { f: | A }: NS; //~ ERROR a leading `|` is only allowed in a top-level pattern
22+
let NS { f: || A }: NS; //~ ERROR a leading `|` is only allowed in a top-level pattern
23+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
error: a leading `|` is not allowed in a parameter pattern
2+
--> $DIR/remove-leading-vert.rs:12:14
3+
|
4+
LL | fn fun1( | A: E) {}
5+
| ^ help: remove the `|`
6+
7+
error: a leading `|` is not allowed in a parameter pattern
8+
--> $DIR/remove-leading-vert.rs:13:14
9+
|
10+
LL | fn fun2( || A: E) {}
11+
| ^^ help: remove the `||`
12+
13+
error: a leading `|` is only allowed in a top-level pattern
14+
--> $DIR/remove-leading-vert.rs:14:11
15+
|
16+
LL | let ( | A): E;
17+
| ^ help: remove the `|`
18+
19+
error: a leading `|` is only allowed in a top-level pattern
20+
--> $DIR/remove-leading-vert.rs:15:11
21+
|
22+
LL | let ( || A): (E);
23+
| ^^ help: remove the `||`
24+
25+
error: a leading `|` is only allowed in a top-level pattern
26+
--> $DIR/remove-leading-vert.rs:16:11
27+
|
28+
LL | let ( | A,): (E,);
29+
| ^ help: remove the `|`
30+
31+
error: a leading `|` is only allowed in a top-level pattern
32+
--> $DIR/remove-leading-vert.rs:17:11
33+
|
34+
LL | let [ | A ]: [E; 1];
35+
| ^ help: remove the `|`
36+
37+
error: a leading `|` is only allowed in a top-level pattern
38+
--> $DIR/remove-leading-vert.rs:18:11
39+
|
40+
LL | let [ || A ]: [E; 1];
41+
| ^^ help: remove the `||`
42+
43+
error: a leading `|` is only allowed in a top-level pattern
44+
--> $DIR/remove-leading-vert.rs:19:13
45+
|
46+
LL | let TS( | A ): TS;
47+
| ^ help: remove the `|`
48+
49+
error: a leading `|` is only allowed in a top-level pattern
50+
--> $DIR/remove-leading-vert.rs:20:13
51+
|
52+
LL | let TS( || A ): TS;
53+
| ^^ help: remove the `||`
54+
55+
error: a leading `|` is only allowed in a top-level pattern
56+
--> $DIR/remove-leading-vert.rs:21:17
57+
|
58+
LL | let NS { f: | A }: NS;
59+
| ^ help: remove the `|`
60+
61+
error: a leading `|` is only allowed in a top-level pattern
62+
--> $DIR/remove-leading-vert.rs:22:17
63+
|
64+
LL | let NS { f: || A }: NS;
65+
| ^^ help: remove the `||`
66+
67+
error: aborting due to 11 previous errors
68+

0 commit comments

Comments
 (0)