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

    <tr>
        <th>Summary</th>
        <td>
            `modernize-use-trailing-return-type` reports underlying type in fix-it for lamdba
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            bug,
            clang-tidy
      </td>
    </tr>

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

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

<pre>
    ```cpp
#include <algorithm>
#include <cstddef>

void f()
{
    auto val = [](size_t m) {
        size_t a = 0;
        return std::max(m, a);
 };
}
```

```
<source>:6:16: warning: use a trailing return type for this lambda [modernize-use-trailing-return-type]
    6 |     auto val = [](size_t m) {
      |                ^
      | -> unsigned long
```

https://godbolt.org/z/9K4M7Mz8E

It should be reporting `size_t` instead. It seems to be related to the template call involved.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyUU91uszgQfZrhZkRkbH7CBRd8SSOtVn2GlcET8MrgyD9pk6dfOaTbdnuzn4XAnjljzjkeS-_1tBJ1UP2C6pjJGGbrurN29CavlA1W3Tqo2faMlwuwHrjQ62iiIgRxkGayTod5AfHyIzn6oBSdnynWX61WeAa-B96mSPMLWI-IKGOweJUGQRxx4wJ87_Wd_gq4AG_xE5vGMyMfeAbia85RiG5FHxSIHkS_yHfg-wX4AWX67waG5rjN0oT1_2rciH5bioO30Y2UZIi-BtEX6YVv0q16ndI0ekKJwUlt9Dp9UAi3C-HZOgyz9mjkMiiZ1C1WkVv1nfLoKf-oyreqPFUl_ZuiGqE54O979FH1ZUD18i2dg3jBuD46QKGx6_TTiDmEi08-8hPw02TVYE3YWTcBP92Bn9o_y9fm9b5_HvAfAf1so1E4EDq6WBeSH1CzjSfUDPXqA0m1wwQmWjwGu8GNDKTSKsyEgZZLCuAojUG9Xq25ktplqhOqFa3MqCuaihVV2-6bbO7YueK8amVRNoy3NasGUYi2omZsq5rty0x3nPGK1UVTFEKwelcNJSfFas7KksszQclokdrsjLkuSWOmvY_UFWVZFSwzciDjHzeF8yFOwDnwA3A-GrlOedDqlkLVMXNd2iEf4uShZEb74D_3DDoYSnfqf3RBzZ4meoyrImduyc1HW-kVz_o91-HRYEYuapBZdKb7z4npMMdhN9oF-ClxeH7yi7N_0xiAnx4iPfDTU-e14_8EAAD__77jNr8">