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