Skip to content

Commit db3e04c

Browse files
committed
Represented "void" with "object" for template arguments in the generated C#.
Signed-off-by: Dimitar Dobrev <[email protected]>
1 parent 1a1308a commit db3e04c

File tree

3 files changed

+8
-1
lines changed

3 files changed

+8
-1
lines changed

src/Generator/Generators/CSharp/CSharpTypePrinter.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -590,7 +590,8 @@ public TypePrinterResult VisitTemplateArgument(TemplateArgument a)
590590
if (a.Type.Type == null)
591591
return a.Integral.ToString(CultureInfo.InvariantCulture);
592592
var type = a.Type.Type.Desugar();
593-
return type.IsPointerToPrimitiveType() ? IntPtrType : type.Visit(this);
593+
return type.IsPointerToPrimitiveType() ? IntPtrType :
594+
type.IsPrimitiveType(PrimitiveType.Void) ? "object" : type.Visit(this);
594595
}
595596

596597
public override TypePrinterResult VisitParameterDecl(Parameter parameter)

tests/CSharp/CSharpTemplates.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,11 @@ void TemplateSpecializer::completeSpecializationInParameter(TwoTemplateArgs<int
108108
{
109109
}
110110

111+
VirtualTemplate<void> TemplateSpecializer::returnSpecializedWithVoid()
112+
{
113+
return VirtualTemplate<void>();
114+
}
115+
111116
RegularDynamic::RegularDynamic()
112117
{
113118
}

tests/CSharp/CSharpTemplates.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -430,6 +430,7 @@ class DLL_API TemplateSpecializer
430430
void completeSpecializationInParameter(TwoTemplateArgs<int*, int*> p1,
431431
TwoTemplateArgs<int*, int> p2,
432432
TwoTemplateArgs<int*, float> p3);
433+
VirtualTemplate<void> returnSpecializedWithVoid();
433434
private:
434435
IndependentFields<int> independentFields;
435436
DependentValueFields<bool> dependentValueFields;

0 commit comments

Comments
 (0)