summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorBastian Kauschke <bastian_kauschke@hotmail.de>2020-06-02 00:23:47 +0200
committerMark Rousskov <mark.simulacrum@gmail.com>2020-06-13 15:49:16 -0400
commitf0fb9d2aa616d641946fed490ecebe1505104dfe (patch)
tree4aca36f6e16687b7b6a25fca444bfa6d194ca220 /src/test
parentd4ab909e473d7c03ed9f8635df682300112a5049 (diff)
downloadrust-f0fb9d2aa616d641946fed490ecebe1505104dfe.tar.gz
rust-f0fb9d2aa616d641946fed490ecebe1505104dfe.zip
normalize adt fields during structural match check
Diffstat (limited to 'src/test')
-rw-r--r--src/test/ui/match/issue-72896.rs23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/test/ui/match/issue-72896.rs b/src/test/ui/match/issue-72896.rs
new file mode 100644
index 00000000000..3a8b8203731
--- /dev/null
+++ b/src/test/ui/match/issue-72896.rs
@@ -0,0 +1,23 @@
+// run-pass
+trait EnumSetType {
+    type Repr;
+}
+
+enum Enum8 { }
+impl EnumSetType for Enum8 {
+    type Repr = u8;
+}
+
+#[derive(PartialEq, Eq)]
+struct EnumSet<T: EnumSetType> {
+    __enumset_underlying: T::Repr,
+}
+
+const CONST_SET: EnumSet<Enum8> = EnumSet { __enumset_underlying: 3 };
+
+fn main() {
+    match CONST_SET {
+        CONST_SET => { /* ok */ }
+        _ => panic!("match fell through?"),
+    }
+}