[clang-tools-extra] [clangd] Add inlay hints for forwarding direct init (PR #176635)
Mythreya Kuricheti via cfe-commits
cfe-commits at lists.llvm.org
Sun Feb 8 13:44:14 PST 2026
================
@@ -773,11 +773,26 @@ class InlayHintVisitor : public RecursiveASTVisitor<InlayHintVisitor> {
bool HasNonDefaultArgs = false;
ArrayRef<const ParmVarDecl *> Params, ForwardedParams;
+
// Resolve parameter packs to their forwarded parameter
SmallVector<const ParmVarDecl *> ForwardedParamsStorage;
+ // If args are direct-initialized
+ const CXXRecordDecl *CxxRecord{};
+
if (Callee.Decl) {
Params = maybeDropCxxExplicitObjectParameters(Callee.Decl->parameters());
- ForwardedParamsStorage = resolveForwardingParameters(Callee.Decl);
+
+ [&]() {
+ auto Params = resolveForwardingParameters(Callee.Decl);
+ if (std::holds_alternative<decltype(ForwardedParamsStorage)>(Params)) {
+ ForwardedParamsStorage =
+ std::get<decltype(ForwardedParamsStorage)>(Params);
+ }
+ if (std::holds_alternative<decltype(CxxRecord)>(Params)) {
+ CxxRecord = std::get<decltype(CxxRecord)>(Params);
+ }
+ }();
----------------
MythreyaK wrote:
Removed, I guess I wanted to make `Params` scope-local. Renamed to `ParamsOrRecord`, which is much better, agree.
https://github.com/llvm/llvm-project/pull/176635
More information about the cfe-commits
mailing list