diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:02:58 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:02:58 +0000 |
commit | 698f8c2f01ea549d77d7dc3338a12e04c11057b9 (patch) | |
tree | 173a775858bd501c378080a10dca74132f05bc50 /src/test/ui/structs-enums/small-enums-with-fields.rs | |
parent | Initial commit. (diff) | |
download | rustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.tar.xz rustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.zip |
Adding upstream version 1.64.0+dfsg1.upstream/1.64.0+dfsg1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | src/test/ui/structs-enums/small-enums-with-fields.rs | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/test/ui/structs-enums/small-enums-with-fields.rs b/src/test/ui/structs-enums/small-enums-with-fields.rs new file mode 100644 index 000000000..565ec1bd4 --- /dev/null +++ b/src/test/ui/structs-enums/small-enums-with-fields.rs @@ -0,0 +1,33 @@ +// run-pass +use std::mem::size_of; + +#[derive(PartialEq, Debug)] +enum Either<T, U> { Left(T), Right(U) } + +macro_rules! check { + ($t:ty, $sz:expr, $($e:expr, $s:expr),*) => {{ + assert_eq!(size_of::<$t>(), $sz); + $({ + static S: $t = $e; + let v: $t = $e; + assert_eq!(S, v); + assert_eq!(format!("{:?}", v), $s); + assert_eq!(format!("{:?}", S), $s); + });* + }} +} + +pub fn main() { + check!(Option<u8>, 2, + None, "None", + Some(129), "Some(129)"); + check!(Option<i16>, 4, + None, "None", + Some(-20000), "Some(-20000)"); + check!(Either<u8, i8>, 2, + Either::Left(132), "Left(132)", + Either::Right(-32), "Right(-32)"); + check!(Either<u8, i16>, 4, + Either::Left(132), "Left(132)", + Either::Right(-20000), "Right(-20000)"); +} |