// check-pass // compile-flags: -Ztrait-solver=next // Issue 96230 use std::fmt::Debug; trait Classic { type Assoc; } trait Gat { type Assoc<'a>; } struct Foo; impl Classic for Foo { type Assoc = (); } impl Gat for Foo { type Assoc<'i> = (); } fn classic_debug(_: T) where T::Assoc: Debug, { } fn gat_debug(_: T) where for<'a> T::Assoc<'a>: Debug, { } fn main() { classic_debug::(Foo); // fine classic_debug(Foo); // fine gat_debug::(Foo); // fine gat_debug(Foo); // boom }