diff options
Diffstat (limited to 'tests/ui/dyn-compatibility/spurious-dyn-compat-errors-58734.rs')
| -rw-r--r-- | tests/ui/dyn-compatibility/spurious-dyn-compat-errors-58734.rs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/ui/dyn-compatibility/spurious-dyn-compat-errors-58734.rs b/tests/ui/dyn-compatibility/spurious-dyn-compat-errors-58734.rs new file mode 100644 index 00000000000..3e9ebb497a2 --- /dev/null +++ b/tests/ui/dyn-compatibility/spurious-dyn-compat-errors-58734.rs @@ -0,0 +1,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 +} |
