Skip to content

Commit 9c7ae38

Browse files
committed
Remove the let_else feature gate from the testsuite
Result of running: rg -l "feature.let_else" src/test/ | xargs sed -s -i "s#^...feature.let_else..\$##" Plus manual tidy fixes.
1 parent 173eb6f commit 9c7ae38

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+62
-78
lines changed

src/test/ui/async-await/async-await-let-else.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// revisions: drop-tracking no-drop-tracking
33
// [drop-tracking] compile-flags: -Zdrop-tracking=yes
44
// [no-drop-tracking] compile-flags: -Zdrop-tracking=no
5-
#![feature(let_else)]
5+
66
use std::rc::Rc;
77

88
async fn foo(x: Option<bool>) {

src/test/ui/let-else/issue-100103.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// check-pass
33

44
#![feature(try_blocks)]
5-
#![feature(let_else)]
5+
66

77
fn main() {
88
let _: Result<i32, i32> = try {

src/test/ui/let-else/issue-94176.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// Issue #94176: wrong span for the error message of a mismatched type error,
22
// if the function uses a `let else` construct.
3-
#![feature(let_else)]
3+
44

55
pub fn test(a: Option<u32>) -> Option<u32> { //~ ERROR mismatched types
66
let Some(_) = a else { return None; };

src/test/ui/let-else/issue-99975.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// run-pass
22
// compile-flags: -C opt-level=3 -Zvalidate-mir
33

4-
#![feature(let_else)]
4+
55

66
fn return_result() -> Option<String> {
77
Some("ok".to_string())

src/test/ui/let-else/let-else-allow-in-expr.rs

-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
#![feature(let_else)]
2-
31
#![deny(unused_variables)]
42

53
fn main() {

src/test/ui/let-else/let-else-allow-in-expr.stderr

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
error: unused variable: `x`
2-
--> $DIR/let-else-allow-in-expr.rs:7:13
2+
--> $DIR/let-else-allow-in-expr.rs:5:13
33
|
44
LL | let x = 1;
55
| ^ help: if this is intentional, prefix it with an underscore: `_x`
66
|
77
note: the lint level is defined here
8-
--> $DIR/let-else-allow-in-expr.rs:3:9
8+
--> $DIR/let-else-allow-in-expr.rs:1:9
99
|
1010
LL | #![deny(unused_variables)]
1111
| ^^^^^^^^^^^^^^^^
1212

1313
error: unused variable: `x`
14-
--> $DIR/let-else-allow-in-expr.rs:29:9
14+
--> $DIR/let-else-allow-in-expr.rs:27:9
1515
|
1616
LL | let x = 1;
1717
| ^ help: if this is intentional, prefix it with an underscore: `_x`

src/test/ui/let-else/let-else-allow-unused.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// issue #89807
22

3-
#![feature(let_else)]
3+
44

55
#[deny(unused_variables)]
66

src/test/ui/let-else/let-else-binding-explicit-mut-annotated.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// from rfc2005 test suite
22

3-
#![feature(let_else)]
3+
44

55
// Verify the binding mode shifts - only when no `&` are auto-dereferenced is the
66
// final default binding mode mutable.

src/test/ui/let-else/let-else-binding-explicit-mut-borrow.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
#![feature(let_else)]
2-
31
// Slightly different from explicit-mut-annotated -- this won't show an error until borrowck.
42
// Should it show a type error instead?
53

4+
5+
66
fn main() {
77
let Some(n): &mut Option<i32> = &mut &Some(5i32) else {
88
//~^ ERROR cannot borrow data in a `&` reference as mutable

src/test/ui/let-else/let-else-binding-explicit-mut-pass.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// check-pass
22

3-
#![feature(let_else)]
3+
44

55
fn main() {
66
let Some(n) = &mut &mut Some(5i32) else { return; };

src/test/ui/let-else/let-else-binding-explicit-mut.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// from rfc2005 test suite
22

3-
#![feature(let_else)]
3+
44

55
// Verify the binding mode shifts - only when no `&` are auto-dereferenced is the
66
// final default binding mode mutable.

src/test/ui/let-else/let-else-binding-immutable.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// from rfc2005 test suite
22

3-
#![feature(let_else)]
3+
44

55
pub fn main() {
66
let Some(x) = &Some(3) else {

src/test/ui/let-else/let-else-bindings.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// run-pass
22
// adapted from src/test/ui/binding/if-let.rs
3-
#![feature(let_else)]
3+
44
#![allow(dead_code)]
55

66
fn none() -> bool {

src/test/ui/let-else/let-else-bool-binop-init.fixed

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// run-rustfix
22

3-
#![feature(let_else)]
3+
44

55
fn main() {
66
let true = (true && false) else { return }; //~ ERROR a `&&` expression cannot be directly assigned in `let...else`

src/test/ui/let-else/let-else-bool-binop-init.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// run-rustfix
22

3-
#![feature(let_else)]
3+
44

55
fn main() {
66
let true = true && false else { return }; //~ ERROR a `&&` expression cannot be directly assigned in `let...else`

src/test/ui/let-else/let-else-brace-before-else.fixed

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// run-rustfix
22

3-
#![feature(let_else)]
3+
44

55
fn main() {
66
let Some(1) = ({ Some(1) }) else {

src/test/ui/let-else/let-else-brace-before-else.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// run-rustfix
22

3-
#![feature(let_else)]
3+
44

55
fn main() {
66
let Some(1) = { Some(1) } else {

src/test/ui/let-else/let-else-check.rs

-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
#![feature(let_else)]
2-
31
#![deny(unused_variables)]
42

53
fn main() {

src/test/ui/let-else/let-else-check.stderr

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
error: unused variable: `x`
2-
--> $DIR/let-else-check.rs:14:13
2+
--> $DIR/let-else-check.rs:12:13
33
|
44
LL | let x = 1;
55
| ^ help: if this is intentional, prefix it with an underscore: `_x`
66
|
77
note: the lint level is defined here
8-
--> $DIR/let-else-check.rs:3:9
8+
--> $DIR/let-else-check.rs:1:9
99
|
1010
LL | #![deny(unused_variables)]
1111
| ^^^^^^^^^^^^^^^^
1212

1313
error: unused variable: `x`
14-
--> $DIR/let-else-check.rs:18:9
14+
--> $DIR/let-else-check.rs:16:9
1515
|
1616
LL | let x = 1;
1717
| ^ help: if this is intentional, prefix it with an underscore: `_x`

src/test/ui/let-else/let-else-deref-coercion-annotated.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
// Deref/DerefMut to Bar. You can do this with an irrefutable binding, so it should work with
77
// let-else too.
88

9-
#![feature(let_else)]
9+
1010
use std::ops::{Deref, DerefMut};
1111

1212
struct Foo(Bar);

src/test/ui/let-else/let-else-deref-coercion.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
// We attempt to `let Bar::Present(_) = foo else { ... }` where foo is meant to Deref/DerefMut to
44
// Bar. This fails, you must add a type annotation like `let _: &mut Bar = _ else { ... }`
55

6-
#![feature(let_else)]
6+
77
use std::ops::{Deref, DerefMut};
88

99
struct Foo(Bar);

src/test/ui/let-else/let-else-destructuring.rs

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
#![feature(let_else)]
21
#[derive(Debug)]
32
enum Foo {
43
Done,

src/test/ui/let-else/let-else-destructuring.stderr

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
error: <assignment> ... else { ... } is not allowed
2-
--> $DIR/let-else-destructuring.rs:11:9
2+
--> $DIR/let-else-destructuring.rs:10:9
33
|
44
LL | &Foo::Nested(Some(value)) = value else { break };
55
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
66

77
error[E0070]: invalid left-hand side of assignment
8-
--> $DIR/let-else-destructuring.rs:11:35
8+
--> $DIR/let-else-destructuring.rs:10:35
99
|
1010
LL | &Foo::Nested(Some(value)) = value else { break };
1111
| ------------------------- ^

src/test/ui/let-else/let-else-drop-order.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
// This is important as it's easy to update the stdout file
1717
// with a --bless and miss the impact of that change.
1818

19-
#![feature(let_else)]
19+
2020
#![allow(irrefutable_let_patterns)]
2121

2222
use std::cell::RefCell;

src/test/ui/let-else/let-else-if.rs

-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
#![feature(let_else)]
2-
31
fn main() {
42
let Some(_) = Some(()) else if true {
53
//~^ ERROR conditional `else if` is not supported for `let...else`

src/test/ui/let-else/let-else-if.stderr

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
error: conditional `else if` is not supported for `let...else`
2-
--> $DIR/let-else-if.rs:4:33
2+
--> $DIR/let-else-if.rs:2:33
33
|
44
LL | let Some(_) = Some(()) else if true {
55
| ^^ expected `{`

src/test/ui/let-else/let-else-irrefutable.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// check-pass
22

3-
#![feature(let_else)]
3+
44

55
fn main() {
66
let x = 1 else { return }; //~ WARN irrefutable `let...else` pattern

src/test/ui/let-else/let-else-missing-semicolon.rs

-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
#![feature(let_else)]
2-
31
fn main() {
42
let Some(x) = Some(1) else {
53
return;

src/test/ui/let-else/let-else-missing-semicolon.stderr

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
error: expected `;`, found keyword `let`
2-
--> $DIR/let-else-missing-semicolon.rs:6:6
2+
--> $DIR/let-else-missing-semicolon.rs:4:6
33
|
44
LL | }
55
| ^ help: add `;` here
66
LL | let _ = "";
77
| --- unexpected token
88

99
error: expected `;`, found `}`
10-
--> $DIR/let-else-missing-semicolon.rs:10:6
10+
--> $DIR/let-else-missing-semicolon.rs:8:6
1111
|
1212
LL | }
1313
| ^ help: add `;` here

src/test/ui/let-else/let-else-no-double-error.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// from rfc2005 test suite
22

3-
#![feature(let_else)]
3+
44

55
// Without caching type lookups in FnCtxt.resolve_ty_and_def_ufcs
66
// the error below would be reported twice (once when checking

src/test/ui/let-else/let-else-non-copy.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
//
1111
// The move was due to mir::Place being Copy, but mir::VarDebugInfoContents not being Copy.
1212

13-
#![feature(let_else)]
13+
1414

1515
#[derive(Copy, Clone)]
1616
struct Copyable;

src/test/ui/let-else/let-else-non-diverging.rs

-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
#![feature(let_else)]
2-
31
fn main() {
42
let Some(x) = Some(1) else { //~ ERROR does not diverge
53
Some(2)

src/test/ui/let-else/let-else-non-diverging.stderr

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
error[E0308]: `else` clause of `let...else` does not diverge
2-
--> $DIR/let-else-non-diverging.rs:4:32
2+
--> $DIR/let-else-non-diverging.rs:2:32
33
|
44
LL | let Some(x) = Some(1) else {
55
| ________________________________^
@@ -13,7 +13,7 @@ LL | | };
1313
= help: ...or use `match` instead of `let...else`
1414

1515
error[E0308]: `else` clause of `let...else` does not diverge
16-
--> $DIR/let-else-non-diverging.rs:7:32
16+
--> $DIR/let-else-non-diverging.rs:5:32
1717
|
1818
LL | let Some(x) = Some(1) else {
1919
| ________________________________^
@@ -29,7 +29,7 @@ LL | | };
2929
= help: ...or use `match` instead of `let...else`
3030

3131
error[E0308]: `else` clause of `let...else` does not diverge
32-
--> $DIR/let-else-non-diverging.rs:12:32
32+
--> $DIR/let-else-non-diverging.rs:10:32
3333
|
3434
LL | let Some(x) = Some(1) else { Some(2) };
3535
| ^^^^^^^^^^^ expected `!`, found enum `Option`

src/test/ui/let-else/let-else-ref-bindings-pass.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// check-pass
22

3-
#![feature(let_else)]
3+
44
#![allow(unused_variables)]
55

66
fn ref_() {

src/test/ui/let-else/let-else-ref-bindings.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
#![feature(let_else)]
21
#![allow(unused_variables)]
32

3+
44
fn ref_() {
55
let bytes: Vec<u8> = b"Hello"[..].to_vec();
66
let some = Some(bytes);

src/test/ui/let-else/let-else-run-pass.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// run-pass
22

3-
#![feature(let_else)]
3+
44

55
fn main() {
66
#[allow(dead_code)]

src/test/ui/let-else/let-else-scope.rs

-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
#![feature(let_else)]
2-
31
fn main() {
42
let Some(x) = Some(2) else {
53
panic!("{}", x); //~ ERROR cannot find value `x` in this scope

src/test/ui/let-else/let-else-scope.stderr

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
error[E0425]: cannot find value `x` in this scope
2-
--> $DIR/let-else-scope.rs:5:22
2+
--> $DIR/let-else-scope.rs:3:22
33
|
44
LL | panic!("{}", x);
55
| ^ not found in this scope

src/test/ui/let-else/let-else-slicing-error.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// issue #92069
2-
#![feature(let_else)]
2+
33

44
fn main() {
55
let nums = vec![5, 4, 3, 2, 1];

src/test/ui/let-else/let-else-source-expr-nomove-pass.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// run-pass
22
// issue #89688
33

4-
#![feature(let_else)]
4+
55

66
fn example_let_else(value: Option<String>) {
77
let Some(inner) = value else {

src/test/ui/let-else/let-else-temp-borrowck.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
// from issue #93951, where borrowck complained the temporary that `foo(&x)` was stored in was to
44
// be dropped sometime after `x` was. It then suggested adding a semicolon that was already there.
55

6-
#![feature(let_else)]
6+
77
use std::fmt::Debug;
88

99
fn foo<'a>(x: &'a str) -> Result<impl Debug + 'a, ()> {

src/test/ui/let-else/let-else-temporary-lifetime.rs

-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
// run-pass
22
// compile-flags: -Zvalidate-mir
3-
#![feature(let_else)]
43

54
use std::fmt::Display;
65
use std::rc::Rc;

src/test/ui/let-else/let-else-then-diverge.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// popped up in in #94012, where an alternative desugaring was
33
// causing unreachable code errors
44

5-
#![feature(let_else)]
5+
66
#![deny(unused_variables)]
77
#![deny(unreachable_code)]
88

0 commit comments

Comments
 (0)