diff --git a/src/Generator/Passes/FlattenAnonymousTypesToFields.cs b/src/Generator/Passes/FlattenAnonymousTypesToFields.cs index c15ef18f..71c07833 100644 --- a/src/Generator/Passes/FlattenAnonymousTypesToFields.cs +++ b/src/Generator/Passes/FlattenAnonymousTypesToFields.cs @@ -16,7 +16,7 @@ namespace CppSharp.Passes public override bool VisitClassDecl(Class @class) { - if (!base.VisitClassDecl(@class) || @class.Ignore || @class.IsDependent) + if (!base.VisitClassDecl(@class) || @class.Ignore) return false; for (int i = @class.Fields.Count - 1; i >= 0; i--) diff --git a/tests/CSharp/CSharpTemplates.h b/tests/CSharp/CSharpTemplates.h index bdb843fa..b43c76a5 100644 --- a/tests/CSharp/CSharpTemplates.h +++ b/tests/CSharp/CSharpTemplates.h @@ -221,6 +221,25 @@ void Base::invokeFriend() f(Nested()); } +template +struct TemplateUnionField +{ + union + { + struct + { + T x, y, z; + }; + T v; + }; +}; + +struct TemplateUnionFieldInstantiation +{ + TemplateUnionField tuf; + TemplateUnionField tuf1; +}; + template class DependentValueFields : public Base {