From dc27c4460604cf71cc06e77e294b1a3147c54d25 Mon Sep 17 00:00:00 2001 From: Dimitar Dobrev Date: Mon, 15 Oct 2018 08:28:45 +0300 Subject: [PATCH] Fixed the generated C# for arguments with default values of "nullptr". Signed-off-by: Dimitar Dobrev --- src/Generator/Passes/HandleDefaultParamValuesPass.cs | 2 +- tests/CSharp/CSharp.cpp | 2 +- tests/CSharp/CSharp.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Generator/Passes/HandleDefaultParamValuesPass.cs b/src/Generator/Passes/HandleDefaultParamValuesPass.cs index 46451180..58281a54 100644 --- a/src/Generator/Passes/HandleDefaultParamValuesPass.cs +++ b/src/Generator/Passes/HandleDefaultParamValuesPass.cs @@ -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; diff --git a/tests/CSharp/CSharp.cpp b/tests/CSharp/CSharp.cpp index 2b0997b1..a45e8b81 100644 --- a/tests/CSharp/CSharp.cpp +++ b/tests/CSharp/CSharp.cpp @@ -548,7 +548,7 @@ MethodsWithDefaultValues::~MethodsWithDefaultValues() { } -void MethodsWithDefaultValues::defaultPointer(Foo *ptr) +void MethodsWithDefaultValues::defaultPointer(Foo *ptr1, Foo *ptr2) { } diff --git a/tests/CSharp/CSharp.h b/tests/CSharp/CSharp.h index 466719ca..08aece67 100644 --- a/tests/CSharp/CSharp.h +++ b/tests/CSharp/CSharp.h @@ -391,7 +391,7 @@ public: MethodsWithDefaultValues(double d, QList list = QList()); MethodsWithDefaultValues(QRect* pointer, float f = 1, int i = std::numeric_limits::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');