about summary refs log tree commit diff
path: root/tests/ui/impl-trait/trait_upcasting_reference_mismatch.rs
blob: bed88db1accee896391380e89989700d2cb2b276 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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() {}