<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJytVG1v2yAQ_jX4y6mWg-0k_uAPabJIkzpVVaN9nXB8tmkwpIAb5d8PcN7WbuqkzUIYjnt57u6BStXHcq0GWcOhQwkHpXdctqAkEJrmaTGlMUlWJFmM86ZDaJQQ6uC1LBoLDePCkPSkQKbJaYTtWume2Wd7FAjjTNIVtGgfHr5_CwJC54QWJL0fDYIsfhqY4A1HvRC8lT1KG-xuvPmA6eJp8fxjORir-j85eNQ16mBMZveEUnvcu5CU0KVLkG6VNNZvZ6uLg3F-Q82b4xgwQKQW-71g1mew9F4k6xE2JP1C8qX0PoId3H5OCqDxdeAaDSyV3OLeOvMNjIE_sX1TvIbmWqAA-_eq_xFcgPa57d-COzX52uGPld2cwG98b26rA_biGT7qXYHe6n2I946R4_wVbMflDriDMDPAQGDLLe99CX1NPLGtggqBVY60bqlRBSq9npllgEvDa6dxreJWsMEgKO2El5b4fgDT7RB4LLix764UG0FUuA3WBwSz43tgQjiUPvgOpYFGqx5cGucqPLouo3YCsNxp3pwshTLhJI7qMq2LtGARG2yndNnvBpfFSzRoUXbW7sPFpWs3XPrdUMVbd5XoWoi38-9ur9ULbh3ENTfGFcYt3Lswn0RdmVVFPp0g5lPKkgmlWZNNi3nKaJ7WWBSzSLAKhSlJ7ruDsmOOZL4KNzdQMNneNSc2UJKvon9HxkuaUD9oMs9nkzSmmBVZPqc5FjSvs4RkCfbu3Yq9n1jpNtJlcFkNrXGHvknmesiMcc8QYkjEIbTcirD5BX2-gnfPTq0cJ6SyF_JcOHGmg4kC9DLg_gn2p634>53981</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [clang-format] QualifierOrder does not reorder template arguments
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            enhancement,
            clang-format
      </td>
    </tr>

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

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

<pre>
    Found when working on #53962.

The following test fails:
```
FormatStyle Style = getLLVMStyle();
Style.QualifierAlignment = FormatStyle::QAS_Custom;
Style.QualifierOrder = {"type", "const"};

verifyFormat("template <typename T>\n"
             "  requires Concept<T const>\n"
             "void f();",
             "template <typename T>\n"
             "  requires Concept<const T>\n"
             "void f();",
             Style);
verifyFormat("TemplateType<T const> t;", "TemplateType<const T> t;", Style);
```

I think it's a legitimate request to be able to reorder qualifiers inside a requires clause or a template type argument list.

That's because we skip all the tokens from `TemplateOpener` till `TemplateCloser`.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJytVE1v4jAQ_TXOZVQUnISPQw4UFmmlrqqqaK8rQyaJi2NT2yni3-_YoYDaXXUPiyKTjOfjvTdjb011Ktem1xUcW9RwNHYvdQNGA-NZkc0nfMTSFUsXw7ppEWqjlDkGL4_OQy2kciw7O7BJen7i59rYTvhnf1IIw8qyFTToHx5-_ogGxmeMz1l2PwRE2-ipF0rWEu1CyUZ3qH2Mu8kWCmaLp8Xzr2XvvOn-luDRVmhjMJveM8796UAlOeNLIsh3RjsfPqerS4JhfUMr69NQMELkHruDEj4wWIYsWnQIG5Z9Y8VShxwxDm5_ZAWw-NpLiw6WRu_w4Cl8A0PhL2LfjKygvgoUYf_Z9T-Ci9C-jv1XcOcmXzv8WdnNGfwm9OZWHfCXzPDZ7wr01u9TvQ8TOazfwbdS70EShKkDAQob6WUXJAyahMH2BrYIYktDS68WTRyl1_fJciC1kxV5XFXcKdE7BGPJeGlJ6AcI2_RxjpV0_sOREgOILe5i9BHB7eUBhFKEMhTfo3ZQW9MB0XhX4ZG6jJYM4CV53uwslXFxZ5RUZVbNs7lIvPQKS1bcE0Td3NWD_MUKPpyUyhANbfyF74XGOwOX9FaVrfeHeOr5mh7Sru23ox2dQ75W6u397-5gzQvuiN9aOkeq0gtdKrNx0paTfJxO65pnaS7EbjYbT8bTfDafTaZVXU-KPFFii8oFzNRa1K2gCQ0Abo7vLReyFqtEljzl4eHprJiOsxHHfJ4XM17gnBdVnrI8xY6urFHANzK2SWwZoW77xtFm6I-7bgrn6AbCKF3IL3rfGlt2-57UeUkiqzJS-g27rpiG">