Browse Source

Fixed the generated code in a case of ambiguous overloads.

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/1156/head
Dimitar Dobrev 7 years ago
parent
commit
202ae75df4
  1. 2
      src/AST/Type.cs
  2. 4
      tests/Common/Common.Tests.cs
  3. 8
      tests/Common/Common.cpp
  4. 2
      tests/Common/Common.h

2
src/AST/Type.cs

@ -356,7 +356,7 @@ namespace CppSharp.AST @@ -356,7 +356,7 @@ namespace CppSharp.AST
var type = obj as PointerType;
if (type == null) return false;
return QualifiedPointee.Equals(type.QualifiedPointee)
return Pointee.Equals(type.Pointee)
&& Modifier == type.Modifier;
}

4
tests/Common/Common.Tests.cs

@ -24,6 +24,10 @@ public class CommonTests : GeneratorTestFixture @@ -24,6 +24,10 @@ public class CommonTests : GeneratorTestFixture
{
Bar bar = foo;
Assert.IsTrue(Bar.Item.Item1 == bar);
using (var hasOverloadsWithDifferentPointerKindsToSameType =
new HasOverloadsWithDifferentPointerKindsToSameType())
hasOverloadsWithDifferentPointerKindsToSameType.Overload(foo, 0);
}
using (var overridesNonDirectVirtual = new OverridesNonDirectVirtual())
{

8
tests/Common/Common.cpp

@ -845,6 +845,14 @@ void HasOverloadsWithDifferentPointerKindsToSameType::overload(const int& i) @@ -845,6 +845,14 @@ void HasOverloadsWithDifferentPointerKindsToSameType::overload(const int& i)
{
}
void HasOverloadsWithDifferentPointerKindsToSameType::overload(const Foo& rx, int from)
{
}
void HasOverloadsWithDifferentPointerKindsToSameType::overload(Foo& rx, int from)
{
}
void HasOverloadsWithDifferentPointerKindsToSameType::dispose()
{
}

2
tests/Common/Common.h

@ -1308,6 +1308,8 @@ public: @@ -1308,6 +1308,8 @@ public:
void overload(int& i);
void overload(int&& i);
void overload(const int& i);
void overload(const Foo& rx, int from = -1);
void overload(Foo& rx, int from = -1);
void dispose();
};

Loading…
Cancel
Save