diff --git a/src/Generator/AST/Utils.cs b/src/Generator/AST/Utils.cs index dcdc34a7..3120f5bb 100644 --- a/src/Generator/AST/Utils.cs +++ b/src/Generator/AST/Utils.cs @@ -108,7 +108,7 @@ namespace CppSharp.AST if (specialization.Arguments.Select( a => a.Type.Type).Any(t => t != null && - !CheckTypeForSpecialization(t, container, addSpecialization, + !CheckTypeForSpecialization(t, specialization, addSpecialization, typeMaps, internalOnly))) return false; diff --git a/tests/CSharp/CSharpTemplates.h b/tests/CSharp/CSharpTemplates.h index 662e2794..10c8742e 100644 --- a/tests/CSharp/CSharpTemplates.h +++ b/tests/CSharp/CSharpTemplates.h @@ -514,8 +514,15 @@ TemplateDerivedFromRegularDynamic::~TemplateDerivedFromRegularDynamic() template class OnlySpecialisedInTypeArg { +public: + DependentValueFields> returnSelfSpecialization(); }; +template +DependentValueFields> OnlySpecialisedInTypeArg::returnSelfSpecialization() +{ +} + // we optimise specialisations so that only actually used ones are wrapped void forceUseSpecializations(IndependentFields _1, IndependentFields _2, IndependentFields _3, IndependentFields _4,