// { dg-do compile { target c++20 } }
// { dg-additional-options "-fconcepts-ts" }

template<class T>
concept bool C = requires(const T& t) { t.foo(); };

template<class T>
struct Base
{
  constexpr T const& derived() const
  {
    return static_cast<T const&>(*this);
  }
  constexpr bool bar() const
    requires requires(const T& t) { t.foo(); }
  {
    derived().foo();
    return true;
  }
};

template<class T>
struct Derived : Base<Derived<T>>
{
  constexpr void foo() const {}
};

int main()
{
  static_assert(Derived<int>{}.bar());
}

