rust/tests/ui/traits/next-solver/prefer-candidate-no-constraints.rs
2024-02-16 20:02:50 +00:00

23 lines
618 B
Rust

//@ compile-flags: -Znext-solver
//@ check-pass
trait Foo {}
impl<T> 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() {}