mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-26 16:54:01 +00:00
b092b5d02b
implement #123558
37 lines
1.4 KiB
Plaintext
37 lines
1.4 KiB
Plaintext
error[E0599]: the method `clone` exists for struct `Foo<NonCopy>`, but its trait bounds were not satisfied
|
|
--> $DIR/deriving-with-repr-packed-2.rs:18:11
|
|
|
|
|
LL | pub struct Foo<T>(T, T, T);
|
|
| ----------------- method `clone` not found for this struct because it doesn't satisfy `Foo<NonCopy>: Clone`
|
|
LL |
|
|
LL | struct NonCopy;
|
|
| -------------- doesn't satisfy `NonCopy: Clone` or `NonCopy: Copy`
|
|
...
|
|
LL | _ = x.clone();
|
|
| ^^^^^ method cannot be called on `Foo<NonCopy>` due to unsatisfied trait bounds
|
|
|
|
|
note: there's an earlier shadowed binding `x` of type `Foo<u32>` that has method `clone` available
|
|
--> $DIR/deriving-with-repr-packed-2.rs:13:9
|
|
|
|
|
LL | let x: Foo<u32> = Foo(1, 2, 3);
|
|
| ^ `x` of type `Foo<u32>` that has method `clone` defined earlier here
|
|
...
|
|
LL | let x: Foo<NonCopy> = Foo(NonCopy, NonCopy, NonCopy);
|
|
| - earlier `x` shadowed here with type `Foo<NonCopy>`
|
|
note: the following trait bounds were not satisfied:
|
|
`NonCopy: Clone`
|
|
`NonCopy: Copy`
|
|
--> $DIR/deriving-with-repr-packed-2.rs:5:16
|
|
|
|
|
LL | #[derive(Copy, Clone, Default, PartialEq, Eq)]
|
|
| ^^^^^ unsatisfied trait bound introduced in this `derive` macro
|
|
help: consider annotating `NonCopy` with `#[derive(Clone, Copy)]`
|
|
|
|
|
LL + #[derive(Clone, Copy)]
|
|
LL | struct NonCopy;
|
|
|
|
|
|
|
error: aborting due to 1 previous error
|
|
|
|
For more information about this error, try `rustc --explain E0599`.
|