Browse Source

Generated dependent fields if they are of a union type.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
pull/196/head
Dimitar Dobrev 12 years ago
parent
commit
8d9ff9515e
  1. 7
      src/Generator/Generators/CSharp/CSharpTextTemplate.cs
  2. 9
      tests/Basic/Basic.h

7
src/Generator/Generators/CSharp/CSharpTextTemplate.cs

@ -790,8 +790,11 @@ namespace CppSharp.Generators.CSharp @@ -790,8 +790,11 @@ namespace CppSharp.Generators.CSharp
}
private void GenerateClassInternalsField(Field field)
{
if (field.Type.IsDependent && !field.Type.IsPointer())
{
// we do not support dependent fields yet, see https://github.com/mono/CppSharp/issues/197
Class @class;
if (field.Type.IsDependent && !field.Type.IsPointer() &&
!(field.Type.IsTagDecl(out @class) && @class.IsUnion))
return;
var safeIdentifier = Helpers.SafeIdentifier(field.OriginalName);

9
tests/Basic/Basic.h

@ -269,3 +269,12 @@ class HasIgnoredField @@ -269,3 +269,12 @@ class HasIgnoredField
Base<Derived> fieldOfIgnoredType;
};
template <typename T>
class DependentTypeWithNestedIndependent
{
union
{
int i;
long l;
};
};

Loading…
Cancel
Save