Files
rust/tests/ui/derives/clone-copy/derive-clone-basic.rs
T
2026-04-22 20:22:40 +00:00

66 lines
1.0 KiB
Rust

//! Make sure that `derive(Clone)` works for simple structs and enums.
//@ run-pass
#![allow(dead_code)]
#[derive(Clone)]
enum SimpleEnum {
A,
B(()),
C,
}
#[derive(Clone)]
enum GenericEnum<T, U> {
A(T),
B(T, U),
C,
}
#[derive(Clone)]
struct TupleStruct((), ());
#[derive(Clone)]
struct GenericStruct<T> {
foo: (),
bar: (),
baz: T,
}
#[derive(Clone)]
struct GenericTupleStruct<T>(T, ());
#[derive(Clone)]
struct ManyPrimitives {
_int: isize,
_i8: i8,
_i16: i16,
_i32: i32,
_i64: i64,
_uint: usize,
_u8: u8,
_u16: u16,
_u32: u32,
_u64: u64,
_f32: f32,
_f64: f64,
_bool: bool,
_char: char,
_nil: (),
}
// Regression test for issue #30244
#[derive(Copy, Clone)]
struct Array {
arr: [[u8; 256]; 4],
}
pub fn main() {
let _ = SimpleEnum::A.clone();
let _ = GenericEnum::A::<isize, isize>(1).clone();
let _ = GenericStruct { foo: (), bar: (), baz: 1 }.clone();
let _ = GenericTupleStruct(1, ()).clone();
}