diff --git a/src/Generator/Passes/HandleDefaultParamValuesPass.cs b/src/Generator/Passes/HandleDefaultParamValuesPass.cs index 77f56dab..a15b5b27 100644 --- a/src/Generator/Passes/HandleDefaultParamValuesPass.cs +++ b/src/Generator/Passes/HandleDefaultParamValuesPass.cs @@ -46,7 +46,7 @@ namespace CppSharp.Passes Type type = parameter.Type.Desugar(resolveTemplateSubstitution: false); type = (type.GetFinalPointee() ?? type).Desugar( resolveTemplateSubstitution: false); - if (type is TemplateParameterSubstitutionType) + if (type is TemplateParameterSubstitutionType || type.IsDependent) { parameter.DefaultArgument = null; continue; diff --git a/tests/CSharp/CSharp.Tests.cs b/tests/CSharp/CSharp.Tests.cs index 9159c809..ba751d46 100644 --- a/tests/CSharp/CSharp.Tests.cs +++ b/tests/CSharp/CSharp.Tests.cs @@ -951,7 +951,7 @@ public unsafe class CSharpTests : GeneratorTestFixture [Test] public void TestFieldWithDependentPointerType() { - using (var dependentPointerFields = new DependentPointerFields()) + using (var dependentPointerFields = new DependentPointerFields(0)) { } } diff --git a/tests/CSharp/CSharpTemplates.h b/tests/CSharp/CSharpTemplates.h index 4272435e..2cf4d8fb 100644 --- a/tests/CSharp/CSharpTemplates.h +++ b/tests/CSharp/CSharpTemplates.h @@ -240,7 +240,7 @@ template class DLL_API DependentPointerFields { public: - DependentPointerFields(); + DependentPointerFields(T t = 0); ~DependentPointerFields(); T property(); T takeField(T t); @@ -248,7 +248,7 @@ public: }; template -DependentPointerFields::DependentPointerFields() +DependentPointerFields::DependentPointerFields(T t) { }