(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
cpp2a/
concepts-return-req2.C
// Verify we check return-type-requirements by passing the entire set of
// template arguments to normalization rather than first substituting into
// the constraint.  The latter approach would induce a substitution failure and
// cause the requires-expression to evaluate to false here.
// { dg-do compile { target c++20 } }

template <class, class>
concept C1 = true;

template <class T>
concept C2 = requires { { 0 } -> C1<typename T::type>; };

static_assert(C2<int>);