Commit Graph

19 Commits

Author SHA1 Message Date
Oli Scherer 36728f1cdd Replace `mir_built` query with a hook and use mir_const everywhere instead 2024-03-20 09:05:09 +00:00
许杰友 Jieyou Xu (Joe) ec2cc761bc
[AUTO-GENERATED] Migrate ui tests from `//` to `//@` directives 2024-02-16 20:02:50 +00:00
Guillaume Boisseau cc7edbc1e4
Rollup merge of #120479 - estebank:issue-61788, r=wesleywiser
Suggest turning `if let` into irrefutable `let` if appropriate

When encountering an `if let` tail expression without an `else` arm for an enum with a single variant, suggest writing an irrefutable `let` binding instead.

```
error[E0317]: `if` may be missing an `else` clause
  --> $DIR/irrefutable-if-let-without-else.rs:8:5
   |
LL |   fn foo(x: Enum) -> i32 {
   |                      --- expected `i32` because of this return type
LL | /     if let Enum::Variant(value) = x {
LL | |         value
LL | |     }
   | |_____^ expected `i32`, found `()`
   |
   = note: `if` expressions without `else` evaluate to `()`
   = help: consider adding an `else` block that evaluates to the expected type
help: consider using an irrefutable `let` binding instead
   |
LL ~     let Enum::Variant(value) = x;
LL ~         value
   |
```

Fix #61788.
2024-02-07 18:24:43 +01:00
Esteban Küber a939bad513 Suggest turnging `if let` into irrefutable `let` if appropriate
When encountering an `if let` tail expression without an `else` arm for an
enum with a single variant, suggest writing an irrefutable `let` binding
instead.

```
error[E0317]: `if` may be missing an `else` clause
  --> $DIR/irrefutable-if-let-without-else.rs:8:5
   |
LL |   fn foo(x: Enum) -> i32 {
   |                      --- expected `i32` because of this return type
LL | /     if let Enum::Variant(value) = x {
LL | |         value
LL | |     }
   | |_____^ expected `i32`, found `()`
   |
   = note: `if` expressions without `else` evaluate to `()`
   = help: consider adding an `else` block that evaluates to the expected type
help: consider using an irrefutable `let` binding instead
   |
LL ~     let Enum::Variant(value) = x;
LL ~         value
   |
```

Fix #61788.
2024-02-06 03:53:06 +00:00
Ralf Jung 1254ee48c4 remove illegal_floating_point_literal_pattern lint 2024-01-26 17:25:02 +01:00
Matthew Jasper 26f48b4cba Stabilize THIR unsafeck 2024-01-05 10:00:59 +00:00
Jake Goulding 53eca9fa87 Adjust compiler tests for unused_tuple_struct_fields -> dead_code 2024-01-02 15:34:37 -05:00
Nilstrieb 41e8d152dc Show number in error message even for one error
Co-authored-by: Adrian <adrian.iosdev@gmail.com>
2023-11-24 19:15:52 +01:00
Jubilee Young e9a009fd1a Remove asmjs from tests 2023-10-28 23:11:03 -07:00
Camille GILLOT 687659f33f Add diverging match guard test. 2023-10-24 15:30:17 +00:00
Camille GILLOT ec28dc7aa7 Use `PlaceMention` for match scrutinees. 2023-10-24 15:30:17 +00:00
Matthew Jasper b49140295c Add more if let guard tests 2023-09-19 12:48:40 +00:00
bindsdev 107d480892 improve error notes for packed struct reference diagnostic 2023-04-28 20:28:56 -05:00
Pietro Albini 64af509377
remove invalid ignore-pretty 2023-04-03 09:24:11 +02:00
Camille GILLOT e107194b66 Ignore AscribeUserType in unsafeck to avoid duplicate diagnostics. 2023-03-09 17:45:13 +00:00
Camille GILLOT 4462bb54e3 Introduce a no-op PlaceMention statement for `let _ =`. 2023-03-09 17:45:13 +00:00
Camille GILLOT be758ef5ab Add ui test. 2023-03-09 17:45:13 +00:00
Ralf Jung dfc4a7b2d0 make unaligned_reference a hard error 2023-01-31 20:28:11 +01:00
Albert Larsan cf2dff2b1e
Move /src/test to /tests 2023-01-11 09:32:08 +00:00