// 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 }