<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/150782>150782</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
modernize-use-designated-initializers fails with template types + using
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
stefanroe
</td>
</tr>
</table>
<pre>
clang-tidy fails to detect missing designated initializers if the data structure is defined via `using MyTypeT = MyType<T>`
```
template<typename T>
struct Foo {
T aaaaa;
T bbbbb;
};
using Foo32u = Foo<uint32_t>;
void myFun() {
const Foo<uint32_t> f1{1,2};
const Foo32u f2{1,2};
}
```
clang-tidy correctly detects the missing designated initializers in `const Foo<uint32_t> f1{1,2};` but it misses them in `const Foo32u f2{1,2};`:
```
warning: use designated initializer list to initialize 'Foo<unsigned int>' [modernize-use-designated-initializers]
44 | const Foo<uint32_t> f1{1,2};
| ^~~~~
| .aaaaa= .bbbbb=
```
Environment:
```
Homebrew LLVM version 20.1.8
Optimized build.
```
```
CheckOptions:
modernize-use-designated-initializers.IgnoreMacros: true
modernize-use-designated-initializers.IgnoreSingleElementAggregates: true
modernize-use-designated-initializers.RestrictToPODTypes: true
modernize-use-designated-initializers.StrictCStandardCompliance: true
modernize-use-designated-initializers.StrictCppStandardCompliance: true
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJycVU1v4zYQ_TXUZWCBor7sgw6KHaEFNtiiMXotKHEks6VIgaQcOIf89oKys3Y3-5ENEcQSPfPem3ljkjsnB41YkfyO5LuIz_5gbOU89lxbg1FrxKnqFNfDyktxgp5L5cAbEOix8zBK56QeQGAA4h4FSC295Eo-o3Uge_AHBME9B-ft3PnZIkgHAnupUcBRciAFnReUh9P-NOEeSLq7PJN0uyfpPSkooXX4f_6jtcdxUtyHAH-aUPMRYYmk9ZkHGmOAlHeE1gAAe-BhkfS60YZ13QgE5e78Tmh9VtQYk7J5EdQYQ9LtLLVP2d8-UL2GHo0UMJ6aWRO2JmzzStsZ7fzbPOgTUt4lhG3ZF8Ig4Et4YOzZm5jw8P8mEFrfeNMZa7Hz6nQxxy2t_6lDGoIB79ZaUGhnD_LsPS4kY0C5BflmBQUlaX1W_VUd8MStlnogaQ2zw-9oBSWdD7N33QPCyotmvUxySFi8YSWQ_G40Aq2Wz7iaHa6usKvbFpB8d3Ygy4CU21-1DZak7y-S37-8vLyE6B8HQnwZ0R3El9n8huH3-iit0SOGOr9u5G9mxNbiE3z69NcDHNE6aTQwGifxepH7efJylM8ooJ2lEvFb_NvX7QG7f0OK0e5MBu_qaPz7oI3FB95ZExLB2xl_NftR6kHhvcJQaj0MFgfu8QNwf6LzVnZ-b_74vAuHygcwHheE7aPnWnArtmaclOS6ww9DTdMPwW5tiESVik264RFWSZmneZ5k6To6VH1CE1rwDSt5l7VZSVnOeV-KNW5ytk7zSFaMspyWrEjKtEzWcZb3eVKkouVFVpTdhmQURy5VrNRxjI0dIuncjFWS03LNIsVbVG65HRjT-ATLt4SxcFnYKiSt2nlwJKPhx-muMF56hdW7OnK5VJ6kP8DrsQ7hUHdA2B0sB3E0W1UdvJ-WOWQNYc0g_WFu486MhDWB9_Kxmqz5BztPWLOodYQ1l3KOFfsvAAD__2y7Lf8">