Skip to content

Commit

Permalink
Don't mark if_let_guard as an incomplete feature
Browse files Browse the repository at this point in the history
  • Loading branch information
LeSeulArtichaut committed Aug 16, 2021
1 parent 73d96b0 commit dabdd6d
Show file tree
Hide file tree
Showing 11 changed files with 13 additions and 19 deletions.
2 changes: 1 addition & 1 deletion compiler/rustc_feature/src/active.rs
Expand Up @@ -555,7 +555,7 @@ declare_features! (
(incomplete, lazy_normalization_consts, "1.46.0", Some(72219), None),

/// Allows `if let` guard in match arms.
(incomplete, if_let_guard, "1.47.0", Some(51114), None),
(active, if_let_guard, "1.47.0", Some(51114), None),

/// Allows non-trivial generic constants which have to be manually propagated upwards.
(incomplete, const_evaluatable_checked, "1.48.0", Some(76560), None),
Expand Down
1 change: 0 additions & 1 deletion src/test/ui/generator/yielding-in-match-guards.rs
Expand Up @@ -11,7 +11,6 @@
// of the underlying generator.

#![feature(if_let_guard)]
#![allow(incomplete_features)]

async fn f() -> u8 { 1 }
async fn foo() -> [bool; 10] { [false; 10] }
Expand Down
@@ -1,5 +1,4 @@
#![feature(if_let_guard)]
#![allow(incomplete_features)]

#![deny(irrefutable_let_patterns)]

Expand Down
@@ -1,19 +1,19 @@
error: irrefutable `if let` pattern
--> $DIR/deny-irrefutable-let-patterns.rs:7:8
--> $DIR/deny-irrefutable-let-patterns.rs:6:8
|
LL | if let _ = 5 {}
| ^^^^^^^^^
|
note: the lint level is defined here
--> $DIR/deny-irrefutable-let-patterns.rs:4:9
--> $DIR/deny-irrefutable-let-patterns.rs:3:9
|
LL | #![deny(irrefutable_let_patterns)]
| ^^^^^^^^^^^^^^^^^^^^^^^^
= note: this pattern will always match, so the `if let` is useless
= help: consider replacing the `if let` with a `let`

error: irrefutable `while let` pattern
--> $DIR/deny-irrefutable-let-patterns.rs:9:11
--> $DIR/deny-irrefutable-let-patterns.rs:8:11
|
LL | while let _ = 5 {
| ^^^^^^^^^
Expand All @@ -22,7 +22,7 @@ LL | while let _ = 5 {
= help: consider instead using a `loop { ... }` with a `let` inside it

error: irrefutable `if let` guard pattern
--> $DIR/deny-irrefutable-let-patterns.rs:14:18
--> $DIR/deny-irrefutable-let-patterns.rs:13:18
|
LL | _ if let _ = 2 => {}
| ^
Expand Down
1 change: 0 additions & 1 deletion src/test/ui/rfc-2294-if-let-guard/bindings.rs
@@ -1,5 +1,4 @@
#![feature(if_let_guard)]
#![allow(incomplete_features)]

fn main() {
match Some(None) {
Expand Down
4 changes: 2 additions & 2 deletions src/test/ui/rfc-2294-if-let-guard/bindings.stderr
@@ -1,11 +1,11 @@
error[E0425]: cannot find value `y` in this scope
--> $DIR/bindings.rs:7:14
--> $DIR/bindings.rs:6:14
|
LL | _ => y,
| ^ not found in this scope

error[E0425]: cannot find value `y` in this scope
--> $DIR/bindings.rs:9:5
--> $DIR/bindings.rs:8:5
|
LL | y
| ^ not found in this scope
Expand Down
1 change: 0 additions & 1 deletion src/test/ui/rfc-2294-if-let-guard/run-pass.rs
@@ -1,7 +1,6 @@
// run-pass

#![feature(if_let_guard)]
#![allow(incomplete_features)]

enum Foo {
Bar,
Expand Down
1 change: 0 additions & 1 deletion src/test/ui/rfc-2294-if-let-guard/typeck.rs
@@ -1,5 +1,4 @@
#![feature(if_let_guard)]
#![allow(incomplete_features)]

fn ok() -> Result<Option<bool>, ()> {
Ok(Some(true))
Expand Down
4 changes: 2 additions & 2 deletions src/test/ui/rfc-2294-if-let-guard/typeck.stderr
@@ -1,5 +1,5 @@
error[E0308]: mismatched types
--> $DIR/typeck.rs:10:22
--> $DIR/typeck.rs:9:22
|
LL | Ok(x) if let Err(_) = x => {},
| ^^^^^^ expected enum `Option`, found enum `Result`
Expand All @@ -8,7 +8,7 @@ LL | Ok(x) if let Err(_) = x => {},
found enum `Result<_, _>`

error[E0308]: mismatched types
--> $DIR/typeck.rs:12:22
--> $DIR/typeck.rs:11:22
|
LL | Ok(x) if let 0 = x => {},
| ^ expected enum `Option`, found integer
Expand Down
1 change: 0 additions & 1 deletion src/test/ui/rfc-2294-if-let-guard/warns.rs
@@ -1,5 +1,4 @@
#![feature(if_let_guard)]
#![allow(incomplete_features)]

#[deny(irrefutable_let_patterns)]
fn irrefutable_let_guard() {
Expand Down
8 changes: 4 additions & 4 deletions src/test/ui/rfc-2294-if-let-guard/warns.stderr
@@ -1,25 +1,25 @@
error: irrefutable `if let` guard pattern
--> $DIR/warns.rs:7:24
--> $DIR/warns.rs:6:24
|
LL | Some(x) if let () = x => {}
| ^^
|
note: the lint level is defined here
--> $DIR/warns.rs:4:8
--> $DIR/warns.rs:3:8
|
LL | #[deny(irrefutable_let_patterns)]
| ^^^^^^^^^^^^^^^^^^^^^^^^
= note: this pattern will always match, so the guard is useless
= help: consider removing the guard and adding a `let` inside the match arm

error: unreachable pattern
--> $DIR/warns.rs:16:25
--> $DIR/warns.rs:15:25
|
LL | x if let None | None = x => {}
| ^^^^
|
note: the lint level is defined here
--> $DIR/warns.rs:13:8
--> $DIR/warns.rs:12:8
|
LL | #[deny(unreachable_patterns)]
| ^^^^^^^^^^^^^^^^^^^^
Expand Down

0 comments on commit dabdd6d

Please sign in to comment.