Browse Source

Generate valid C# when a function is named "get<number>"

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

3
src/Generator/Passes/GetterSetterToPropertyPass.cs

@ -224,7 +224,8 @@ namespace CppSharp.Passes
private static string GetPropertyName(string name) private static string GetPropertyName(string name)
{ {
var firstWord = GetFirstWord(name); var firstWord = GetFirstWord(name);
if (Match(firstWord, new[] { "get" }) && name != firstWord) if (Match(firstWord, new[] { "get" }) && name != firstWord &&
!char.IsNumber(name[3]))
{ {
if (char.IsLower(name[0])) if (char.IsLower(name[0]))
{ {

2
tests/Common/Common.Tests.cs

@ -503,6 +503,8 @@ public class CommonTests : GeneratorTestFixture
Assert.That(prop.nestedEnum(), Is.EqualTo(5)); Assert.That(prop.nestedEnum(), Is.EqualTo(5));
Assert.That(prop.nestedEnum(55), Is.EqualTo(55)); Assert.That(prop.nestedEnum(55), Is.EqualTo(55));
Assert.That(prop.Get32Bit, Is.EqualTo(10));
} }
} }

5
tests/Common/Common.cpp

@ -596,6 +596,11 @@ int TestProperties::nestedEnum(int i)
return i; return i;
} }
int TestProperties::get32Bit()
{
return 10;
}
HasOverridenSetter::HasOverridenSetter() HasOverridenSetter::HasOverridenSetter()
{ {
} }

2
tests/Common/Common.h

@ -609,6 +609,8 @@ public:
int nestedEnum(); int nestedEnum();
int nestedEnum(int i); int nestedEnum(int i);
int get32Bit();
private: private:
int FieldValue; int FieldValue;
double _refToPrimitiveInSetter; double _refToPrimitiveInSetter;

Loading…
Cancel
Save