Skip to content

Commit

Permalink
or_patterns: add run-rustfix tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
Centril committed Aug 25, 2019
1 parent 1caaa40 commit 6a73199
Show file tree
Hide file tree
Showing 6 changed files with 150 additions and 0 deletions.
14 changes: 14 additions & 0 deletions src/test/ui/or-patterns/fn-param-wrap-parens.fixed
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// Test the suggestion to wrap an or-pattern as a function parameter in parens.

// run-rustfix

#![feature(or_patterns)]
#![allow(warnings)]

fn main() {}

enum E { A, B }
use E::*;

#[cfg(FALSE)]
fn fun1((A | B): E) {} //~ ERROR an or-pattern parameter must be wrapped in parenthesis
14 changes: 14 additions & 0 deletions src/test/ui/or-patterns/fn-param-wrap-parens.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// Test the suggestion to wrap an or-pattern as a function parameter in parens.

// run-rustfix

#![feature(or_patterns)]
#![allow(warnings)]

fn main() {}

enum E { A, B }
use E::*;

#[cfg(FALSE)]
fn fun1(A | B: E) {} //~ ERROR an or-pattern parameter must be wrapped in parenthesis
8 changes: 8 additions & 0 deletions src/test/ui/or-patterns/fn-param-wrap-parens.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
error: an or-pattern parameter must be wrapped in parenthesis
--> $DIR/fn-param-wrap-parens.rs:14:9
|
LL | fn fun1(A | B: E) {}
| ^^^^^ help: wrap the pattern in parenthesis: `(A | B)`

error: aborting due to previous error

23 changes: 23 additions & 0 deletions src/test/ui/or-patterns/remove-leading-vert.fixed
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
// Test the suggestion to remove a leading `|`.

// run-rustfix

#![feature(or_patterns)]
#![allow(warnings)]

fn main() {}

#[cfg(FALSE)]
fn leading_vert() {
fn fun1( A: E) {} //~ ERROR a leading `|` is not allowed in a parameter pattern
fn fun2( A: E) {} //~ ERROR a leading `|` is not allowed in a parameter pattern
let ( A): E; //~ ERROR a leading `|` is only allowed in a top-level pattern
let ( A): (E); //~ ERROR a leading `|` is only allowed in a top-level pattern
let ( A,): (E,); //~ ERROR a leading `|` is only allowed in a top-level pattern
let [ A ]: [E; 1]; //~ ERROR a leading `|` is only allowed in a top-level pattern
let [ A ]: [E; 1]; //~ ERROR a leading `|` is only allowed in a top-level pattern
let TS( A ): TS; //~ ERROR a leading `|` is only allowed in a top-level pattern
let TS( A ): TS; //~ ERROR a leading `|` is only allowed in a top-level pattern
let NS { f: A }: NS; //~ ERROR a leading `|` is only allowed in a top-level pattern
let NS { f: A }: NS; //~ ERROR a leading `|` is only allowed in a top-level pattern
}
23 changes: 23 additions & 0 deletions src/test/ui/or-patterns/remove-leading-vert.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
// Test the suggestion to remove a leading `|`.

// run-rustfix

#![feature(or_patterns)]
#![allow(warnings)]

fn main() {}

#[cfg(FALSE)]
fn leading_vert() {
fn fun1( | A: E) {} //~ ERROR a leading `|` is not allowed in a parameter pattern
fn fun2( || A: E) {} //~ ERROR a leading `|` is not allowed in a parameter pattern
let ( | A): E; //~ ERROR a leading `|` is only allowed in a top-level pattern
let ( || A): (E); //~ ERROR a leading `|` is only allowed in a top-level pattern
let ( | A,): (E,); //~ ERROR a leading `|` is only allowed in a top-level pattern
let [ | A ]: [E; 1]; //~ ERROR a leading `|` is only allowed in a top-level pattern
let [ || A ]: [E; 1]; //~ ERROR a leading `|` is only allowed in a top-level pattern
let TS( | A ): TS; //~ ERROR a leading `|` is only allowed in a top-level pattern
let TS( || A ): TS; //~ ERROR a leading `|` is only allowed in a top-level pattern
let NS { f: | A }: NS; //~ ERROR a leading `|` is only allowed in a top-level pattern
let NS { f: || A }: NS; //~ ERROR a leading `|` is only allowed in a top-level pattern
}
68 changes: 68 additions & 0 deletions src/test/ui/or-patterns/remove-leading-vert.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
error: a leading `|` is not allowed in a parameter pattern
--> $DIR/remove-leading-vert.rs:12:14
|
LL | fn fun1( | A: E) {}
| ^ help: remove the `|`

error: a leading `|` is not allowed in a parameter pattern
--> $DIR/remove-leading-vert.rs:13:14
|
LL | fn fun2( || A: E) {}
| ^^ help: remove the `||`

error: a leading `|` is only allowed in a top-level pattern
--> $DIR/remove-leading-vert.rs:14:11
|
LL | let ( | A): E;
| ^ help: remove the `|`

error: a leading `|` is only allowed in a top-level pattern
--> $DIR/remove-leading-vert.rs:15:11
|
LL | let ( || A): (E);
| ^^ help: remove the `||`

error: a leading `|` is only allowed in a top-level pattern
--> $DIR/remove-leading-vert.rs:16:11
|
LL | let ( | A,): (E,);
| ^ help: remove the `|`

error: a leading `|` is only allowed in a top-level pattern
--> $DIR/remove-leading-vert.rs:17:11
|
LL | let [ | A ]: [E; 1];
| ^ help: remove the `|`

error: a leading `|` is only allowed in a top-level pattern
--> $DIR/remove-leading-vert.rs:18:11
|
LL | let [ || A ]: [E; 1];
| ^^ help: remove the `||`

error: a leading `|` is only allowed in a top-level pattern
--> $DIR/remove-leading-vert.rs:19:13
|
LL | let TS( | A ): TS;
| ^ help: remove the `|`

error: a leading `|` is only allowed in a top-level pattern
--> $DIR/remove-leading-vert.rs:20:13
|
LL | let TS( || A ): TS;
| ^^ help: remove the `||`

error: a leading `|` is only allowed in a top-level pattern
--> $DIR/remove-leading-vert.rs:21:17
|
LL | let NS { f: | A }: NS;
| ^ help: remove the `|`

error: a leading `|` is only allowed in a top-level pattern
--> $DIR/remove-leading-vert.rs:22:17
|
LL | let NS { f: || A }: NS;
| ^^ help: remove the `||`

error: aborting due to 11 previous errors

0 comments on commit 6a73199

Please sign in to comment.