// revisions: old next //[old] check-pass // Currently always fails to generalize the outer alias, even if it // is treated as rigid by `alias-relate`. //[next] compile-flags: -Znext-solver //[next] known-bug: trait-system-refactor-initiative#8 #![crate_type = "lib"] #![allow(unused)] trait Unnormalizable { type Assoc; } trait Id { type Id; } impl Id for U { type Id = U; } struct Inv(*mut T); fn unconstrained() -> T { todo!() } fn create( x: &U, ) -> (Inv, Inv<<>::Id as Unnormalizable>::Assoc>) { todo!() } fn foo() { let q = unconstrained(); let (mut x, y) = create::<_, _>(&q); x = y; drop::(q); }