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

2
tests/CSharp/CSharp.cpp

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

Loading…
Cancel
Save