diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:19:03 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:19:03 +0000 |
commit | 64d98f8ee037282c35007b64c2649055c56af1db (patch) | |
tree | 5492bcf97fce41ee1c0b1cc2add283f3e66cdab0 /src/test/ui/deriving/deriving-all-codegen.rs | |
parent | Adding debian version 1.67.1+dfsg1-1. (diff) | |
download | rustc-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.rs | 106 |
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, -} |