28 lines
514 B
Rust
28 lines
514 B
Rust
//@ compile-flags: -Znext-solver
|
|
// From #80800
|
|
|
|
trait SuperTrait {
|
|
type A;
|
|
type B;
|
|
}
|
|
|
|
trait Trait: SuperTrait<A = <Self as SuperTrait>::B> {}
|
|
|
|
fn transmute<A, B>(x: A) -> B {
|
|
foo::<A, B, dyn Trait<A = A, B = B>>(x)
|
|
//~^ ERROR type mismatch resolving `<dyn Trait<A = A, B = B> as SuperTrait>::A == B`
|
|
}
|
|
|
|
fn foo<A, B, T: ?Sized>(x: T::A) -> B
|
|
where
|
|
T: Trait<B = B>,
|
|
{
|
|
x
|
|
}
|
|
|
|
static X: u8 = 0;
|
|
fn main() {
|
|
let x = transmute::<&u8, &[u8; 1_000_000]>(&X);
|
|
println!("{:?}", x[100_000]);
|
|
}
|