diff options
| author | Manish Goregaokar <manishsmail@gmail.com> | 2020-07-14 07:39:02 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-07-14 07:39:02 -0700 |
| commit | b9a0f5803ecd6dfd66dcd921e31d26a57faa8aad (patch) | |
| tree | 40ace3824f6b6c659ab10b38a293b5b7011a2234 /src/librustc_error_codes/error_codes | |
| parent | 79894dfbacf76ba7e670fc5bff2fa7f2f3c06597 (diff) | |
| parent | 5daedea3dbeb8fb2639d3d142b008135f4fd2b43 (diff) | |
| download | rust-b9a0f5803ecd6dfd66dcd921e31d26a57faa8aad.tar.gz rust-b9a0f5803ecd6dfd66dcd921e31d26a57faa8aad.zip | |
Rollup merge of #74173 - estebank:struct-pat-as-enum, r=petrochenkov
Detect tuple struct incorrectly used as struct pat Subpart of #74005. r? @petrochenkov
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), +} +``` |
