summaryrefslogtreecommitdiffstats
path: root/tests/ui/traits/unspecified-self-in-trait-ref.rs
blob: 158b5a9855752b126a189f45b788f730da0bc09c (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
27
28
29
30
pub trait Foo<A=Self> {
    fn foo(&self);
}

pub trait Bar<X=usize, A=Self> {
    fn foo(&self);
}

fn main() {
    let a = Foo::lol();
    //~^ ERROR no function or associated item named
    //~| WARN trait objects without an explicit `dyn` are deprecated
    //~| WARN this is accepted in the current edition
    let b = Foo::<_>::lol();
    //~^ ERROR no function or associated item named
    //~| WARN trait objects without an explicit `dyn` are deprecated
    //~| WARN this is accepted in the current edition
    let c = Bar::lol();
    //~^ ERROR no function or associated item named
    //~| WARN trait objects without an explicit `dyn` are deprecated
    //~| WARN this is accepted in the current edition
    let d = Bar::<usize, _>::lol();
    //~^ ERROR no function or associated item named
    //~| WARN trait objects without an explicit `dyn` are deprecated
    //~| WARN this is accepted in the current edition
    let e = Bar::<usize>::lol();
    //~^ ERROR must be explicitly specified
    //~| WARN trait objects without an explicit `dyn` are deprecated
    //~| WARN this is accepted in the current edition
}