diff options
| author | Esteban Küber <esteban@kuber.com.ar> | 2020-07-08 19:39:26 -0700 |
|---|---|---|
| committer | Esteban Küber <esteban@kuber.com.ar> | 2020-07-12 10:34:48 -0700 |
| commit | 5daedea3dbeb8fb2639d3d142b008135f4fd2b43 (patch) | |
| tree | 60c642b2c04e536814c0254837012b3028b8d223 /src/librustc_error_codes/error_codes | |
| parent | 346aec9b02f3c74f3fce97fd6bda24709d220e49 (diff) | |
| download | rust-5daedea3dbeb8fb2639d3d142b008135f4fd2b43.tar.gz rust-5daedea3dbeb8fb2639d3d142b008135f4fd2b43.zip | |
Detect tuple struct incorrectly used as struct pat
Diffstat (limited to 'src/librustc_error_codes/error_codes')
| -rw-r--r-- | src/librustc_error_codes/error_codes/E0769.md | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/librustc_error_codes/error_codes/E0769.md b/src/librustc_error_codes/error_codes/E0769.md new file mode 100644 index 00000000000..d1995be9899 --- /dev/null +++ b/src/librustc_error_codes/error_codes/E0769.md @@ -0,0 +1,39 @@ +A tuple struct or tuple variant was used in a pattern as if it were a +struct or struct variant. + +Erroneous code example: + +```compile_fail,E0769 +enum E { + A(i32), +} +let e = E::A(42); +match e { + E::A { number } => println!("{}", x), +} +``` + +To fix this error, you can use the tuple pattern: + +``` +# enum E { +# A(i32), +# } +# let e = E::A(42); +match e { + E::A(number) => println!("{}", number), +} +``` + +Alternatively, you can also use the struct pattern by using the correct +field names and binding them to new identifiers: + +``` +# enum E { +# A(i32), +# } +# let e = E::A(42); +match e { + E::A { 0: number } => println!("{}", number), +} +``` |
