[clang-tools-extra] [clangd] Add designator hints for parenthesis aggregate initialization (PR #170642)
Yanzuo Liu via cfe-commits
cfe-commits at lists.llvm.org
Sun Dec 7 00:41:29 PST 2025
================
@@ -699,6 +699,26 @@ class InlayHintVisitor : public RecursiveASTVisitor<InlayHintVisitor> {
return InstantiatedFunction->getParamDecl(ParamIdx);
}
+ bool VisitCXXParenListInitExpr(CXXParenListInitExpr *E) {
+ // TODO: Lang check needed?
+ if (!Cfg.InlayHints.Designators &&
+ AST.getLangOpts().LangStd >= LangStandard::Kind::lang_cxx20)
+ return true;
+
+ if (const auto *CXXRecord = E->getType()->getAsCXXRecordDecl()) {
+ const auto &InitExprs = E->getInitExprs();
+ auto RecordFields = CXXRecord->fields().begin();
+
+ for (size_t I = 0; I < InitExprs.size();
+ ++I, RecordFields = std::next(RecordFields)) {
----------------
zwuis wrote:
```cpp
if (InitExprs.size() <= CXXRecord->getNumBases())
return true;
for (auto [InitExpr, Field] : llvm::zip(InitExprs.drop_front(CXXRecord->getNumBases()), CXXRecord->fields()))
// ...
```
https://github.com/llvm/llvm-project/pull/170642
More information about the cfe-commits
mailing list