diff options
Diffstat (limited to 'tests/ui/traits/trait-upcasting/migrate-lint-deny.rs')
| -rw-r--r-- | tests/ui/traits/trait-upcasting/migrate-lint-deny.rs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/ui/traits/trait-upcasting/migrate-lint-deny.rs b/tests/ui/traits/trait-upcasting/migrate-lint-deny.rs new file mode 100644 index 00000000000..d624187561e --- /dev/null +++ b/tests/ui/traits/trait-upcasting/migrate-lint-deny.rs @@ -0,0 +1,27 @@ +#![deny(deref_into_dyn_supertrait)] + +extern crate core; + +use core::ops::Deref; + +// issue 89190 +trait A {} +trait B: A {} + +impl<'a> Deref for dyn 'a + B { + //~^ ERROR `(dyn B + 'a)` implements `Deref` with supertrait `A` as target + //~| WARN this was previously accepted by the compiler but is being phased out; + + type Target = dyn A; + fn deref(&self) -> &Self::Target { + todo!() + } +} + +fn take_a(_: &dyn A) {} + +fn whoops(b: &dyn B) { + take_a(b) +} + +fn main() {} |
