diff --git a/src/Generator.Tests/Passes/TestPasses.cs b/src/Generator.Tests/Passes/TestPasses.cs index bc3e145e..a09d1c14 100644 --- a/src/Generator.Tests/Passes/TestPasses.cs +++ b/src/Generator.Tests/Passes/TestPasses.cs @@ -452,6 +452,17 @@ namespace CppSharp.Generator.Tests.Passes Assert.AreEqual(AccessSpecifier.Protected, @protected.Access); } + [Test] + public void TestGetterSetterToPropertyPassHandlesBaseClassesFirst() + { + var @class = AstContext.Class("TestOverridingVirtualPropertyInNamespacedClass"); + + passBuilder.AddPass(new GetterSetterToPropertyPass()); + passBuilder.RunPasses(pass => pass.VisitASTContext(AstContext)); + + Assert.IsNotEmpty(@class.Properties); + } + private PassBuilder passBuilder; } } diff --git a/tests/dotnet/Native/Passes.h b/tests/dotnet/Native/Passes.h index be83d523..6d8b51f5 100644 --- a/tests/dotnet/Native/Passes.h +++ b/tests/dotnet/Native/Passes.h @@ -141,3 +141,16 @@ class TestExtractInterfacePass public: void DoSomething(); }; + +// https://github.com/mono/CppSharp/issues/1283 +namespace NamespaceWithVirtualPropertyClass { + class TestNamespacedClassWithVirtualProperty { + public: + virtual int property(); + }; +} + +class TestOverridingVirtualPropertyInNamespacedClass : public NamespaceWithVirtualPropertyClass::TestNamespacedClassWithVirtualProperty { +public: + virtual int property() override; +};