Skip to content

Commit 189e5bb

Browse files
committed
Add fix-its
1 parent d5fa47a commit 189e5bb

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

clang-tools-extra/clang-tidy/modernize/UseDesignatedInitializersCheck.cpp

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,19 @@ void UseDesignatedInitializersCheck::check(
9595
diag(InitList->getLBraceLoc(), "use designated initializer list");
9696
return;
9797
}
98-
for (const auto *InitExpr : UndesignatedComponents) {
99-
diag(InitExpr->getBeginLoc(), "use designated init expression");
98+
const auto FieldIterator = Type->fields().begin();
99+
for (const auto *InitExpr : *SyntacticInitList) {
100+
const auto Field = std::next(FieldIterator);
101+
if (std::find(UndesignatedComponents.begin(),
102+
UndesignatedComponents.end(),
103+
InitExpr) == UndesignatedComponents.end())
104+
continue;
105+
if (const auto *FieldID = Field->getIdentifier()) {
106+
const auto FieldName = FieldID->getName();
107+
diag(InitExpr->getBeginLoc(), "use designated init expression")
108+
<< FixItHint::CreateInsertion(InitExpr->getBeginLoc(),
109+
"." + FieldName.str() + "=");
110+
}
100111
}
101112
}
102113
}

0 commit comments

Comments
 (0)