summaryrefslogtreecommitdiffstats
path: root/src/test/ui/compare-method/bad-self-type.rs
blob: f42a9e49abdff5947c5a947fa3c0cb9ce08c4693 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
use std::future::Future;
use std::task::{Context, Poll};

fn main() {}

struct MyFuture {}

impl Future for MyFuture {
    type Output = ();
    fn poll(self, _: &mut Context<'_>) -> Poll<()> {
    //~^ ERROR method `poll` has an incompatible type for trait
        todo!()
    }
}

trait T {
    fn foo(self);
    fn bar(self) -> Option<()>;
}

impl T for MyFuture {
    fn foo(self: Box<Self>) {}
    //~^ ERROR method `foo` has an incompatible type for trait
    fn bar(self) {}
    //~^ ERROR method `bar` has an incompatible type for trait
}