rust/tests/ui/suggestions/derive-trait-for-method-call.rs
2023-01-11 09:32:08 +00:00

45 lines
932 B
Rust

use std::time::Instant;
enum Enum {
First
}
#[derive(Clone)]
enum CloneEnum {
First
}
struct Struct {
}
#[derive(Clone)]
struct CloneStruct {
}
struct Foo<X, Y> (X, Y);
impl<X: Clone + Default + , Y: Clone + Default> Foo<X, Y> {
fn test(&self) -> (X, Y) {
(self.0, self.1)
}
}
fn test1() {
let x = Foo(Enum::First, CloneEnum::First);
let y = x.test();
//~^the method `test` exists for struct `Foo<Enum, CloneEnum>`, but its trait bounds were not satisfied [E0599]
}
fn test2() {
let x = Foo(Struct{}, CloneStruct{});
let y = x.test();
//~^the method `test` exists for struct `Foo<Struct, CloneStruct>`, but its trait bounds were not satisfied [E0599]
}
fn test3() {
let x = Foo(Vec::<Enum>::new(), Instant::now());
let y = x.test();
//~^the method `test` exists for struct `Foo<Vec<Enum>, Instant>`, but its trait bounds were not satisfied [E0599]
}
fn main() {}