about summary refs log tree commit diff
path: root/tests/ui/dyn-compatibility/spurious-dyn-compat-errors-58734.rs
blob: 3e9ebb497a21bc680692f0c127ba4654a9bc366d (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
// https://github.com/rust-lang/rust/issues/58734
trait Trait {
    fn exists(self) -> ();

    fn dyn_incompatible() -> Self;
}

impl Trait for () {
    fn exists(self) -> () {
    }

    fn dyn_incompatible() -> Self {
        ()
    }
}

fn main() {
    // dyn-compatible or not, this call is OK
    Trait::exists(());
    // no dyn-compatibility error
    Trait::nonexistent(());
    //~^ WARN trait objects without an explicit `dyn` are deprecated
    //~| WARN this is accepted in the current edition
    //~| ERROR the trait `Trait` is not dyn compatible
}