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 2 years 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
} }
public GetterSetterToPropertyPass() public GetterSetterToPropertyPass()
=> VisitOptions.ResetFlags(VisitFlags.ClassTemplateSpecializations); => VisitOptions.ResetFlags(VisitFlags.ClassBases | VisitFlags.ClassTemplateSpecializations);
public override bool VisitClassDecl(Class @class) public override bool VisitClassDecl(Class @class)
{ {

5
tests/dotnet/CSharp/CSharp.cpp

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

13
tests/dotnet/CSharp/CSharp.h

@ -1029,6 +1029,19 @@ public:
virtual int getConflictWithProperty() = 0; 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> template <typename T>
class lowerCase class lowerCase
{ {

Loading…
Cancel
Save