Browse Source

Expose returned values of non-void setters

Now we generate them as methods too.

Fixes https://github.com/mono/CppSharp/issues/960.

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
const-wchar_t
Dimitar Dobrev 5 years ago
parent
commit
a1ddbd82d7
  1. 3
      src/Generator/Passes/GetterSetterToPropertyPass.cs
  2. 4
      tests/Common/Common.Tests.cs
  3. 2
      tests/Common/Common.cpp
  4. 2
      tests/Common/Common.h

3
src/Generator/Passes/GetterSetterToPropertyPass.cs

@ -214,7 +214,8 @@ namespace CppSharp.Passes @@ -214,7 +214,8 @@ namespace CppSharp.Passes
conflict.GetMethod = null;
property.GetMethod.GenerationKind = GenerationKind.Internal;
if (property.SetMethod != null)
if (property.SetMethod != null &&
property.SetMethod.OriginalReturnType.Type.Desugar().IsPrimitiveType(PrimitiveType.Void))
property.SetMethod.GenerationKind = GenerationKind.Internal;
property.Namespace = @class;
@class.Properties.Add(property);

4
tests/Common/Common.Tests.cs

@ -551,9 +551,13 @@ public class CommonTests : GeneratorTestFixture @@ -551,9 +551,13 @@ public class CommonTests : GeneratorTestFixture
prop.SetterReturnsBoolean = 35;
Assert.That(prop.SetterReturnsBoolean, Is.EqualTo(35));
Assert.That(prop.SetSetterReturnsBoolean(35), Is.False);
Assert.That(prop.SetSetterReturnsBoolean(40), Is.True);
prop.VirtualSetterReturnsBoolean = 45;
Assert.That(prop.VirtualSetterReturnsBoolean, Is.EqualTo(45));
Assert.That(prop.SetVirtualSetterReturnsBoolean(45), Is.False);
Assert.That(prop.SetVirtualSetterReturnsBoolean(50), Is.True);
Assert.That(prop.nestedEnum(), Is.EqualTo(5));
Assert.That(prop.nestedEnum(55), Is.EqualTo(55));

2
tests/Common/Common.cpp

@ -631,7 +631,7 @@ int TestProperties::setterReturnsBoolean() @@ -631,7 +631,7 @@ int TestProperties::setterReturnsBoolean()
return _setterReturnsBoolean;
}
bool TestProperties::setterReturnsBoolean(int value)
bool TestProperties::setSetterReturnsBoolean(int value)
{
bool changed = _setterReturnsBoolean != value;
_setterReturnsBoolean = value;

2
tests/Common/Common.h

@ -623,7 +623,7 @@ public: @@ -623,7 +623,7 @@ public:
void set(int value);
int setterReturnsBoolean();
bool setterReturnsBoolean(int value);
bool setSetterReturnsBoolean(int value);
virtual int virtualSetterReturnsBoolean();
virtual bool setVirtualSetterReturnsBoolean(int value);

Loading…
Cancel
Save