diff options
Diffstat (limited to 'tests/ui/impl-trait/trait_upcasting_reference_mismatch.rs')
| -rw-r--r-- | tests/ui/impl-trait/trait_upcasting_reference_mismatch.rs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/ui/impl-trait/trait_upcasting_reference_mismatch.rs b/tests/ui/impl-trait/trait_upcasting_reference_mismatch.rs new file mode 100644 index 00000000000..bed88db1acc --- /dev/null +++ b/tests/ui/impl-trait/trait_upcasting_reference_mismatch.rs @@ -0,0 +1,18 @@ +//! Show an uninformative diagnostic that we could possibly improve in the future + +trait Trait<T> {} + +impl<T, U> Trait<T> for U {} + +fn hello() -> &'static (dyn Trait<impl Sized> + Send) { + //~^ ERROR: type annotations needed + if false { + let x = hello(); + let _: &'static dyn Trait<()> = &x; + //^ Note the extra `&`, paired with the blanket impl causing + // `impl Sized` to never get a hidden type registered. + } + todo!() +} + +fn main() {} |
