<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/120092>120092</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[[Clang]] Don't traverse parameter list twice in `RequiresExpr`.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
16bit-ykiko
</td>
</tr>
</table>
<pre>
https://github.com/llvm/llvm-project/blob/3c3094b60d3587b1db8ef35b3bf54e73ac5894d9/clang/include/clang/AST/RecursiveASTVisitor.h#L2985-L2991
Currently, ASTVisitor traverses parameter list twice in `RequiresExpr`. First, and then it is when traverse `decls` of the body of `RequiresExpr`, another is when traversing `S->getLocalParameters()`. This is unnecessary and could be optimized.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyUkj9v2zAQxT8NtRAWqCMpiYMGJ46mDEUSdOefi8SGFl2Scup--kJGAhftlIkH4t4Pd_eeztlPC-JA5B2Rh0qvZY5paFrjy-7y5t9iZaK7DHMpp0z4nsBIYJx8mVdT23gkMIZw_nx2pxR_oC0ERhOiITByy5kSpmWOy74zjTM9vnJpuHmVAjuureyVcIrAaINeJgKjX2xYHf71s39-ITA-oV1T9mfcP79899mXmOqZAH8E1cvdIyjVELYnbH-_poRLCRcC9_TWTEvSZ0wZMz3ppI9YMNHgc6Hl3VukfqGkZU_4c_UJ88OvUyItq-noUy4bSS-OlhkX6gv1mb5v5SdyUzq0IZOW0fi69dHtblv9P3SjUb3EMmP6F-WXaVM87wh_mLA8RqvDt89xM4GegLrO9TL7vInXZUGLOet0uY5o4xocNUjjqfij_42urtzAneJKVzg0HRdcqk7Jah6MFqZhjjd9a7QQ0AkrWA8Ns87KroXKD8BANNC0jeAtl3UnHe-VYqKxAq3gRDA8ah_qzf46pqnyOa84NMCYgipogyFfwwXwYSdsOUvDNS9mnTIRbHMh3xDFl_CRyLv7q0geiDzQQ1wIdOV29S_4WK0pfD3F12UygfFjn_MAfwIAAP__MgkGog">