Browse Source

Fixed the generated C# for arguments with default values of "nullptr".

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/1139/head
Dimitar Dobrev 7 years ago
parent
commit
dc27c44606
  1. 2
      src/Generator/Passes/HandleDefaultParamValuesPass.cs
  2. 2
      tests/CSharp/CSharp.cpp
  3. 2
      tests/CSharp/CSharp.h

2
src/Generator/Passes/HandleDefaultParamValuesPass.cs

@ -67,7 +67,7 @@ namespace CppSharp.Passes
var desugared = type.Desugar(); var desugared = type.Desugar();
if (!desugared.IsPrimitiveTypeConvertibleToRef() && if (!desugared.IsPrimitiveTypeConvertibleToRef() &&
expression.String == "0") (expression.String == "0" || expression.String == "nullptr"))
{ {
result = $"default({desugared})"; result = $"default({desugared})";
return true; return true;

2
tests/CSharp/CSharp.cpp

@ -548,7 +548,7 @@ MethodsWithDefaultValues::~MethodsWithDefaultValues()
{ {
} }
void MethodsWithDefaultValues::defaultPointer(Foo *ptr) void MethodsWithDefaultValues::defaultPointer(Foo *ptr1, Foo *ptr2)
{ {
} }

2
tests/CSharp/CSharp.h

@ -391,7 +391,7 @@ public:
MethodsWithDefaultValues(double d, QList<QColor> list = QList<QColor>()); MethodsWithDefaultValues(double d, QList<QColor> list = QList<QColor>());
MethodsWithDefaultValues(QRect* pointer, float f = 1, int i = std::numeric_limits<double>::infinity()); MethodsWithDefaultValues(QRect* pointer, float f = 1, int i = std::numeric_limits<double>::infinity());
~MethodsWithDefaultValues(); ~MethodsWithDefaultValues();
void defaultPointer(Foo* ptr = 0); void defaultPointer(Foo* ptr1 = 0, Foo* ptr2 = nullptr);
void defaultVoidStar(void* ptr = 0); void defaultVoidStar(void* ptr = 0);
void defaultValueType(QGenericArgument valueType = QGenericArgument()); void defaultValueType(QGenericArgument valueType = QGenericArgument());
void defaultChar(char c = 'a'); void defaultChar(char c = 'a');

Loading…
Cancel
Save