From 425e494fceb2f88bec344ef07d0f2db4c74dd2d1 Mon Sep 17 00:00:00 2001 From: Matthew Jasper Date: Fri, 27 Dec 2019 12:03:03 +0000 Subject: [PATCH] Remove or_patterns from INCOMPLETE_FEATURES --- src/librustc_feature/active.rs | 1 - .../ui/lint/issue-54538-unused-parens-lint.rs | 1 - .../issue-54538-unused-parens-lint.stderr | 66 ++++++++----------- src/test/ui/or-patterns/already-bound-name.rs | 1 - .../ui/or-patterns/already-bound-name.stderr | 38 +++++------ .../ui/or-patterns/consistent-bindings.rs | 1 - .../ui/or-patterns/consistent-bindings.stderr | 10 +-- .../exhaustiveness-non-exhaustive.rs | 7 +- .../exhaustiveness-non-exhaustive.stderr | 8 +-- .../ui/or-patterns/exhaustiveness-pass.rs | 11 ++-- .../ui/or-patterns/exhaustiveness-pass.stderr | 2 +- .../exhaustiveness-unreachable-pattern.rs | 22 +++---- .../exhaustiveness-unreachable-pattern.stderr | 36 +++++----- .../ui/or-patterns/feature-gate-const-fn.rs | 1 - .../or-patterns/feature-gate-const-fn.stderr | 12 ++-- src/test/ui/or-patterns/inconsistent-modes.rs | 2 - .../ui/or-patterns/inconsistent-modes.stderr | 26 +++----- src/test/ui/or-patterns/missing-bindings.rs | 2 - .../ui/or-patterns/missing-bindings.stderr | 60 ++++++++--------- .../ui/or-patterns/multiple-pattern-typo.rs | 1 - .../or-patterns/multiple-pattern-typo.stderr | 22 ++----- .../or-patterns/or-patterns-syntactic-fail.rs | 1 - .../or-patterns-syntactic-fail.stderr | 40 +++++------ .../or-patterns/or-patterns-syntactic-pass.rs | 2 +- .../or-patterns-syntactic-pass.stderr | 8 --- .../pat-at-same-name-both.rs | 1 - .../pat-at-same-name-both.stderr | 28 +++----- 27 files changed, 158 insertions(+), 252 deletions(-) delete mode 100644 src/test/ui/or-patterns/or-patterns-syntactic-pass.stderr diff --git a/src/librustc_feature/active.rs b/src/librustc_feature/active.rs index f20a57ea61c4..0252d88e7388 100644 --- a/src/librustc_feature/active.rs +++ b/src/librustc_feature/active.rs @@ -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, diff --git a/src/test/ui/lint/issue-54538-unused-parens-lint.rs b/src/test/ui/lint/issue-54538-unused-parens-lint.rs index 7dcbdd0863cb..f3d2d1bb58d8 100644 --- a/src/test/ui/lint/issue-54538-unused-parens-lint.rs +++ b/src/test/ui/lint/issue-54538-unused-parens-lint.rs @@ -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)] diff --git a/src/test/ui/lint/issue-54538-unused-parens-lint.stderr b/src/test/ui/lint/issue-54538-unused-parens-lint.stderr index b6d532c31017..b31ad95b191c 100644 --- a/src/test/ui/lint/issue-54538-unused-parens-lint.stderr +++ b/src/test/ui/lint/issue-54538-unused-parens-lint.stderr @@ -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 diff --git a/src/test/ui/or-patterns/already-bound-name.rs b/src/test/ui/or-patterns/already-bound-name.rs index 3ebf59c64373..726e17b7ec22 100644 --- a/src/test/ui/or-patterns/already-bound-name.rs +++ b/src/test/ui/or-patterns/already-bound-name.rs @@ -2,7 +2,6 @@ // correctly accounts for or-patterns. #![feature(or_patterns)] -//~^ WARN the feature `or_patterns` is incomplete enum E { A(T, T), B(T) } diff --git a/src/test/ui/or-patterns/already-bound-name.stderr b/src/test/ui/or-patterns/already-bound-name.stderr index 948c91370d0d..9924b0d7f72e 100644 --- a/src/test/ui/or-patterns/already-bound-name.stderr +++ b/src/test/ui/or-patterns/already-bound-name.stderr @@ -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>` diff --git a/src/test/ui/or-patterns/consistent-bindings.rs b/src/test/ui/or-patterns/consistent-bindings.rs index 0eb539dca4cb..ec71afed872b 100644 --- a/src/test/ui/or-patterns/consistent-bindings.rs +++ b/src/test/ui/or-patterns/consistent-bindings.rs @@ -3,7 +3,6 @@ // edition:2018 #![feature(or_patterns)] -//~^ WARN the feature `or_patterns` is incomplete fn main() { // One level: diff --git a/src/test/ui/or-patterns/consistent-bindings.stderr b/src/test/ui/or-patterns/consistent-bindings.stderr index 433a02dfb313..bb8e90af5f20 100644 --- a/src/test/ui/or-patterns/consistent-bindings.stderr +++ b/src/test/ui/or-patterns/consistent-bindings.stderr @@ -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 `()` diff --git a/src/test/ui/or-patterns/exhaustiveness-non-exhaustive.rs b/src/test/ui/or-patterns/exhaustiveness-non-exhaustive.rs index 8b0be2e7a66b..2e8baf978e25 100644 --- a/src/test/ui/or-patterns/exhaustiveness-non-exhaustive.rs +++ b/src/test/ui/or-patterns/exhaustiveness-non-exhaustive.rs @@ -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))` diff --git a/src/test/ui/or-patterns/exhaustiveness-non-exhaustive.stderr b/src/test/ui/or-patterns/exhaustiveness-non-exhaustive.stderr index e6aa157d278c..7fbd846a22f2 100644 --- a/src/test/ui/or-patterns/exhaustiveness-non-exhaustive.stderr +++ b/src/test/ui/or-patterns/exhaustiveness-non-exhaustive.stderr @@ -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 | _,) => {} | ^^^^^ diff --git a/src/test/ui/or-patterns/exhaustiveness-pass.rs b/src/test/ui/or-patterns/exhaustiveness-pass.rs index f0dc3447f315..9b62810d29db 100644 --- a/src/test/ui/or-patterns/exhaustiveness-pass.rs +++ b/src/test/ui/or-patterns/exhaustiveness-pass.rs @@ -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),) { diff --git a/src/test/ui/or-patterns/exhaustiveness-pass.stderr b/src/test/ui/or-patterns/exhaustiveness-pass.stderr index 1f4278c4b809..dc5a4186ac70 100644 --- a/src/test/ui/or-patterns/exhaustiveness-pass.stderr +++ b/src/test/ui/or-patterns/exhaustiveness-pass.stderr @@ -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 | _,) => {} | ^^^^^ diff --git a/src/test/ui/or-patterns/exhaustiveness-unreachable-pattern.rs b/src/test/ui/or-patterns/exhaustiveness-unreachable-pattern.rs index 81bc1176f572..dd1c16f50002 100644 --- a/src/test/ui/or-patterns/exhaustiveness-unreachable-pattern.rs +++ b/src/test/ui/or-patterns/exhaustiveness-unreachable-pattern.rs @@ -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] { diff --git a/src/test/ui/or-patterns/exhaustiveness-unreachable-pattern.stderr b/src/test/ui/or-patterns/exhaustiveness-unreachable-pattern.stderr index 7f7bb929a0d2..1f07c27afad9 100644 --- a/src/test/ui/or-patterns/exhaustiveness-unreachable-pattern.stderr +++ b/src/test/ui/or-patterns/exhaustiveness-unreachable-pattern.stderr @@ -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 | _,) => {} | ^^^^^ diff --git a/src/test/ui/or-patterns/feature-gate-const-fn.rs b/src/test/ui/or-patterns/feature-gate-const-fn.rs index d73dcf266664..d21cf3dc72c9 100644 --- a/src/test/ui/or-patterns/feature-gate-const-fn.rs +++ b/src/test/ui/or-patterns/feature-gate-const-fn.rs @@ -1,5 +1,4 @@ #![feature(or_patterns)] -#![allow(incomplete_features)] const fn foo((Ok(a) | Err(a)): Result) { //~^ ERROR or-pattern is not allowed in a `const fn` diff --git a/src/test/ui/or-patterns/feature-gate-const-fn.stderr b/src/test/ui/or-patterns/feature-gate-const-fn.stderr index 26143d2f19d3..112bc6251726 100644 --- a/src/test/ui/or-patterns/feature-gate-const-fn.stderr +++ b/src/test/ui/or-patterns/feature-gate-const-fn.stderr @@ -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) { | ^^^^^^^^^^^^^^ @@ -8,7 +8,7 @@ LL | const fn foo((Ok(a) | Err(a)): Result) { = 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; | ^^^^^^^^^^^^^^ diff --git a/src/test/ui/or-patterns/inconsistent-modes.rs b/src/test/ui/or-patterns/inconsistent-modes.rs index 44836893ea2b..28b5f0c02fef 100644 --- a/src/test/ui/or-patterns/inconsistent-modes.rs +++ b/src/test/ui/or-patterns/inconsistent-modes.rs @@ -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: diff --git a/src/test/ui/or-patterns/inconsistent-modes.stderr b/src/test/ui/or-patterns/inconsistent-modes.stderr index 7c1638ff94d0..c329f9059609 100644 --- a/src/test/ui/or-patterns/inconsistent-modes.stderr +++ b/src/test/ui/or-patterns/inconsistent-modes.stderr @@ -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 = Ok(0); | - ^ bound in different ways @@ -15,25 +15,25 @@ LL | let Ok(ref mut a) | Err(a): Result = 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}), (_, _)>` diff --git a/src/test/ui/or-patterns/missing-bindings.rs b/src/test/ui/or-patterns/missing-bindings.rs index b065028e7a5a..67cf52fa8c41 100644 --- a/src/test/ui/or-patterns/missing-bindings.rs +++ b/src/test/ui/or-patterns/missing-bindings.rs @@ -3,8 +3,6 @@ // edition:2018 #![feature(or_patterns)] -//~^ WARN the feature `or_patterns` is incomplete - #![allow(non_camel_case_types)] fn main() {} diff --git a/src/test/ui/or-patterns/missing-bindings.stderr b/src/test/ui/or-patterns/missing-bindings.stderr index c73af7a42eec..57270e441235 100644 --- a/src/test/ui/or-patterns/missing-bindings.stderr +++ b/src/test/ui/or-patterns/missing-bindings.stderr @@ -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`. diff --git a/src/test/ui/or-patterns/multiple-pattern-typo.rs b/src/test/ui/or-patterns/multiple-pattern-typo.rs index e308c0adb4eb..702c9573741e 100644 --- a/src/test/ui/or-patterns/multiple-pattern-typo.rs +++ b/src/test/ui/or-patterns/multiple-pattern-typo.rs @@ -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; diff --git a/src/test/ui/or-patterns/multiple-pattern-typo.stderr b/src/test/ui/or-patterns/multiple-pattern-typo.stderr index c71c760b1e30..cb32068ec0d5 100644 --- a/src/test/ui/or-patterns/multiple-pattern-typo.stderr +++ b/src/test/ui/or-patterns/multiple-pattern-typo.stderr @@ -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 diff --git a/src/test/ui/or-patterns/or-patterns-syntactic-fail.rs b/src/test/ui/or-patterns/or-patterns-syntactic-fail.rs index ce6836f30f94..d23220056524 100644 --- a/src/test/ui/or-patterns/or-patterns-syntactic-fail.rs +++ b/src/test/ui/or-patterns/or-patterns-syntactic-fail.rs @@ -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() {} diff --git a/src/test/ui/or-patterns/or-patterns-syntactic-fail.stderr b/src/test/ui/or-patterns/or-patterns-syntactic-fail.stderr index e77d92e8b07d..6cbb59dc2203 100644 --- a/src/test/ui/or-patterns/or-patterns-syntactic-fail.stderr +++ b/src/test/ui/or-patterns/or-patterns-syntactic-fail.stderr @@ -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; | ------ ^ diff --git a/src/test/ui/or-patterns/or-patterns-syntactic-pass.rs b/src/test/ui/or-patterns/or-patterns-syntactic-pass.rs index 73c1477c281a..5fe72caf9c1f 100644 --- a/src/test/ui/or-patterns/or-patterns-syntactic-pass.rs +++ b/src/test/ui/or-patterns/or-patterns-syntactic-pass.rs @@ -3,7 +3,7 @@ // check-pass -#![feature(or_patterns)] //~ WARNING the feature `or_patterns` is incomplete +#![feature(or_patterns)] fn main() {} diff --git a/src/test/ui/or-patterns/or-patterns-syntactic-pass.stderr b/src/test/ui/or-patterns/or-patterns-syntactic-pass.stderr deleted file mode 100644 index 3145a2e9f2a6..000000000000 --- a/src/test/ui/or-patterns/or-patterns-syntactic-pass.stderr +++ /dev/null @@ -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 - diff --git a/src/test/ui/pattern/bindings-after-at/pat-at-same-name-both.rs b/src/test/ui/pattern/bindings-after-at/pat-at-same-name-both.rs index 89ea2d518194..e8b5b492b773 100644 --- a/src/test/ui/pattern/bindings-after-at/pat-at-same-name-both.rs +++ b/src/test/ui/pattern/bindings-after-at/pat-at-same-name-both.rs @@ -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: ()) {} diff --git a/src/test/ui/pattern/bindings-after-at/pat-at-same-name-both.stderr b/src/test/ui/pattern/bindings-after-at/pat-at-same-name-both.stderr index c568d2a3aa2b..cba17d82e93c 100644 --- a/src/test/ui/pattern/bindings-after-at/pat-at-same-name-both.stderr +++ b/src/test/ui/pattern/bindings-after-at/pat-at-same-name-both.stderr @@ -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.