Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
@ -356,7 +356,7 @@ namespace CppSharp.AST
var type = obj as PointerType;
if (type == null) return false;
return Pointee.Equals(type.Pointee)
return QualifiedPointee.Equals(type.QualifiedPointee)
&& Modifier == type.Modifier;
}
@ -76,7 +76,12 @@ namespace CppSharp.Passes
AST.Type funcType = GetFinalType(function.Parameters[i]);
AST.Type overloadType = GetFinalType(overload.Parameters[i]);
if (!funcType.Equals(overloadType))
AST.Type funcPointee = funcType.GetFinalPointee() ?? funcType;
AST.Type overloadPointee = overloadType.GetFinalPointee() ?? overloadType;
if (((funcPointee.IsPrimitiveType() || overloadPointee.IsPrimitiveType()) &&
!funcType.Equals(overloadType)) ||
!funcPointee.Equals(overloadPointee))
return false;
@ -27,7 +27,11 @@ public class CommonTests : GeneratorTestFixture
using (var hasOverloadsWithDifferentPointerKindsToSameType =
new HasOverloadsWithDifferentPointerKindsToSameType())
{
hasOverloadsWithDifferentPointerKindsToSameType.Overload(foo, 0);
using (var foo2 = new Foo2())
hasOverloadsWithDifferentPointerKindsToSameType.Overload(foo2, 0);
using (var overridesNonDirectVirtual = new OverridesNonDirectVirtual())
@ -108,11 +108,11 @@ Bar::Bar()
Bar::Bar(Foo foo)
Bar::Bar(const Foo* foo)
@ -853,6 +853,14 @@ void HasOverloadsWithDifferentPointerKindsToSameType::overload(Foo& rx, int from
void HasOverloadsWithDifferentPointerKindsToSameType::overload(const Foo2& rx, int from)
void HasOverloadsWithDifferentPointerKindsToSameType::overload(Foo2&& rx, int from)
void HasOverloadsWithDifferentPointerKindsToSameType::dispose()
@ -125,8 +125,8 @@ struct DLL_API Bar
};
Bar();
Bar(Foo foo);
explicit Bar(const Foo* foo);
Item RetItem1() const;
int A;
float B;
@ -1310,6 +1310,8 @@ public:
void overload(const int& i);
void overload(const Foo& rx, int from = -1);
void overload(Foo& rx, int from = -1);
void overload(const Foo2& rx, int from = -1);
void overload(Foo2&& rx, int from = -1);
void dispose();