parent
11909e3588
commit
0eea3346d2
18
src/test/ui/suggestions/derive-clone-for-eq.fixed
Normal file
18
src/test/ui/suggestions/derive-clone-for-eq.fixed
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
// run-rustfix
|
||||||
|
// https://github.com/rust-lang/rust/issues/79076
|
||||||
|
|
||||||
|
use std::cmp::PartialEq;
|
||||||
|
|
||||||
|
#[derive(Clone, Eq)] //~ ERROR [E0277]
|
||||||
|
pub struct Struct<T: std::clone::Clone>(T);
|
||||||
|
|
||||||
|
impl<T: Clone, U> PartialEq<U> for Struct<T>
|
||||||
|
where
|
||||||
|
U: Into<Struct<T>> + Clone
|
||||||
|
{
|
||||||
|
fn eq(&self, _other: &U) -> bool {
|
||||||
|
todo!()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {}
|
18
src/test/ui/suggestions/derive-clone-for-eq.rs
Normal file
18
src/test/ui/suggestions/derive-clone-for-eq.rs
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
// run-rustfix
|
||||||
|
// https://github.com/rust-lang/rust/issues/79076
|
||||||
|
|
||||||
|
use std::cmp::PartialEq;
|
||||||
|
|
||||||
|
#[derive(Clone, Eq)] //~ ERROR [E0277]
|
||||||
|
pub struct Struct<T>(T);
|
||||||
|
|
||||||
|
impl<T: Clone, U> PartialEq<U> for Struct<T>
|
||||||
|
where
|
||||||
|
U: Into<Struct<T>> + Clone
|
||||||
|
{
|
||||||
|
fn eq(&self, _other: &U) -> bool {
|
||||||
|
todo!()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {}
|
25
src/test/ui/suggestions/derive-clone-for-eq.stderr
Normal file
25
src/test/ui/suggestions/derive-clone-for-eq.stderr
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
error[E0277]: the trait bound `T: Clone` is not satisfied
|
||||||
|
--> $DIR/derive-clone-for-eq.rs:6:17
|
||||||
|
|
|
||||||
|
LL | #[derive(Clone, Eq)]
|
||||||
|
| ^^ the trait `Clone` is not implemented for `T`
|
||||||
|
|
|
||||||
|
note: required because of the requirements on the impl of `PartialEq` for `Struct<T>`
|
||||||
|
--> $DIR/derive-clone-for-eq.rs:9:19
|
||||||
|
|
|
||||||
|
LL | impl<T: Clone, U> PartialEq<U> for Struct<T>
|
||||||
|
| ^^^^^^^^^^^^ ^^^^^^^^^
|
||||||
|
note: required by a bound in `Eq`
|
||||||
|
--> $SRC_DIR/core/src/cmp.rs:LL:COL
|
||||||
|
|
|
||||||
|
LL | pub trait Eq: PartialEq<Self> {
|
||||||
|
| ^^^^^^^^^^^^^^^ required by this bound in `Eq`
|
||||||
|
= note: this error originates in the derive macro `Eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||||
|
help: consider restricting type parameter `T`
|
||||||
|
|
|
||||||
|
LL | pub struct Struct<T: std::clone::Clone>(T);
|
||||||
|
| +++++++++++++++++++
|
||||||
|
|
||||||
|
error: aborting due to previous error
|
||||||
|
|
||||||
|
For more information about this error, try `rustc --explain E0277`.
|
Loading…
x
Reference in New Issue
Block a user