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

    <tr>
        <th>Summary</th>
        <td>
            After overloading the type conversion operator, clang-tidy analysis errors occur.
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          inschrift-spruch-raum
      </td>
    </tr>
</table>

<pre>
    ```cpp main.cpp
#include <iostream>

class A {
public:
  int a;
  int b;

 explicit operator double(this const A& self) { return self.a + self.b; }
};

auto main(std::int32_t /*argc*/, const char* /*argv*/[]) -> std::int32_t {
  auto c = A{.a = 1, .b = 2};
  double d = double(c);
 std::cout << d;
}
```

```
clang-tidy main.cpp
5809 warnings generated.
main.cpp:12:8: warning: variable name 'c' is too short, expected at least 3 characters [readability-identifier-length]
   12 |   auto c = A{.a = 1, .b = 2};
      |        ^
main.cpp:13:3: warning: use auto when initializing with a cast to avoid duplicating the type name [hicpp-use-auto]
   13 |   double d = double(c);
      |   ^~~~~~
      | auto
main.cpp:13:10: warning: variable name 'd' is too short, expected at least 3 characters [readability-identifier-length]
   13 |   double d = double(c);
      |          ^
main.cpp:13:14: warning: redundant cast to the same type [google-readability-casting]
   13 |   double d = double(c);
 |              ^
note: this fix will not be applied because it overlaps with another fix
main.cpp:13:14: warning: redundant explicit casting to the same type 'double' as the sub-expression, remove this casting [readability-redundant-casting]
   13 |   double d = double(c);
      | ^~~~~~~ ~
main.cpp:8:12: note: source type originates from the invocation of this method
    8 |   explicit operator double(this const A& self) { return self.a + self.b; }
      |            ^
Suppressed 5804 warnings (5804 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJy0Vs1u4zYQfhr6MpAhkZYlH3yQ4-QFip4LihxLLGhSIEdO3MM-e0FJtpPstou0WMGA-TvzffONZiRjNJ1D3LPywMrjSo7U-7A3Lqo-mBNlcQij6rMgx_Oq9fq6Z9t8_qlhgLM0bq2GgeUN48I4ZUeNwMST8ZECyjMTz2kvb5SVMUIDrDqwvBnG1hrFRNoBMI5AMnG4T9p5kub4NlijDIEfMEjyAbQfW4uM19SbCMq7SNAwvoWI9sT4LrmAgDQGNy2tJTB-mIfJMLDqmIxXx7sXOZKfuDBeR9IJl2iMI8H_IGD8hfFGhk4x3kyTp8Wr6mVgvHmcuCwnplgmKBkTz_C9xWqmOrlVwMQRGlYdElBxhCI5WLfTmN9RwsIb9LRxD4JifLecuPtRfqQkAhNPoBeSM-ebdjPt91NlpesyMvr6XtSyznfwKoMzrovQoUsaoF6zvLmfEk3BmWhqJprb0TS8yGBkAuzkGYHxSjFegYlA3kPsfaDEE98GVIQaJIFFGQnEFFapCEMEVh4CSi1bYw1dM6PRkTkZDJlF11GfwpxiAwUHVj3BV2OanvnePCyfPzETTDTiE7Mx4uzmtUcHxhky0pq_jOvg1VAPElQiQh7kxRsNekwpLCkdoB6BrsMtKuWhN2oYsjFilkw--IgF109Vf8eBlc_f0vNheTL7Paki_5le-pfq9V_4_atKxeYToYB6dFo6usuRgh8Tu0kBVh467zuL2XvI6Wwy8HWgHzA-cDpPmOBM1epk3uDVWAvOE7QIchisQQ0tKpnSKtW5CwYrh7jkkvPUY0gXv8b5XjcXQj_gz6sbjQpknHfHNsO3IWCMxrskeMCzv-CM_mbqk8p3p_8jeHeVbzn8Db59JFzfCg3cIhr9GNRCxgfTGScJI5yCP09kjLv49Np5B_40Mzgj9V4vDusF3C9rMT_I3VtW_DYOU5RRQ1nnm0eNZbyeFowD510qDAGU18j4LlXd3yNC1qPUGLKTsYSBieM6NSHyoE0crLwChuDDEgg5JZvL4jUSnmG-GtcwGZoXF3vxn0x8vJpS5RWtXb9vICu9F3ondnKF-6Iqxbaqhdis-r08aS2KXVWctnlRn1S-FS1yPBVCt1tdVCuz5zkv84rX-abkxWZdbba6KHkuFebbeivZJsezNHZt7eW89qFbmRhH3BdlXleblZUt2jh9vnD-aGKM8_Q5E_bpVtaOXWSb3JpI8WGHDFncNyfCML91XuoPNVp5d8EQpwRaUmNq_o9WKZ2012jiLV5eqTGsV2Ow-55oiKkfp4-Dl85QP7Zr5c-MvyQEy182BP8nKmL8ZaIVGX9ZmF32_O8AAAD__1-_9QE">