Remove or_patterns from INCOMPLETE_FEATURES

This commit is contained in:
Matthew Jasper 2019-12-27 12:03:03 +00:00
parent 13db6501c7
commit 425e494fce
27 changed files with 158 additions and 252 deletions

View file

@ -556,7 +556,6 @@ pub const INCOMPLETE_FEATURES: &[Symbol] = &[
sym::impl_trait_in_bindings,
sym::generic_associated_types,
sym::const_generics,
sym::or_patterns,
sym::let_chains,
sym::raw_dylib,
sym::const_trait_impl,

View file

@ -1,7 +1,6 @@
#![feature(box_patterns, stmt_expr_attributes)]
#![feature(or_patterns)]
//~^ WARN the feature `or_patterns` is incomplete
#![allow(ellipsis_inclusive_range_patterns)]
#![allow(unreachable_patterns)]

View file

@ -1,157 +1,149 @@
warning: the feature `or_patterns` is incomplete and may cause the compiler to crash
--> $DIR/issue-54538-unused-parens-lint.rs:3:12
|
LL | #![feature(or_patterns)]
| ^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:12:9
--> $DIR/issue-54538-unused-parens-lint.rs:11:9
|
LL | let (a) = 0;
| ^^^ help: remove these parentheses
|
note: the lint level is defined here
--> $DIR/issue-54538-unused-parens-lint.rs:9:9
--> $DIR/issue-54538-unused-parens-lint.rs:8:9
|
LL | #![deny(unused_parens)]
| ^^^^^^^^^^^^^
error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:13:9
--> $DIR/issue-54538-unused-parens-lint.rs:12:9
|
LL | for (a) in 0..1 {}
| ^^^ help: remove these parentheses
error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:14:12
--> $DIR/issue-54538-unused-parens-lint.rs:13:12
|
LL | if let (a) = 0 {}
| ^^^ help: remove these parentheses
error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:15:15
--> $DIR/issue-54538-unused-parens-lint.rs:14:15
|
LL | while let (a) = 0 {}
| ^^^ help: remove these parentheses
error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:16:12
--> $DIR/issue-54538-unused-parens-lint.rs:15:12
|
LL | fn foo((a): u8) {}
| ^^^ help: remove these parentheses
error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:17:14
--> $DIR/issue-54538-unused-parens-lint.rs:16:14
|
LL | let _ = |(a): u8| 0;
| ^^^ help: remove these parentheses
error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:45:12
--> $DIR/issue-54538-unused-parens-lint.rs:44:12
|
LL | if let (0 | 1) = 0 {}
| ^^^^^^^ help: remove these parentheses
error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:46:13
--> $DIR/issue-54538-unused-parens-lint.rs:45:13
|
LL | if let ((0 | 1),) = (0,) {}
| ^^^^^^^ help: remove these parentheses
error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:47:13
--> $DIR/issue-54538-unused-parens-lint.rs:46:13
|
LL | if let [(0 | 1)] = [0] {}
| ^^^^^^^ help: remove these parentheses
error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:48:16
--> $DIR/issue-54538-unused-parens-lint.rs:47:16
|
LL | if let 0 | (1 | 2) = 0 {}
| ^^^^^^^ help: remove these parentheses
error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:50:15
--> $DIR/issue-54538-unused-parens-lint.rs:49:15
|
LL | if let TS((0 | 1)) = TS(0) {}
| ^^^^^^^ help: remove these parentheses
error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:52:20
--> $DIR/issue-54538-unused-parens-lint.rs:51:20
|
LL | if let NS { f: (0 | 1) } = (NS { f: 0 }) {}
| ^^^^^^^ help: remove these parentheses
error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:62:9
--> $DIR/issue-54538-unused-parens-lint.rs:61:9
|
LL | (_) => {}
| ^^^ help: remove these parentheses
error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:62:9
|
LL | (y) => {}
| ^^^ help: remove these parentheses
error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:63:9
|
LL | (y) => {}
| ^^^ help: remove these parentheses
error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:64:9
|
LL | (ref r) => {}
| ^^^^^^^ help: remove these parentheses
error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:65:9
--> $DIR/issue-54538-unused-parens-lint.rs:64:9
|
LL | (e @ 1...2) => {}
| ^^^^^^^^^^^ help: remove these parentheses
error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:71:9
--> $DIR/issue-54538-unused-parens-lint.rs:70:9
|
LL | (e @ &(1...2)) => {}
| ^^^^^^^^^^^^^^ help: remove these parentheses
error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:72:10
--> $DIR/issue-54538-unused-parens-lint.rs:71:10
|
LL | &(_) => {}
| ^^^ help: remove these parentheses
error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:83:9
--> $DIR/issue-54538-unused-parens-lint.rs:82:9
|
LL | (_) => {}
| ^^^ help: remove these parentheses
error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:84:9
--> $DIR/issue-54538-unused-parens-lint.rs:83:9
|
LL | (y) => {}
| ^^^ help: remove these parentheses
error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:85:9
--> $DIR/issue-54538-unused-parens-lint.rs:84:9
|
LL | (ref r) => {}
| ^^^^^^^ help: remove these parentheses
error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:86:9
--> $DIR/issue-54538-unused-parens-lint.rs:85:9
|
LL | (e @ 1..=2) => {}
| ^^^^^^^^^^^ help: remove these parentheses
error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:92:9
--> $DIR/issue-54538-unused-parens-lint.rs:91:9
|
LL | (e @ &(1..=2)) => {}
| ^^^^^^^^^^^^^^ help: remove these parentheses
error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:93:10
--> $DIR/issue-54538-unused-parens-lint.rs:92:10
|
LL | &(_) => {}
| ^^^ help: remove these parentheses

View file

@ -2,7 +2,6 @@
// correctly accounts for or-patterns.
#![feature(or_patterns)]
//~^ WARN the feature `or_patterns` is incomplete
enum E<T> { A(T, T), B(T) }

View file

@ -1,97 +1,89 @@
error[E0416]: identifier `a` is bound more than once in the same pattern
--> $DIR/already-bound-name.rs:12:13
--> $DIR/already-bound-name.rs:11:13
|
LL | let (a, a) = (0, 1); // Standard duplication without an or-pattern.
| ^ used in a pattern more than once
error[E0416]: identifier `a` is bound more than once in the same pattern
--> $DIR/already-bound-name.rs:15:15
--> $DIR/already-bound-name.rs:14:15
|
LL | let (a, A(a, _) | B(a)) = (0, A(1, 2));
| ^ used in a pattern more than once
error[E0416]: identifier `a` is bound more than once in the same pattern
--> $DIR/already-bound-name.rs:15:25
--> $DIR/already-bound-name.rs:14:25
|
LL | let (a, A(a, _) | B(a)) = (0, A(1, 2));
| ^ used in a pattern more than once
error[E0416]: identifier `a` is bound more than once in the same pattern
--> $DIR/already-bound-name.rs:19:26
--> $DIR/already-bound-name.rs:18:26
|
LL | let (A(a, _) | B(a), a) = (A(0, 1), 2);
| ^ used in a pattern more than once
error[E0416]: identifier `a` is bound more than once in the same pattern
--> $DIR/already-bound-name.rs:22:14
--> $DIR/already-bound-name.rs:21:14
|
LL | let A(a, a) | B(a) = A(0, 1);
| ^ used in a pattern more than once
error[E0416]: identifier `a` is bound more than once in the same pattern
--> $DIR/already-bound-name.rs:25:21
--> $DIR/already-bound-name.rs:24:21
|
LL | let B(a) | A(a, a) = A(0, 1);
| ^ used in a pattern more than once
error[E0416]: identifier `a` is bound more than once in the same pattern
--> $DIR/already-bound-name.rs:29:21
--> $DIR/already-bound-name.rs:28:21
|
LL | B(a) | A(a, a) => {} // Let's ensure `match` has no funny business.
| ^ used in a pattern more than once
error[E0416]: identifier `a` is bound more than once in the same pattern
--> $DIR/already-bound-name.rs:33:36
--> $DIR/already-bound-name.rs:32:36
|
LL | let B(A(a, _) | B(a)) | A(a, A(a, _) | B(a)) = B(B(1));
| ^ used in a pattern more than once
error[E0416]: identifier `a` is bound more than once in the same pattern
--> $DIR/already-bound-name.rs:33:46
--> $DIR/already-bound-name.rs:32:46
|
LL | let B(A(a, _) | B(a)) | A(a, A(a, _) | B(a)) = B(B(1));
| ^ used in a pattern more than once
error[E0416]: identifier `a` is bound more than once in the same pattern
--> $DIR/already-bound-name.rs:38:36
--> $DIR/already-bound-name.rs:37:36
|
LL | let B(_) | A(A(a, _) | B(a), A(a, _) | B(a)) = B(B(1));
| ^ used in a pattern more than once
error[E0416]: identifier `a` is bound more than once in the same pattern
--> $DIR/already-bound-name.rs:38:46
--> $DIR/already-bound-name.rs:37:46
|
LL | let B(_) | A(A(a, _) | B(a), A(a, _) | B(a)) = B(B(1));
| ^ used in a pattern more than once
error[E0408]: variable `a` is not bound in all patterns
--> $DIR/already-bound-name.rs:38:9
--> $DIR/already-bound-name.rs:37:9
|
LL | let B(_) | A(A(a, _) | B(a), A(a, _) | B(a)) = B(B(1));
| ^^^^ pattern doesn't bind `a` - variable not in all patterns
error[E0416]: identifier `a` is bound more than once in the same pattern
--> $DIR/already-bound-name.rs:43:49
--> $DIR/already-bound-name.rs:42:49
|
LL | let B(A(a, _) | B(a)) | A(A(a, _) | B(a), A(a, _) | B(a)) = B(B(1));
| ^ used in a pattern more than once
error[E0416]: identifier `a` is bound more than once in the same pattern
--> $DIR/already-bound-name.rs:43:59
--> $DIR/already-bound-name.rs:42:59
|
LL | let B(A(a, _) | B(a)) | A(A(a, _) | B(a), A(a, _) | B(a)) = B(B(1));
| ^ used in a pattern more than once
warning: the feature `or_patterns` is incomplete and may cause the compiler to crash
--> $DIR/already-bound-name.rs:4:12
|
LL | #![feature(or_patterns)]
| ^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
error[E0308]: mismatched types
--> $DIR/already-bound-name.rs:33:31
--> $DIR/already-bound-name.rs:32:31
|
LL | let B(A(a, _) | B(a)) | A(a, A(a, _) | B(a)) = B(B(1));
| ^ ------- this expression has type `E<E<{integer}>>`

View file

@ -3,7 +3,6 @@
// edition:2018
#![feature(or_patterns)]
//~^ WARN the feature `or_patterns` is incomplete
fn main() {
// One level:

View file

@ -1,13 +1,5 @@
warning: the feature `or_patterns` is incomplete and may cause the compiler to crash
--> $DIR/consistent-bindings.rs:5:12
|
LL | #![feature(or_patterns)]
| ^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
error[E0308]: mismatched types
--> $DIR/consistent-bindings.rs:44:9
--> $DIR/consistent-bindings.rs:43:9
|
LL | let () = 0;
| ^^ expected integer, found `()`

View file

@ -1,14 +1,11 @@
#![feature(or_patterns)]
#![allow(incomplete_features)]
#![deny(unreachable_patterns)]
// We wrap patterns in a tuple because top-level or-patterns are special-cased for now.
fn main() {
// Get the fatal error out of the way
match (0u8,) {
(0 | _,) => {}
//~^ ERROR or-patterns are not fully implemented yet
(0 | _,) => {} //~^ ERROR or-patterns are not fully implemented yet
}
match (0u8, 0u8) {
@ -17,7 +14,7 @@ fn main() {
}
match ((0u8,),) {
//~^ ERROR non-exhaustive patterns: `((4u8..=std::u8::MAX))`
((0 | 1,) | (2 | 3,),) => {},
((0 | 1,) | (2 | 3,),) => {}
}
match (Some(0u8),) {
//~^ ERROR non-exhaustive patterns: `(Some(2u8..=std::u8::MAX))`

View file

@ -1,5 +1,5 @@
error[E0004]: non-exhaustive patterns: `(2u8..=std::u8::MAX, _)` not covered
--> $DIR/exhaustiveness-non-exhaustive.rs:14:11
--> $DIR/exhaustiveness-non-exhaustive.rs:13:11
|
LL | match (0u8, 0u8) {
| ^^^^^^^^^^ pattern `(2u8..=std::u8::MAX, _)` not covered
@ -7,7 +7,7 @@ LL | match (0u8, 0u8) {
= help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms
error[E0004]: non-exhaustive patterns: `((4u8..=std::u8::MAX))` not covered
--> $DIR/exhaustiveness-non-exhaustive.rs:18:11
--> $DIR/exhaustiveness-non-exhaustive.rs:17:11
|
LL | match ((0u8,),) {
| ^^^^^^^^^ pattern `((4u8..=std::u8::MAX))` not covered
@ -15,7 +15,7 @@ LL | match ((0u8,),) {
= help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms
error[E0004]: non-exhaustive patterns: `(Some(2u8..=std::u8::MAX))` not covered
--> $DIR/exhaustiveness-non-exhaustive.rs:22:11
--> $DIR/exhaustiveness-non-exhaustive.rs:21:11
|
LL | match (Some(0u8),) {
| ^^^^^^^^^^^^ pattern `(Some(2u8..=std::u8::MAX))` not covered
@ -23,7 +23,7 @@ LL | match (Some(0u8),) {
= help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms
error: or-patterns are not fully implemented yet
--> $DIR/exhaustiveness-non-exhaustive.rs:10:10
--> $DIR/exhaustiveness-non-exhaustive.rs:9:10
|
LL | (0 | _,) => {}
| ^^^^^

View file

@ -1,14 +1,11 @@
#![feature(or_patterns)]
#![allow(incomplete_features)]
#![deny(unreachable_patterns)]
// We wrap patterns in a tuple because top-level or-patterns are special-cased for now.
fn main() {
// Get the fatal error out of the way
match (0,) {
(0 | _,) => {}
//~^ ERROR or-patterns are not fully implemented yet
(0 | _,) => {} //~^ ERROR or-patterns are not fully implemented yet
}
match (0,) {
@ -27,11 +24,11 @@ fn main() {
(Some(2..=255),) => {}
}
match ((0,),) {
((0 | 1,) | (2 | 3,),) => {},
((_,),) => {},
((0 | 1,) | (2 | 3,),) => {}
((_,),) => {}
}
match (&[0u8][..],) {
([] | [0 | 1..=255] | [_, ..],) => {},
([] | [0 | 1..=255] | [_, ..],) => {}
}
match ((0, 0),) {

View file

@ -1,5 +1,5 @@
error: or-patterns are not fully implemented yet
--> $DIR/exhaustiveness-pass.rs:10:10
--> $DIR/exhaustiveness-pass.rs:9:10
|
LL | (0 | _,) => {}
| ^^^^^

View file

@ -1,14 +1,11 @@
#![feature(or_patterns)]
#![allow(incomplete_features)]
#![deny(unreachable_patterns)]
// We wrap patterns in a tuple because top-level or-patterns are special-cased for now.
fn main() {
// Get the fatal error out of the way
match (0u8,) {
(0 | _,) => {}
//~^ ERROR or-patterns are not fully implemented yet
(0 | _,) => {} //~^ ERROR or-patterns are not fully implemented yet
}
match (0u8,) {
@ -29,9 +26,9 @@ fn main() {
}
match (0u8, 0u8) {
(1 | 2, 3 | 4) => {}
(1, 3) => {} //~ ERROR unreachable pattern
(1, 4) => {} //~ ERROR unreachable pattern
(2, 4) => {} //~ ERROR unreachable pattern
(1, 3) => {} //~ ERROR unreachable pattern
(1, 4) => {} //~ ERROR unreachable pattern
(2, 4) => {} //~ ERROR unreachable pattern
(2 | 1, 4) => {} //~ ERROR unreachable pattern
(1, 5 | 6) => {}
(1, 4 | 5) => {} //~ ERROR unreachable pattern
@ -40,18 +37,17 @@ fn main() {
match (Some(0u8),) {
(None | Some(1 | 2),) => {}
(Some(1),) => {} //~ ERROR unreachable pattern
(None,) => {} //~ ERROR unreachable pattern
(None,) => {} //~ ERROR unreachable pattern
_ => {}
}
match ((0u8,),) {
((1 | 2,) | (3 | 4,),) => {},
((1..=4,),) => {}, //~ ERROR unreachable pattern
_ => {},
((1 | 2,) | (3 | 4,),) => {}
((1..=4,),) => {} //~ ERROR unreachable pattern
_ => {}
}
match (0,) {
(1
| 1,) => {} //~ ERROR unreachable
(1 | 1,) => {} //~ ERROR unreachable
_ => {}
}
match [0; 2] {

View file

@ -1,107 +1,107 @@
error: unreachable pattern
--> $DIR/exhaustiveness-unreachable-pattern.rs:16:9
--> $DIR/exhaustiveness-unreachable-pattern.rs:15:9
|
LL | (1,) => {}
| ^^^^
|
note: the lint level is defined here
--> $DIR/exhaustiveness-unreachable-pattern.rs:4:9
--> $DIR/exhaustiveness-unreachable-pattern.rs:3:9
|
LL | #![deny(unreachable_patterns)]
| ^^^^^^^^^^^^^^^^^^^^
error: unreachable pattern
--> $DIR/exhaustiveness-unreachable-pattern.rs:21:9
--> $DIR/exhaustiveness-unreachable-pattern.rs:20:9
|
LL | (2,) => {}
| ^^^^
error: unreachable pattern
--> $DIR/exhaustiveness-unreachable-pattern.rs:27:9
--> $DIR/exhaustiveness-unreachable-pattern.rs:26:9
|
LL | (1 | 2,) => {}
| ^^^^^^^^
error: unreachable pattern
--> $DIR/exhaustiveness-unreachable-pattern.rs:32:9
--> $DIR/exhaustiveness-unreachable-pattern.rs:31:9
|
LL | (1, 3) => {}
| ^^^^^^
error: unreachable pattern
--> $DIR/exhaustiveness-unreachable-pattern.rs:33:9
--> $DIR/exhaustiveness-unreachable-pattern.rs:32:9
|
LL | (1, 4) => {}
| ^^^^^^
error: unreachable pattern
--> $DIR/exhaustiveness-unreachable-pattern.rs:34:9
--> $DIR/exhaustiveness-unreachable-pattern.rs:33:9
|
LL | (2, 4) => {}
| ^^^^^^
error: unreachable pattern
--> $DIR/exhaustiveness-unreachable-pattern.rs:35:9
--> $DIR/exhaustiveness-unreachable-pattern.rs:34:9
|
LL | (2 | 1, 4) => {}
| ^^^^^^^^^^
error: unreachable pattern
--> $DIR/exhaustiveness-unreachable-pattern.rs:37:9
--> $DIR/exhaustiveness-unreachable-pattern.rs:36:9
|
LL | (1, 4 | 5) => {}
| ^^^^^^^^^^
error: unreachable pattern
--> $DIR/exhaustiveness-unreachable-pattern.rs:42:9
--> $DIR/exhaustiveness-unreachable-pattern.rs:41:9
|
LL | (Some(1),) => {}
| ^^^^^^^^^^
error: unreachable pattern
--> $DIR/exhaustiveness-unreachable-pattern.rs:43:9
--> $DIR/exhaustiveness-unreachable-pattern.rs:42:9
|
LL | (None,) => {}
| ^^^^^^^
error: unreachable pattern
--> $DIR/exhaustiveness-unreachable-pattern.rs:48:9
--> $DIR/exhaustiveness-unreachable-pattern.rs:47:9
|
LL | ((1..=4,),) => {},
| ^^^^^^^^^^^
error: unreachable pattern
--> $DIR/exhaustiveness-unreachable-pattern.rs:54:12
--> $DIR/exhaustiveness-unreachable-pattern.rs:53:12
|
LL | | 1,) => {}
| ^
error: unreachable pattern
--> $DIR/exhaustiveness-unreachable-pattern.rs:61:15
--> $DIR/exhaustiveness-unreachable-pattern.rs:60:15
|
LL | | 0] => {}
| ^
error: unreachable pattern
--> $DIR/exhaustiveness-unreachable-pattern.rs:59:15
--> $DIR/exhaustiveness-unreachable-pattern.rs:58:15
|
LL | | 0
| ^
error: unreachable pattern
--> $DIR/exhaustiveness-unreachable-pattern.rs:69:10
--> $DIR/exhaustiveness-unreachable-pattern.rs:68:10
|
LL | [1
| ^
error: unreachable pattern
--> $DIR/exhaustiveness-unreachable-pattern.rs:75:14
--> $DIR/exhaustiveness-unreachable-pattern.rs:74:14
|
LL | Some(0
| ^
error: or-patterns are not fully implemented yet
--> $DIR/exhaustiveness-unreachable-pattern.rs:10:10
--> $DIR/exhaustiveness-unreachable-pattern.rs:9:10
|
LL | (0 | _,) => {}
| ^^^^^

View file

@ -1,5 +1,4 @@
#![feature(or_patterns)]
#![allow(incomplete_features)]
const fn foo((Ok(a) | Err(a)): Result<i32, i32>) {
//~^ ERROR or-pattern is not allowed in a `const fn`

View file

@ -1,5 +1,5 @@
error[E0658]: or-pattern is not allowed in a `const fn`
--> $DIR/feature-gate-const-fn.rs:4:15
--> $DIR/feature-gate-const-fn.rs:3:15
|
LL | const fn foo((Ok(a) | Err(a)): Result<i32, i32>) {
| ^^^^^^^^^^^^^^
@ -8,7 +8,7 @@ LL | const fn foo((Ok(a) | Err(a)): Result<i32, i32>) {
= help: add `#![feature(const_if_match)]` to the crate attributes to enable
error[E0658]: or-pattern is not allowed in a `const fn`
--> $DIR/feature-gate-const-fn.rs:7:9
--> $DIR/feature-gate-const-fn.rs:6:9
|
LL | let Ok(y) | Err(y) = x;
| ^^^^^^^^^^^^^^
@ -17,7 +17,7 @@ LL | let Ok(y) | Err(y) = x;
= help: add `#![feature(const_if_match)]` to the crate attributes to enable
error[E0658]: or-pattern is not allowed in a `const`
--> $DIR/feature-gate-const-fn.rs:13:9
--> $DIR/feature-gate-const-fn.rs:12:9
|
LL | let Ok(y) | Err(y) = x;
| ^^^^^^^^^^^^^^
@ -26,7 +26,7 @@ LL | let Ok(y) | Err(y) = x;
= help: add `#![feature(const_if_match)]` to the crate attributes to enable
error[E0658]: or-pattern is not allowed in a `static`
--> $DIR/feature-gate-const-fn.rs:19:9
--> $DIR/feature-gate-const-fn.rs:18:9
|
LL | let Ok(y) | Err(y) = x;
| ^^^^^^^^^^^^^^
@ -35,7 +35,7 @@ LL | let Ok(y) | Err(y) = x;
= help: add `#![feature(const_if_match)]` to the crate attributes to enable
error[E0658]: or-pattern is not allowed in a `static mut`
--> $DIR/feature-gate-const-fn.rs:25:9
--> $DIR/feature-gate-const-fn.rs:24:9
|
LL | let Ok(y) | Err(y) = x;
| ^^^^^^^^^^^^^^
@ -44,7 +44,7 @@ LL | let Ok(y) | Err(y) = x;
= help: add `#![feature(const_if_match)]` to the crate attributes to enable
error[E0658]: or-pattern is not allowed in a `const`
--> $DIR/feature-gate-const-fn.rs:32:13
--> $DIR/feature-gate-const-fn.rs:31:13
|
LL | let Ok(y) | Err(y) = x;
| ^^^^^^^^^^^^^^

View file

@ -1,8 +1,6 @@
// This test ensures that or patterns require binding mode consistency across arms.
#![feature(or_patterns)]
//~^ WARN the feature `or_patterns` is incomplete
#![allow(non_camel_case_types)]
fn main() {
// One level:

View file

@ -1,5 +1,5 @@
error[E0409]: variable `a` is bound in inconsistent ways within the same match arm
--> $DIR/inconsistent-modes.rs:9:25
--> $DIR/inconsistent-modes.rs:7:25
|
LL | let Ok(a) | Err(ref a): Result<&u8, u8> = Ok(&0);
| - ^ bound in different ways
@ -7,7 +7,7 @@ LL | let Ok(a) | Err(ref a): Result<&u8, u8> = Ok(&0);
| first binding
error[E0409]: variable `a` is bound in inconsistent ways within the same match arm
--> $DIR/inconsistent-modes.rs:11:29
--> $DIR/inconsistent-modes.rs:9:29
|
LL | let Ok(ref mut a) | Err(a): Result<u8, &mut u8> = Ok(0);
| - ^ bound in different ways
@ -15,25 +15,25 @@ LL | let Ok(ref mut a) | Err(a): Result<u8, &mut u8> = Ok(0);
| first binding
error[E0409]: variable `a` is bound in inconsistent ways within the same match arm
--> $DIR/inconsistent-modes.rs:13:33
--> $DIR/inconsistent-modes.rs:11:33
|
LL | let Ok(ref a) | Err(ref mut a): Result<&u8, &mut u8> = Ok(&0);
| - first binding ^ bound in different ways
error[E0409]: variable `a` is bound in inconsistent ways within the same match arm
--> $DIR/inconsistent-modes.rs:16:39
--> $DIR/inconsistent-modes.rs:14:39
|
LL | let Ok((ref a, b)) | Err((ref mut a, ref b)) = Ok((0, &0));
| - first binding ^ bound in different ways
error[E0409]: variable `b` is bound in inconsistent ways within the same match arm
--> $DIR/inconsistent-modes.rs:16:46
--> $DIR/inconsistent-modes.rs:14:46
|
LL | let Ok((ref a, b)) | Err((ref mut a, ref b)) = Ok((0, &0));
| - first binding ^ bound in different ways
error[E0409]: variable `a` is bound in inconsistent ways within the same match arm
--> $DIR/inconsistent-modes.rs:22:38
--> $DIR/inconsistent-modes.rs:20:38
|
LL | let Ok(Ok(a) | Err(a)) | Err(ref a) = Err(0);
| - ^ bound in different ways
@ -41,23 +41,15 @@ LL | let Ok(Ok(a) | Err(a)) | Err(ref a) = Err(0);
| first binding
error[E0409]: variable `a` is bound in inconsistent ways within the same match arm
--> $DIR/inconsistent-modes.rs:26:34
--> $DIR/inconsistent-modes.rs:24:34
|
LL | let Ok([ Ok((Ok(ref a) | Err(a),)) | Err(a) ]) | Err(a) = Err(&1);
| - ^ bound in different ways
| |
| first binding
warning: the feature `or_patterns` is incomplete and may cause the compiler to crash
--> $DIR/inconsistent-modes.rs:3:12
|
LL | #![feature(or_patterns)]
| ^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
error[E0308]: mismatched types
--> $DIR/inconsistent-modes.rs:13:25
--> $DIR/inconsistent-modes.rs:11:25
|
LL | let Ok(ref a) | Err(ref mut a): Result<&u8, &mut u8> = Ok(&0);
| ^^^^^^^^^ -------------------- expected due to this
@ -68,7 +60,7 @@ LL | let Ok(ref a) | Err(ref mut a): Result<&u8, &mut u8> = Ok(&0);
found type `&mut &mut u8`
error[E0308]: mismatched types
--> $DIR/inconsistent-modes.rs:16:31
--> $DIR/inconsistent-modes.rs:14:31
|
LL | let Ok((ref a, b)) | Err((ref mut a, ref b)) = Ok((0, &0));
| ^^^^^^^^^ ----------- this expression has type `std::result::Result<({integer}, &{integer}), (_, _)>`

View file

@ -3,8 +3,6 @@
// edition:2018
#![feature(or_patterns)]
//~^ WARN the feature `or_patterns` is incomplete
#![allow(non_camel_case_types)]
fn main() {}

View file

@ -1,5 +1,5 @@
error[E0408]: variable `beta` is not bound in all patterns
--> $DIR/missing-bindings.rs:22:9
--> $DIR/missing-bindings.rs:20:9
|
LL | let alpha | beta | charlie = alpha;
| ^^^^^ ---- ^^^^^^^ pattern doesn't bind `beta`
@ -8,7 +8,7 @@ LL | let alpha | beta | charlie = alpha;
| pattern doesn't bind `beta`
error[E0408]: variable `beta` is not bound in all patterns
--> $DIR/missing-bindings.rs:24:14
--> $DIR/missing-bindings.rs:22:14
|
LL | Some(alpha | beta) => {}
| ^^^^^ ---- variable not in all patterns
@ -16,7 +16,7 @@ LL | Some(alpha | beta) => {}
| pattern doesn't bind `beta`
error[E0408]: variable `a` is not bound in all patterns
--> $DIR/missing-bindings.rs:36:19
--> $DIR/missing-bindings.rs:34:19
|
LL | let A(a, _) | _ = X;
| - ^ pattern doesn't bind `a`
@ -24,7 +24,7 @@ LL | let A(a, _) | _ = X;
| variable not in all patterns
error[E0408]: variable `a` is not bound in all patterns
--> $DIR/missing-bindings.rs:37:9
--> $DIR/missing-bindings.rs:35:9
|
LL | let _ | B(a) = X;
| ^ - variable not in all patterns
@ -32,7 +32,7 @@ LL | let _ | B(a) = X;
| pattern doesn't bind `a`
error[E0408]: variable `a` is not bound in all patterns
--> $DIR/missing-bindings.rs:38:9
--> $DIR/missing-bindings.rs:36:9
|
LL | let A(..) | B(a) = X;
| ^^^^^ - variable not in all patterns
@ -40,7 +40,7 @@ LL | let A(..) | B(a) = X;
| pattern doesn't bind `a`
error[E0408]: variable `a` is not bound in all patterns
--> $DIR/missing-bindings.rs:39:19
--> $DIR/missing-bindings.rs:37:19
|
LL | let A(a, _) | B(_) = X;
| - ^^^^ pattern doesn't bind `a`
@ -48,7 +48,7 @@ LL | let A(a, _) | B(_) = X;
| variable not in all patterns
error[E0408]: variable `a` is not bound in all patterns
--> $DIR/missing-bindings.rs:40:19
--> $DIR/missing-bindings.rs:38:19
|
LL | let A(_, a) | B(_) = X;
| - ^^^^ pattern doesn't bind `a`
@ -56,7 +56,7 @@ LL | let A(_, a) | B(_) = X;
| variable not in all patterns
error[E0408]: variable `b` is not bound in all patterns
--> $DIR/missing-bindings.rs:41:19
--> $DIR/missing-bindings.rs:39:19
|
LL | let A(a, b) | B(a) = X;
| - ^^^^ pattern doesn't bind `b`
@ -64,7 +64,7 @@ LL | let A(a, b) | B(a) = X;
| variable not in all patterns
error[E0408]: variable `a` is not bound in all patterns
--> $DIR/missing-bindings.rs:45:9
--> $DIR/missing-bindings.rs:43:9
|
LL | let A(A(..) | B(_), _) | B(a) = Y;
| ^^^^^^^^^^^^^^^^^^ - variable not in all patterns
@ -72,7 +72,7 @@ LL | let A(A(..) | B(_), _) | B(a) = Y;
| pattern doesn't bind `a`
error[E0408]: variable `a` is not bound in all patterns
--> $DIR/missing-bindings.rs:46:11
--> $DIR/missing-bindings.rs:44:11
|
LL | let A(A(..) | B(a), _) | B(A(a, _) | B(a)) = Y;
| ^^^^^ - variable not in all patterns
@ -80,7 +80,7 @@ LL | let A(A(..) | B(a), _) | B(A(a, _) | B(a)) = Y;
| pattern doesn't bind `a`
error[E0408]: variable `a` is not bound in all patterns
--> $DIR/missing-bindings.rs:48:21
--> $DIR/missing-bindings.rs:46:21
|
LL | let A(A(a, b) | B(c), d) | B(e) = Y;
| - ^^^^ pattern doesn't bind `a`
@ -88,7 +88,7 @@ LL | let A(A(a, b) | B(c), d) | B(e) = Y;
| variable not in all patterns
error[E0408]: variable `b` is not bound in all patterns
--> $DIR/missing-bindings.rs:48:21
--> $DIR/missing-bindings.rs:46:21
|
LL | let A(A(a, b) | B(c), d) | B(e) = Y;
| - ^^^^ pattern doesn't bind `b`
@ -96,7 +96,7 @@ LL | let A(A(a, b) | B(c), d) | B(e) = Y;
| variable not in all patterns
error[E0408]: variable `c` is not bound in all patterns
--> $DIR/missing-bindings.rs:48:11
--> $DIR/missing-bindings.rs:46:11
|
LL | let A(A(a, b) | B(c), d) | B(e) = Y;
| ^^^^^^^ - variable not in all patterns
@ -104,7 +104,7 @@ LL | let A(A(a, b) | B(c), d) | B(e) = Y;
| pattern doesn't bind `c`
error[E0408]: variable `a` is not bound in all patterns
--> $DIR/missing-bindings.rs:48:32
--> $DIR/missing-bindings.rs:46:32
|
LL | let A(A(a, b) | B(c), d) | B(e) = Y;
| - ^^^^ pattern doesn't bind `a`
@ -112,7 +112,7 @@ LL | let A(A(a, b) | B(c), d) | B(e) = Y;
| variable not in all patterns
error[E0408]: variable `b` is not bound in all patterns
--> $DIR/missing-bindings.rs:48:32
--> $DIR/missing-bindings.rs:46:32
|
LL | let A(A(a, b) | B(c), d) | B(e) = Y;
| - ^^^^ pattern doesn't bind `b`
@ -120,7 +120,7 @@ LL | let A(A(a, b) | B(c), d) | B(e) = Y;
| variable not in all patterns
error[E0408]: variable `c` is not bound in all patterns
--> $DIR/missing-bindings.rs:48:32
--> $DIR/missing-bindings.rs:46:32
|
LL | let A(A(a, b) | B(c), d) | B(e) = Y;
| - ^^^^ pattern doesn't bind `c`
@ -128,7 +128,7 @@ LL | let A(A(a, b) | B(c), d) | B(e) = Y;
| variable not in all patterns
error[E0408]: variable `d` is not bound in all patterns
--> $DIR/missing-bindings.rs:48:32
--> $DIR/missing-bindings.rs:46:32
|
LL | let A(A(a, b) | B(c), d) | B(e) = Y;
| - ^^^^ pattern doesn't bind `d`
@ -136,7 +136,7 @@ LL | let A(A(a, b) | B(c), d) | B(e) = Y;
| variable not in all patterns
error[E0408]: variable `e` is not bound in all patterns
--> $DIR/missing-bindings.rs:48:9
--> $DIR/missing-bindings.rs:46:9
|
LL | let A(A(a, b) | B(c), d) | B(e) = Y;
| ^^^^^^^^^^^^^^^^^^^^ - variable not in all patterns
@ -144,7 +144,7 @@ LL | let A(A(a, b) | B(c), d) | B(e) = Y;
| pattern doesn't bind `e`
error[E0408]: variable `a` is not bound in all patterns
--> $DIR/missing-bindings.rs:64:29
--> $DIR/missing-bindings.rs:62:29
|
LL | Ok(a) | Err(_),
| - ^^^^^^ pattern doesn't bind `a`
@ -152,7 +152,7 @@ LL | Ok(a) | Err(_),
| variable not in all patterns
error[E0408]: variable `a` is not bound in all patterns
--> $DIR/missing-bindings.rs:72:21
--> $DIR/missing-bindings.rs:70:21
|
LL | A(_, a) |
| - variable not in all patterns
@ -160,7 +160,7 @@ LL | B(b),
| ^^^^ pattern doesn't bind `a`
error[E0408]: variable `b` is not bound in all patterns
--> $DIR/missing-bindings.rs:71:21
--> $DIR/missing-bindings.rs:69:21
|
LL | A(_, a) |
| ^^^^^^^ pattern doesn't bind `b`
@ -168,7 +168,7 @@ LL | B(b),
| - variable not in all patterns
error[E0408]: variable `a` is not bound in all patterns
--> $DIR/missing-bindings.rs:75:17
--> $DIR/missing-bindings.rs:73:17
|
LL | A(_, a) |
| - variable not in all patterns
@ -177,7 +177,7 @@ LL | B(_)
| ^^^^ pattern doesn't bind `a`
error[E0408]: variable `b` is not bound in all patterns
--> $DIR/missing-bindings.rs:75:17
--> $DIR/missing-bindings.rs:73:17
|
LL | B(b),
| - variable not in all patterns
@ -186,7 +186,7 @@ LL | B(_)
| ^^^^ pattern doesn't bind `b`
error[E0408]: variable `a` is not bound in all patterns
--> $DIR/missing-bindings.rs:79:13
--> $DIR/missing-bindings.rs:77:13
|
LL | B(Ok(a) | Err(a))
| - variable not in all patterns
@ -198,7 +198,7 @@ LL | V3(c),
| ^^^^^ pattern doesn't bind `a`
error[E0408]: variable `b` is not bound in all patterns
--> $DIR/missing-bindings.rs:60:13
--> $DIR/missing-bindings.rs:58:13
|
LL | / V1(
LL | |
@ -216,7 +216,7 @@ LL | V3(c),
| ^^^^^ pattern doesn't bind `b`
error[E0408]: variable `c` is not bound in all patterns
--> $DIR/missing-bindings.rs:60:13
--> $DIR/missing-bindings.rs:58:13
|
LL | / V1(
LL | |
@ -237,14 +237,6 @@ LL | | ) |
LL | V3(c),
| - variable not in all patterns
warning: the feature `or_patterns` is incomplete and may cause the compiler to crash
--> $DIR/missing-bindings.rs:5:12
|
LL | #![feature(or_patterns)]
| ^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
error: aborting due to 26 previous errors
For more information about this error, try `rustc --explain E0408`.

View file

@ -1,5 +1,4 @@
#![feature(or_patterns)]
//~^ WARN the feature `or_patterns` is incomplete and may cause the compiler to crash
fn main() {
let x = 3;

View file

@ -1,5 +1,5 @@
error: unexpected token `||` after pattern
--> $DIR/multiple-pattern-typo.rs:8:15
--> $DIR/multiple-pattern-typo.rs:7:15
|
LL | 1 | 2 || 3 => (),
| - ^^ help: use a single `|` to separate multiple alternative patterns: `|`
@ -7,7 +7,7 @@ LL | 1 | 2 || 3 => (),
| while parsing this or-pattern starting here
error: unexpected token `||` after pattern
--> $DIR/multiple-pattern-typo.rs:13:16
--> $DIR/multiple-pattern-typo.rs:12:16
|
LL | (1 | 2 || 3) => (),
| - ^^ help: use a single `|` to separate multiple alternative patterns: `|`
@ -15,7 +15,7 @@ LL | (1 | 2 || 3) => (),
| while parsing this or-pattern starting here
error: unexpected token `||` after pattern
--> $DIR/multiple-pattern-typo.rs:18:16
--> $DIR/multiple-pattern-typo.rs:17:16
|
LL | (1 | 2 || 3,) => (),
| - ^^ help: use a single `|` to separate multiple alternative patterns: `|`
@ -23,7 +23,7 @@ LL | (1 | 2 || 3,) => (),
| while parsing this or-pattern starting here
error: unexpected token `||` after pattern
--> $DIR/multiple-pattern-typo.rs:25:18
--> $DIR/multiple-pattern-typo.rs:24:18
|
LL | TS(1 | 2 || 3) => (),
| - ^^ help: use a single `|` to separate multiple alternative patterns: `|`
@ -31,7 +31,7 @@ LL | TS(1 | 2 || 3) => (),
| while parsing this or-pattern starting here
error: unexpected token `||` after pattern
--> $DIR/multiple-pattern-typo.rs:32:23
--> $DIR/multiple-pattern-typo.rs:31:23
|
LL | NS { f: 1 | 2 || 3 } => (),
| - ^^ help: use a single `|` to separate multiple alternative patterns: `|`
@ -39,7 +39,7 @@ LL | NS { f: 1 | 2 || 3 } => (),
| while parsing this or-pattern starting here
error: unexpected token `||` after pattern
--> $DIR/multiple-pattern-typo.rs:37:16
--> $DIR/multiple-pattern-typo.rs:36:16
|
LL | [1 | 2 || 3] => (),
| - ^^ help: use a single `|` to separate multiple alternative patterns: `|`
@ -47,18 +47,10 @@ LL | [1 | 2 || 3] => (),
| while parsing this or-pattern starting here
error: unexpected token `||` after pattern
--> $DIR/multiple-pattern-typo.rs:42:9
--> $DIR/multiple-pattern-typo.rs:41:9
|
LL | || 1 | 2 | 3 => (),
| ^^ help: use a single `|` to separate multiple alternative patterns: `|`
warning: the feature `or_patterns` is incomplete and may cause the compiler to crash
--> $DIR/multiple-pattern-typo.rs:1:12
|
LL | #![feature(or_patterns)]
| ^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
error: aborting due to 7 previous errors

View file

@ -2,7 +2,6 @@
// This is not a semantic test. We only test parsing.
#![feature(or_patterns)]
//~^ WARN the feature `or_patterns` is incomplete and may cause the compiler to crash
fn main() {}

View file

@ -1,53 +1,53 @@
error: an or-pattern parameter must be wrapped in parenthesis
--> $DIR/or-patterns-syntactic-fail.rs:28:13
--> $DIR/or-patterns-syntactic-fail.rs:27:13
|
LL | fn fun1(A | B: E) {}
| ^^^^^ help: wrap the pattern in parenthesis: `(A | B)`
error: a leading `|` is not allowed in a parameter pattern
--> $DIR/or-patterns-syntactic-fail.rs:30:13
--> $DIR/or-patterns-syntactic-fail.rs:29:13
|
LL | fn fun2(| A | B: E) {}
| ^ help: remove the `|`
error: an or-pattern parameter must be wrapped in parenthesis
--> $DIR/or-patterns-syntactic-fail.rs:30:15
--> $DIR/or-patterns-syntactic-fail.rs:29:15
|
LL | fn fun2(| A | B: E) {}
| ^^^^^ help: wrap the pattern in parenthesis: `(A | B)`
error: a leading `|` is only allowed in a top-level pattern
--> $DIR/or-patterns-syntactic-fail.rs:41:11
--> $DIR/or-patterns-syntactic-fail.rs:40:11
|
LL | let ( | A | B) = E::A;
| ^ help: remove the `|`
error: a leading `|` is only allowed in a top-level pattern
--> $DIR/or-patterns-syntactic-fail.rs:42:11
--> $DIR/or-patterns-syntactic-fail.rs:41:11
|
LL | let ( | A | B,) = (E::B,);
| ^ help: remove the `|`
error: a leading `|` is only allowed in a top-level pattern
--> $DIR/or-patterns-syntactic-fail.rs:43:11
--> $DIR/or-patterns-syntactic-fail.rs:42:11
|
LL | let [ | A | B ] = [E::A];
| ^ help: remove the `|`
error: a leading `|` is only allowed in a top-level pattern
--> $DIR/or-patterns-syntactic-fail.rs:44:13
--> $DIR/or-patterns-syntactic-fail.rs:43:13
|
LL | let TS( | A | B );
| ^ help: remove the `|`
error: a leading `|` is only allowed in a top-level pattern
--> $DIR/or-patterns-syntactic-fail.rs:45:17
--> $DIR/or-patterns-syntactic-fail.rs:44:17
|
LL | let NS { f: | A | B };
| ^ help: remove the `|`
error: a leading `|` is only allowed in a top-level pattern
--> $DIR/or-patterns-syntactic-fail.rs:47:11
--> $DIR/or-patterns-syntactic-fail.rs:46:11
|
LL | let ( || A | B) = E::A;
| ^^ help: remove the `||`
@ -55,7 +55,7 @@ LL | let ( || A | B) = E::A;
= note: alternatives in or-patterns are separated with `|`, not `||`
error: a leading `|` is only allowed in a top-level pattern
--> $DIR/or-patterns-syntactic-fail.rs:48:11
--> $DIR/or-patterns-syntactic-fail.rs:47:11
|
LL | let [ || A | B ] = [E::A];
| ^^ help: remove the `||`
@ -63,7 +63,7 @@ LL | let [ || A | B ] = [E::A];
= note: alternatives in or-patterns are separated with `|`, not `||`
error: a leading `|` is only allowed in a top-level pattern
--> $DIR/or-patterns-syntactic-fail.rs:49:13
--> $DIR/or-patterns-syntactic-fail.rs:48:13
|
LL | let TS( || A | B );
| ^^ help: remove the `||`
@ -71,7 +71,7 @@ LL | let TS( || A | B );
= note: alternatives in or-patterns are separated with `|`, not `||`
error: a leading `|` is only allowed in a top-level pattern
--> $DIR/or-patterns-syntactic-fail.rs:50:17
--> $DIR/or-patterns-syntactic-fail.rs:49:17
|
LL | let NS { f: || A | B };
| ^^ help: remove the `||`
@ -79,7 +79,7 @@ LL | let NS { f: || A | B };
= note: alternatives in or-patterns are separated with `|`, not `||`
error: no rules expected the token `|`
--> $DIR/or-patterns-syntactic-fail.rs:14:15
--> $DIR/or-patterns-syntactic-fail.rs:13:15
|
LL | macro_rules! accept_pat {
| ----------------------- when calling this macro
@ -88,7 +88,7 @@ LL | accept_pat!(p | q);
| ^ no rules expected this token in macro call
error: no rules expected the token `|`
--> $DIR/or-patterns-syntactic-fail.rs:15:13
--> $DIR/or-patterns-syntactic-fail.rs:14:13
|
LL | macro_rules! accept_pat {
| ----------------------- when calling this macro
@ -96,16 +96,8 @@ LL | macro_rules! accept_pat {
LL | accept_pat!(| p | q);
| ^ no rules expected this token in macro call
warning: the feature `or_patterns` is incomplete and may cause the compiler to crash
--> $DIR/or-patterns-syntactic-fail.rs:4:12
|
LL | #![feature(or_patterns)]
| ^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
error[E0369]: no implementation for `E | ()`
--> $DIR/or-patterns-syntactic-fail.rs:24:22
--> $DIR/or-patterns-syntactic-fail.rs:23:22
|
LL | let _ = |A | B: E| ();
| ----^ -- ()
@ -115,7 +107,7 @@ LL | let _ = |A | B: E| ();
= note: an implementation of `std::ops::BitOr` might be missing for `E`
error[E0308]: mismatched types
--> $DIR/or-patterns-syntactic-fail.rs:52:36
--> $DIR/or-patterns-syntactic-fail.rs:51:36
|
LL | let recovery_witness: String = 0;
| ------ ^

View file

@ -3,7 +3,7 @@
// check-pass
#![feature(or_patterns)] //~ WARNING the feature `or_patterns` is incomplete
#![feature(or_patterns)]
fn main() {}

View file

@ -1,8 +0,0 @@
warning: the feature `or_patterns` is incomplete and may cause the compiler to crash
--> $DIR/or-patterns-syntactic-pass.rs:6:12
|
LL | #![feature(or_patterns)]
| ^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default

View file

@ -3,7 +3,6 @@
#![feature(bindings_after_at)]
#![feature(or_patterns)]
//~^ WARN the feature `or_patterns` is incomplete and may cause the compiler to crash
fn main() {
fn f(a @ a @ a: ()) {}

View file

@ -1,71 +1,63 @@
error[E0415]: identifier `a` is bound more than once in this parameter list
--> $DIR/pat-at-same-name-both.rs:9:14
--> $DIR/pat-at-same-name-both.rs:8:14
|
LL | fn f(a @ a @ a: ()) {}
| ^ used as parameter more than once
error[E0415]: identifier `a` is bound more than once in this parameter list
--> $DIR/pat-at-same-name-both.rs:9:18
--> $DIR/pat-at-same-name-both.rs:8:18
|
LL | fn f(a @ a @ a: ()) {}
| ^ used as parameter more than once
error[E0416]: identifier `a` is bound more than once in the same pattern
--> $DIR/pat-at-same-name-both.rs:14:20
--> $DIR/pat-at-same-name-both.rs:13:20
|
LL | Ok(a @ b @ a)
| ^ used in a pattern more than once
error[E0416]: identifier `a` is bound more than once in the same pattern
--> $DIR/pat-at-same-name-both.rs:16:23
--> $DIR/pat-at-same-name-both.rs:15:23
|
LL | | Err(a @ b @ a)
| ^ used in a pattern more than once
error[E0416]: identifier `a` is bound more than once in the same pattern
--> $DIR/pat-at-same-name-both.rs:21:13
--> $DIR/pat-at-same-name-both.rs:20:13
|
LL | let a @ a @ a = ();
| ^ used in a pattern more than once
error[E0416]: identifier `a` is bound more than once in the same pattern
--> $DIR/pat-at-same-name-both.rs:21:17
--> $DIR/pat-at-same-name-both.rs:20:17
|
LL | let a @ a @ a = ();
| ^ used in a pattern more than once
error[E0416]: identifier `a` is bound more than once in the same pattern
--> $DIR/pat-at-same-name-both.rs:24:21
--> $DIR/pat-at-same-name-both.rs:23:21
|
LL | let ref a @ ref a = ();
| ^ used in a pattern more than once
error[E0416]: identifier `a` is bound more than once in the same pattern
--> $DIR/pat-at-same-name-both.rs:26:29
--> $DIR/pat-at-same-name-both.rs:25:29
|
LL | let ref mut a @ ref mut a = ();
| ^ used in a pattern more than once
error[E0416]: identifier `a` is bound more than once in the same pattern
--> $DIR/pat-at-same-name-both.rs:29:17
--> $DIR/pat-at-same-name-both.rs:28:17
|
LL | let a @ (Ok(a) | Err(a)) = Ok(());
| ^ used in a pattern more than once
error[E0416]: identifier `a` is bound more than once in the same pattern
--> $DIR/pat-at-same-name-both.rs:29:26
--> $DIR/pat-at-same-name-both.rs:28:26
|
LL | let a @ (Ok(a) | Err(a)) = Ok(());
| ^ used in a pattern more than once
warning: the feature `or_patterns` is incomplete and may cause the compiler to crash
--> $DIR/pat-at-same-name-both.rs:5:12
|
LL | #![feature(or_patterns)]
| ^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
error: aborting due to 10 previous errors
Some errors have detailed explanations: E0415, E0416.