mirror of
https://github.com/rust-lang/rust.git
synced 2025-06-08 13:18:32 +00:00
35 lines
736 B
Rust
35 lines
736 B
Rust
//! This test checks that calling `.clone()` on a type that does
|
|
//! not implement the `Clone` trait results in a compilation error.
|
|
//! The `NotClone` and AlsoNotClone structs do not derive or
|
|
//! implement `Clone`, so attempting to clone them should fail.
|
|
|
|
struct NotClone {
|
|
i: isize,
|
|
}
|
|
|
|
fn not_clone(i: isize) -> NotClone {
|
|
NotClone { i }
|
|
}
|
|
|
|
struct AlsoNotClone {
|
|
i: isize,
|
|
j: NotClone,
|
|
}
|
|
|
|
fn also_not_clone(i: isize) -> AlsoNotClone {
|
|
AlsoNotClone {
|
|
i,
|
|
j: NotClone { i: i },
|
|
}
|
|
}
|
|
|
|
fn main() {
|
|
let x = not_clone(10);
|
|
let _y = x.clone();
|
|
//~^ ERROR no method named `clone` found
|
|
|
|
let x = also_not_clone(10);
|
|
let _y = x.clone();
|
|
//~^ ERROR no method named `clone` found
|
|
}
|