Browse Source

Represented "void" with "object" for template arguments in the generated C#.

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/1033/head
Dimitar Dobrev 8 years ago
parent
commit
db3e04cca0
  1. 3
      src/Generator/Generators/CSharp/CSharpTypePrinter.cs
  2. 5
      tests/CSharp/CSharpTemplates.cpp
  3. 1
      tests/CSharp/CSharpTemplates.h

3
src/Generator/Generators/CSharp/CSharpTypePrinter.cs

@ -590,7 +590,8 @@ namespace CppSharp.Generators.CSharp @@ -590,7 +590,8 @@ namespace CppSharp.Generators.CSharp
if (a.Type.Type == null)
return a.Integral.ToString(CultureInfo.InvariantCulture);
var type = a.Type.Type.Desugar();
return type.IsPointerToPrimitiveType() ? IntPtrType : type.Visit(this);
return type.IsPointerToPrimitiveType() ? IntPtrType :
type.IsPrimitiveType(PrimitiveType.Void) ? "object" : type.Visit(this);
}
public override TypePrinterResult VisitParameterDecl(Parameter parameter)

5
tests/CSharp/CSharpTemplates.cpp

@ -108,6 +108,11 @@ void TemplateSpecializer::completeSpecializationInParameter(TwoTemplateArgs<int @@ -108,6 +108,11 @@ void TemplateSpecializer::completeSpecializationInParameter(TwoTemplateArgs<int
{
}
VirtualTemplate<void> TemplateSpecializer::returnSpecializedWithVoid()
{
return VirtualTemplate<void>();
}
RegularDynamic::RegularDynamic()
{
}

1
tests/CSharp/CSharpTemplates.h

@ -430,6 +430,7 @@ public: @@ -430,6 +430,7 @@ public:
void completeSpecializationInParameter(TwoTemplateArgs<int*, int*> p1,
TwoTemplateArgs<int*, int> p2,
TwoTemplateArgs<int*, float> p3);
VirtualTemplate<void> returnSpecializedWithVoid();
private:
IndependentFields<int> independentFields;
DependentValueFields<bool> dependentValueFields;

Loading…
Cancel
Save