//@ check-pass // When canonicalizing a response in the trait solver, we bail with overflow // if there are too many non-region inference variables. Doing so in normalizes-to // goals ends up hiding inference constraints in cases which we want to support, // see #131969. To prevent this issue we do not check for too many inference // variables in normalizes-to goals. #![recursion_limit = "8"] trait Bound {} trait Trait { type Assoc; } impl Trait for (T0, T1, T2, T3, T4, T5, T6, T7) where T0: Trait, T1: Trait, T2: Trait, T3: Trait, T4: Trait, T5: Trait, T6: Trait, T7: Trait, ( T0::Assoc, T1::Assoc, T2::Assoc, T3::Assoc, T4::Assoc, T5::Assoc, T6::Assoc, T7::Assoc, ): Clone, { type Assoc = ( T0::Assoc, T1::Assoc, T2::Assoc, T3::Assoc, T4::Assoc, T5::Assoc, T6::Assoc, T7::Assoc, ); } trait Overlap {} impl> Overlap for T {} impl Overlap for (T0, T1, T2, T3, T4, T5, T6, T7) {} fn main() {}