diff options
author | Liam Naddell <liam.naddell@mail.utoronto.ca> | 2024-08-03 01:36:06 -0400 |
---|---|---|
committer | Arthur Cohen <arthur.cohen@embecosm.com> | 2025-03-19 15:32:03 +0100 |
commit | 04bc5a98a1da2e5cceefede34950d088e7923f06 (patch) | |
tree | 0844b53aa5d49f5124a2ee8da5cf1207bd638991 /gcc/testsuite | |
parent | ad3fc42abd84b7fc40e78c3a83b883c9b83af22d (diff) | |
download | gcc-04bc5a98a1da2e5cceefede34950d088e7923f06.zip gcc-04bc5a98a1da2e5cceefede34950d088e7923f06.tar.gz gcc-04bc5a98a1da2e5cceefede34950d088e7923f06.tar.bz2 |
gccrs: [gccrs#2324] Add error message for E0532
gcc/rust/ChangeLog:
* typecheck/rust-hir-type-check-pattern.cc:
Emit E0532 when trying to reference a Tuple or Struct variant
using a non Tuple or Struct pattern.
gcc/testsuite/ChangeLog:
* rust/compile/issue-2324-1.rs:
add test for E0532 with tuple enum variant
* rust/compile/issue-2324-2.rs:
add test for E0532 with struct enum variant
Signed-off-by: Liam Naddell <liam.naddell@mail.utoronto.ca>
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/rust/compile/issue-2324-1.rs | 19 | ||||
-rw-r--r-- | gcc/testsuite/rust/compile/issue-2324-2.rs | 19 |
2 files changed, 38 insertions, 0 deletions
diff --git a/gcc/testsuite/rust/compile/issue-2324-1.rs b/gcc/testsuite/rust/compile/issue-2324-1.rs new file mode 100644 index 0000000..afce1f3 --- /dev/null +++ b/gcc/testsuite/rust/compile/issue-2324-1.rs @@ -0,0 +1,19 @@ +enum State { + Succeeded, + Failed(u32), +} + +fn print_on_failure(state: &State) { + match *state { + State::Succeeded => (), + State::Failed => (), // { dg-error "expected unit struct, unit variant or constant, found tuple variant" } + _ => () + } +} + +fn main() { + let b = State::Failed(1); + + print_on_failure(&b); + +} diff --git a/gcc/testsuite/rust/compile/issue-2324-2.rs b/gcc/testsuite/rust/compile/issue-2324-2.rs new file mode 100644 index 0000000..5ef4014 --- /dev/null +++ b/gcc/testsuite/rust/compile/issue-2324-2.rs @@ -0,0 +1,19 @@ +enum State { + Succeeded, + Failed { x: u32 }, +} + +fn print_on_failure(state: &State) { + match *state { + State::Succeeded => (), + State::Failed => (), // { dg-error "expected unit struct, unit variant or constant, found tuple variant" } + _ => () + } +} + +fn main() { + let b = State::Failed{x: 1}; + + print_on_failure(&b); + +} |