<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/99894>99894</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [clang] Error (with diagnostic) on valid after #90574
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
            yronglin
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          dcci
      </td>
    </tr>
</table>

<pre>
    ```
namespace {
typedef char a;
template <typename b> struct ai {
  typedef b aj;
  typedef ai ak;
  aj operator*();
  ak operator++();
 friend bool operator==(ak, ak);
};
template <typename, typename, typename, typename> class am {
  typedef a an;

public:
  typedef ai<an> ao;
};
template <typename ap, typename c = ap> class aq {
 typedef ap ar;
  typedef ap an;
  typedef c as;
  typedef am<ar, an, an, as> at;

public:
  typedef at::ao av;
  av begin();
  av end();
};
namespace {
namespace {
a aw() {
  aq<a> ax;
 for (auto module : ax)
    ;
}
} // namespace
} // namespace
} // namespace
```

`clang patatino.cpp -std=c++20 -c`

The patch got reverted, but this is the testcase.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJykVN1uszgQfRpzM0oENhC44CJtkifYFxiMAbcGU3tIt2-_Mvmj3Wi30idZgI7PzJzxHIze625UqmLZC-P8y9mxM3pknLPsEOFMvXVVI6WOatt8VSyPrys-sHg_4qD8hFIB271cIPqaVKNakD06QCZusBomg6SAiddACZFQM3EET26WBKgfOQBuWWrAt3uOB4wa8H2F4xvYSTkk6xjfM14wXq6331fbL8v6zmidVmMDtbXmwRSHsHiB74y_hnqrCLY7_GdrIeJ_v8URpEHvAYdnvSPg-Ci4PKe5Nloysf_3gTDxGuhHQPtrlYDTWhBIYOIQwIeyj5Wye7EJ0D2byrRW_MAloH9GH4JmtxzuuHr6pQv6desUQLFHC3heD_0MteqClX-64QxqbH7A66N64uonEAJ-XpKsh4cfoamlg79X_rIOgpNmsjDYZjZhDPtA4eUtEuCbmNsHMH5i_AR3BX-w8_3nvYPS4NjBhISkR7uV0wQbTw0TB3n5XXgMG_kj7q9ehRDZQ2cJnDorR6oJA6xnAuq1B-2BegWkPEn0ahs1lWhKUWKkqmTHkzzP8ziP-qrNMFZZ0SYyL-qijctWFFnRZnXRJBkWaaQrHvM03nGe5KngYpuKJE7qJN_t4iYuZcnSWA2ozdaY87C1rou097OqyrIo08hgrYy_XnFLt9f7zVWBv6nnzrM0NtqTf2QgTWa5Fy8R2QGOzl0G-amph0ZjN1pPWgYP2BHOaHQD2JIKJFHG2S6NZmeqnmjywaXLWDpN_VxvpR0YP4Vq19dmcvZNSWL8tIj3jJ8u-s8V_ycAAP__dGag6w">