about summary refs log tree commit diff
path: root/tests/ui/enum
diff options
context:
space:
mode:
authorCaio <c410.f3r@gmail.com>2024-04-21 15:43:43 -0300
committerCaio <c410.f3r@gmail.com>2024-04-21 15:43:43 -0300
commit3aaa3941fd62fb4aeea559eafe8a6aa6472eb87d (patch)
tree370d74ef8239f923cae41848afd9e71648850de3 /tests/ui/enum
parentfecb7b43093e4fa59e2d366e88bf0085ce350f29 (diff)
downloadrust-3aaa3941fd62fb4aeea559eafe8a6aa6472eb87d.tar.gz
rust-3aaa3941fd62fb4aeea559eafe8a6aa6472eb87d.zip
Move some tests
Diffstat (limited to 'tests/ui/enum')
-rw-r--r--tests/ui/enum/auxiliary/issue-19340-1.rs3
-rw-r--r--tests/ui/enum/issue-19340-1.rs17
-rw-r--r--tests/ui/enum/issue-19340-2.rs24
-rw-r--r--tests/ui/enum/issue-23304-1.rs25
-rw-r--r--tests/ui/enum/issue-23304-2.rs13
5 files changed, 82 insertions, 0 deletions
diff --git a/tests/ui/enum/auxiliary/issue-19340-1.rs b/tests/ui/enum/auxiliary/issue-19340-1.rs
new file mode 100644
index 00000000000..39ee36b8b91
--- /dev/null
+++ b/tests/ui/enum/auxiliary/issue-19340-1.rs
@@ -0,0 +1,3 @@
+pub enum Homura {
+    Madoka { name: String },
+}
diff --git a/tests/ui/enum/issue-19340-1.rs b/tests/ui/enum/issue-19340-1.rs
new file mode 100644
index 00000000000..c1ba0d23b6f
--- /dev/null
+++ b/tests/ui/enum/issue-19340-1.rs
@@ -0,0 +1,17 @@
+//@ run-pass
+#![allow(unused_variables)]
+//@ aux-build:issue-19340-1.rs
+
+//@ pretty-expanded FIXME #23616
+
+extern crate issue_19340_1 as lib;
+
+use lib::Homura;
+
+fn main() {
+    let homura = Homura::Madoka { name: "Kaname".to_string() };
+
+    match homura {
+        Homura::Madoka { name } => (),
+    };
+}
diff --git a/tests/ui/enum/issue-19340-2.rs b/tests/ui/enum/issue-19340-2.rs
new file mode 100644
index 00000000000..dd1bda78a97
--- /dev/null
+++ b/tests/ui/enum/issue-19340-2.rs
@@ -0,0 +1,24 @@
+//@ run-pass
+#![allow(unused_variables)]
+//@ pretty-expanded FIXME #23616
+
+enum Homura {
+    Madoka {
+        name: String,
+        age: u32,
+    },
+}
+
+fn main() {
+    let homura = Homura::Madoka {
+        name: "Akemi".to_string(),
+        age: 14,
+    };
+
+    match homura {
+        Homura::Madoka {
+            name,
+            age,
+        } => (),
+    };
+}
diff --git a/tests/ui/enum/issue-23304-1.rs b/tests/ui/enum/issue-23304-1.rs
new file mode 100644
index 00000000000..6b80646704a
--- /dev/null
+++ b/tests/ui/enum/issue-23304-1.rs
@@ -0,0 +1,25 @@
+//@ run-pass
+#![allow(dead_code)]
+
+#[repr(u8)]
+#[allow(dead_code)]
+enum ValueType {
+    DOUBLE              = 0x00,
+    INT32               = 0x01,
+}
+
+#[repr(u32)]
+enum ValueTag {
+    INT32                = 0x1FFF0u32 | (ValueType::INT32 as u32),
+    X,
+}
+
+#[repr(u64)]
+enum ValueShiftedTag {
+    INT32        = ValueTag::INT32 as u64,
+    X,
+}
+
+fn main() {
+    println!("{}", ValueTag::INT32 as u32);
+}
diff --git a/tests/ui/enum/issue-23304-2.rs b/tests/ui/enum/issue-23304-2.rs
new file mode 100644
index 00000000000..17eb79e93d2
--- /dev/null
+++ b/tests/ui/enum/issue-23304-2.rs
@@ -0,0 +1,13 @@
+//@ run-pass
+#![allow(dead_code)]
+
+enum X { A = 42 as isize }
+
+enum Y { A = X::A as isize }
+
+fn main() {
+    let x = X::A;
+    let x = x as isize;
+    assert_eq!(x, 42);
+    assert_eq!(Y::A as isize, 42);
+}