(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
cpp2a/
concepts-recursive-sat5.C
// PR c++/100288
// { dg-do compile { target c++20 } }

struct A { };

template<typename T> concept pipeable = requires(A a, T t) { a | t; }; // { dg-error "depends on itself" }

template<pipeable T> void operator|(A, T);

void f(A tab) {
  tab | 1; // { dg-error "no match" }
  tab | 1; // { dg-error "no match" }
}