// compile-flags: -Ztrait-solver=next // check-pass trait Foo {} impl Foo for T {} trait Bar {} struct Wrapper<'a, T>(&'a T); impl<'a, T> Bar for Wrapper<'a, T> where &'a T: Foo {} // We need to satisfy `&'a T: Foo` when checking that this impl is WF // that can either be satisfied via the param-env, or via an impl. // // When satisfied via the param-env, since each lifetime is canonicalized // separately, we end up getting extra region constraints. // // However, when satisfied via the impl, there are no region constraints, // and we can short-circuit a response with no external constraints. fn main() {}