Skip to content

Commit 06d311d

Browse files
committed
Fix anonymous unions inside template classes
1 parent 6bf823e commit 06d311d

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

src/Generator/Passes/FlattenAnonymousTypesToFields.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public FlattenAnonymousTypesToFields() =>
1616

1717
public override bool VisitClassDecl(Class @class)
1818
{
19-
if (!base.VisitClassDecl(@class) || @class.Ignore || @class.IsDependent)
19+
if (!base.VisitClassDecl(@class) || @class.Ignore)
2020
return false;
2121

2222
for (int i = @class.Fields.Count - 1; i >= 0; i--)

tests/CSharp/CSharpTemplates.h

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,25 @@ void Base<T>::invokeFriend()
221221
f(Nested());
222222
}
223223

224+
template <typename T>
225+
struct TemplateUnionField
226+
{
227+
union
228+
{
229+
struct
230+
{
231+
T x, y, z;
232+
};
233+
T v;
234+
};
235+
};
236+
237+
struct TemplateUnionFieldInstantiation
238+
{
239+
TemplateUnionField<int> tuf;
240+
TemplateUnionField<float> tuf1;
241+
};
242+
224243
template <typename T>
225244
class DependentValueFields : public Base<T>
226245
{

0 commit comments

Comments
 (0)