summaryrefslogtreecommitdiffstats
path: root/src/test/ui/deriving/deriving-all-codegen.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:03 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:03 +0000
commit64d98f8ee037282c35007b64c2649055c56af1db (patch)
tree5492bcf97fce41ee1c0b1cc2add283f3e66cdab0 /src/test/ui/deriving/deriving-all-codegen.rs
parentAdding debian version 1.67.1+dfsg1-1. (diff)
downloadrustc-64d98f8ee037282c35007b64c2649055c56af1db.tar.xz
rustc-64d98f8ee037282c35007b64c2649055c56af1db.zip
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/test/ui/deriving/deriving-all-codegen.rs')
-rw-r--r--src/test/ui/deriving/deriving-all-codegen.rs106
1 files changed, 0 insertions, 106 deletions
diff --git a/src/test/ui/deriving/deriving-all-codegen.rs b/src/test/ui/deriving/deriving-all-codegen.rs
deleted file mode 100644
index ba7809413..000000000
--- a/src/test/ui/deriving/deriving-all-codegen.rs
+++ /dev/null
@@ -1,106 +0,0 @@
-// check-pass
-// compile-flags: -Zunpretty=expanded
-// edition:2021
-//
-// This test checks the code generated for all[*] the builtin derivable traits
-// on a variety of structs and enums. It protects against accidental changes to
-// the generated code, and makes deliberate changes to the generated code
-// easier to review.
-//
-// [*] It excludes `Copy` in some cases, because that changes the code
-// generated for `Clone`.
-//
-// [*] It excludes `RustcEncodable` and `RustDecodable`, which are obsolete and
-// also require the `rustc_serialize` crate.
-
-#![crate_type = "lib"]
-#![allow(dead_code)]
-#![allow(deprecated)]
-
-// Empty struct.
-#[derive(Clone, Copy, Debug, Default, Hash, PartialEq, Eq, PartialOrd, Ord)]
-struct Empty;
-
-// A basic struct.
-#[derive(Clone, Copy, Debug, Default, Hash, PartialEq, Eq, PartialOrd, Ord)]
-struct Point {
- x: u32,
- y: u32,
-}
-
-// A large struct.
-#[derive(Clone, Debug, Default, Hash, PartialEq, Eq, PartialOrd, Ord)]
-struct Big {
- b1: u32, b2: u32, b3: u32, b4: u32, b5: u32, b6: u32, b7: u32, b8: u32,
-}
-
-// A struct with an unsized field. Some derives are not usable in this case.
-#[derive(Debug, Hash, PartialEq, Eq, PartialOrd, Ord)]
-struct Unsized([u32]);
-
-// A packed tuple struct that impls `Copy`.
-#[derive(Clone, Copy, Debug, Default, Hash, PartialEq, Eq, PartialOrd, Ord)]
-#[repr(packed)]
-struct PackedCopy(u32);
-
-// A packed tuple struct that does not impl `Copy`. Note that the alignment of
-// the field must be 1 for this code to be valid. Otherwise it triggers an
-// error "`#[derive]` can't be used on a `#[repr(packed)]` struct that does not
-// derive Copy (error E0133)" at MIR building time. This is a weird case and
-// it's possible that this struct is not supposed to work, but for now it does.
-#[derive(Clone, Debug, Default, Hash, PartialEq, Eq, PartialOrd, Ord)]
-#[repr(packed)]
-struct PackedNonCopy(u8);
-
-// An empty enum.
-#[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)]
-enum Enum0 {}
-
-// A single-variant enum.
-#[derive(Clone, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)]
-enum Enum1 {
- Single { x: u32 }
-}
-
-// A C-like, fieldless enum with a single variant.
-#[derive(Clone, Debug, Default, Hash, PartialEq, Eq, PartialOrd, Ord)]
-enum Fieldless1 {
- #[default]
- A,
-}
-
-// A C-like, fieldless enum.
-#[derive(Clone, Copy, Debug, Default, Hash, PartialEq, Eq, PartialOrd, Ord)]
-enum Fieldless {
- #[default]
- A,
- B,
- C,
-}
-
-// An enum with multiple fieldless and fielded variants.
-#[derive(Clone, Copy, Debug, Default, Hash, PartialEq, Eq, PartialOrd, Ord)]
-enum Mixed {
- #[default]
- P,
- Q,
- R(u32),
- S { d1: Option<u32>, d2: Option<i32> },
-}
-
-// An enum with no fieldless variants. Note that `Default` cannot be derived
-// for this enum.
-#[derive(Clone, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)]
-enum Fielded {
- X(u32),
- Y(bool),
- Z(Option<i32>),
-}
-
-// A union. Most builtin traits are not derivable for unions.
-#[derive(Clone, Copy)]
-pub union Union {
- pub b: bool,
- pub u: u32,
- pub i: i32,
-}