Don't mark if_let_guard as an incomplete feature

This commit is contained in:
Léo Lanteri Thauvin 2021-08-11 16:10:05 +02:00
parent 73d96b090b
commit dabdd6de1f
11 changed files with 13 additions and 19 deletions

View File

@ -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),

View File

@ -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] }

View File

@ -1,5 +1,4 @@
#![feature(if_let_guard)]
#![allow(incomplete_features)]
#![deny(irrefutable_let_patterns)]

View File

@ -1,11 +1,11 @@
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)]
| ^^^^^^^^^^^^^^^^^^^^^^^^
@ -13,7 +13,7 @@ LL | #![deny(irrefutable_let_patterns)]
= 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 {
| ^^^^^^^^^
@ -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 => {}
| ^

View File

@ -1,5 +1,4 @@
#![feature(if_let_guard)]
#![allow(incomplete_features)]
fn main() {
match Some(None) {

View File

@ -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

View File

@ -1,7 +1,6 @@
// run-pass
#![feature(if_let_guard)]
#![allow(incomplete_features)]
enum Foo {
Bar,

View File

@ -1,5 +1,4 @@
#![feature(if_let_guard)]
#![allow(incomplete_features)]
fn ok() -> Result<Option<bool>, ()> {
Ok(Some(true))

View File

@ -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`
@ -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

View File

@ -1,5 +1,4 @@
#![feature(if_let_guard)]
#![allow(incomplete_features)]
#[deny(irrefutable_let_patterns)]
fn irrefutable_let_guard() {

View File

@ -1,11 +1,11 @@
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)]
| ^^^^^^^^^^^^^^^^^^^^^^^^
@ -13,13 +13,13 @@ LL | #[deny(irrefutable_let_patterns)]
= 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)]
| ^^^^^^^^^^^^^^^^^^^^