| //@ edition:2015 |
| // 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 |
| } |