| //@ compile-flags: -Znext-solver | 
 | //@ check-pass | 
 |  | 
 | // Regression test for trait-system-refactor-initiative#84. | 
 | // | 
 | // We try to infer `T::Rigid: Into<?0>` and have 2 candidates from where-clauses: | 
 | // | 
 | // - `Into<String>` | 
 | // - `Into<<T::Rigid as Elaborate>::Assoc>` | 
 | // | 
 | // This causes ambiguity unless we normalize the alias in the second candidate | 
 | // to detect that they actually result in the same constraints. | 
 | trait Trait { | 
 |     type Rigid: Elaborate<Assoc = String> + Into<String> + Default; | 
 | } | 
 |  | 
 | trait Elaborate: Into<Self::Assoc> { | 
 |     type Assoc; | 
 | } | 
 |  | 
 | fn test<T: Trait>() { | 
 |     let rigid: T::Rigid = Default::default(); | 
 |     drop(rigid.into()); | 
 | } | 
 |  | 
 | fn main() {} |