diff options
Diffstat (limited to 'src/test/ui/union/union-with-drop-fields-lint-rpass.rs')
| -rw-r--r-- | src/test/ui/union/union-with-drop-fields-lint-rpass.rs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/test/ui/union/union-with-drop-fields-lint-rpass.rs b/src/test/ui/union/union-with-drop-fields-lint-rpass.rs new file mode 100644 index 00000000000..4dbeb7c1e7e --- /dev/null +++ b/src/test/ui/union/union-with-drop-fields-lint-rpass.rs @@ -0,0 +1,32 @@ +// run-pass + +#![feature(untagged_unions)] +#![allow(dead_code)] +#![allow(unions_with_drop_fields)] + +union U { + a: u8, // OK +} + +union W { + a: String, // OK + b: String, // OK +} + +struct S(String); + +// `S` doesn't implement `Drop` trait, but still has non-trivial destructor +union Y { + a: S, // OK +} + +// We don't know if `T` is trivially-destructable or not until trans +union J<T> { + a: T, // OK +} + +union H<T: Copy> { + a: T, // OK +} + +fn main() {} |
