<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/110694>110694</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang-tidy readability-else-after-return false positive
</td>
</tr>
<tr>
<th>Labels</th>
<td>
bug,
clang-tidy,
false-positive
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
LegalizeAdulthood
</td>
</tr>
</table>
<pre>
Suppose you introduce a variable in the scope of the `if` statement like so:
```
size_t index{};
if( const auto pos{ std::find( geom->materialIds.begin(), geom->materialIds.end(), proxyMaterialId ) };
pos == geom->materialIds.end() )
{
throw std::runtime_error( "Mismatched material id; expected one of " + toString( geom->materialIds ) + ", got "
+ std::to_string( proxyMaterialId ) );
}
else
{
index = std::distance( geom->materialIds.begin(), pos );
}
```
`readability-else-after-return` doesn't recognize the use of the scoped variable in the else and flags the else after return as a violation. This is a false positive.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMVFGPozgM_jXhxWoVAqXlgYfp9SqddPu09z4KxIDvQoISMzedX38KM0N39mZXG1UFO44_-_MXdIw0OMRGHM7icMn0wqMPzZ84aEsv-GAWy6P3Jmu9uTVfl3n2EeHmFyDHwZulQ9DwpAPp1iKQAx4RYudnBN-vhqgk9aKSEFkzTugYLP2DEL0oHoS8CPn-X8m332oCAER6wUcGcgafxfEsjhdRnO_b1At1gs67yKAX9jD7KI5niGxS7uKhJ2dSyIB-2oni90kzBtL2DxP3LQ7khDoJVQv126chuJ5-C5iDf7592XZBqBo-FDT7CKK4iOLy82Tp5L2H1NZmpMVj8P_eWwiLY5rwEUPwIfUilPpCcdLcjWjgHQHIiOIM-Dxjx2jAu3UAQikQ6gzsv3IgN_yAjNdm1DnFr2R4Xl8_FPbjlU5uBbN_jBvWp6Sp-sMUE4mbgTbiZ-SsEkj03oEMRdauw18c8Dqeb6E33O-EtzkDaqNbssS3Xaprp3vGsAvIS3BJ0cZjdEIdGQJ2fnD0gqvkl7ipf70K5n83JKUD7Qz0Vg_xG1dCgFcE0DHdLfJWM3m3B_hrpAiUvL1O0bOPxPSE-8w0hamLWmfY5Ed1PNZ1UZ2ysakPppe1MWVXqVNnKnnQdd0arMtD0bWlzKhRUpW5lHle5ZU87XuVd8WhNXmby1JWKEqJkya7t_Zp2vswZBTjgk2ey6ouM6tbtHH9fCjVLsOrgIRSndVu2DGZ2-Zai969F53ch0sWmpR41y5DFKW0FDneoZjYYnNPBT8dyXesZEuwzcg8x6QXdRXqOhCPS7vv_CTUNaG8PXZz8H9jx0Jd1-6iUNe3Bp8a9V8AAAD__4fCkVE">