Skip to content

Commit 9b0e610

Browse files
Merge pull request #337 from xoofx/fix-get-template-argument
Fix clangsharp_Type_getTemplateArgument for record decl
2 parents 9538cce + 718259f commit 9b0e610

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

sources/libClangSharp/ClangSharp.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5403,6 +5403,14 @@ CX_TemplateArgument clangsharp_Type_getTemplateArgument(CXType CT, unsigned i) {
54035403
}
54045404
}
54055405

5406+
// Matching what clang_Type_getNumTemplateArguments/Type.GetTemplateArguments is doing here
5407+
if (const auto* RecordDecl = T->getAsCXXRecordDecl()) {
5408+
const auto* TemplateDecl = dyn_cast<ClassTemplateSpecializationDecl>(RecordDecl);
5409+
if (TemplateDecl && i < TemplateDecl->getTemplateArgs().size()) {
5410+
return MakeCXTemplateArgument(&TemplateDecl->getTemplateArgs()[i], GetTypeTU(CT));
5411+
}
5412+
}
5413+
54065414
return MakeCXTemplateArgument(nullptr, GetTypeTU(CT));
54075415
}
54085416

0 commit comments

Comments
 (0)