//@ known-bug: #137190 | |
trait Supertrait<T> { | |
fn method(&self) {} | |
} | |
trait Trait<P>: Supertrait<()> {} | |
impl<P> Trait<P> for () {} | |
const fn upcast<P>(x: &dyn Trait<P>) -> &dyn Supertrait<()> { | |
x | |
} | |
const fn foo() -> &'static dyn Supertrait<()> { | |
upcast::<()>(&()) | |
} | |
const _: &'static dyn Supertrait<()> = foo(); |