Browse Source

Fix issue #1283 (#1855)

* Fixes issue #1283

* Add test for issue #1283

* Move test for issue #1283 to CSharp test suite

* Fix typo
pull/1861/head
Ruben Tytgat 11 months ago committed by GitHub
parent
commit
b658ff32f1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 2
      src/Generator/Passes/GetterSetterToPropertyPass.cs
  2. 5
      tests/dotnet/CSharp/CSharp.cpp
  3. 13
      tests/dotnet/CSharp/CSharp.h

2
src/Generator/Passes/GetterSetterToPropertyPass.cs

@ -40,7 +40,7 @@ namespace CppSharp.Passes @@ -40,7 +40,7 @@ namespace CppSharp.Passes
}
public GetterSetterToPropertyPass()
=> VisitOptions.ResetFlags(VisitFlags.ClassTemplateSpecializations);
=> VisitOptions.ResetFlags(VisitFlags.ClassBases | VisitFlags.ClassTemplateSpecializations);
public override bool VisitClassDecl(Class @class)
{

5
tests/dotnet/CSharp/CSharp.cpp

@ -1282,6 +1282,11 @@ int HasConflictWithAbstractProperty::conflictWithProperty() @@ -1282,6 +1282,11 @@ int HasConflictWithAbstractProperty::conflictWithProperty()
return 0;
}
int TestOverrideOfPropertyInNamespacedClass::property()
{
return 0;
}
const char* HasVirtualTakesReturnsProblematicTypes::virtualTakesAndReturnsString(const char* c)
{
return c;

13
tests/dotnet/CSharp/CSharp.h

@ -1029,6 +1029,19 @@ public: @@ -1029,6 +1029,19 @@ public:
virtual int getConflictWithProperty() = 0;
};
// https://github.com/mono/CppSharp/issues/1283
namespace NamespaceWithVirtualPropertyClass {
class DLL_API HasOverriddenPropertyInNamespacedClass {
public:
virtual int property() = 0;
};
}
class DLL_API TestOverrideOfPropertyInNamespacedClass : public NamespaceWithVirtualPropertyClass::HasOverriddenPropertyInNamespacedClass {
public:
virtual int property() override;
};
template <typename T>
class lowerCase
{

Loading…
Cancel
Save