diff --git a/src/Generator/Generators/CSharp/CSharpTextTemplate.cs b/src/Generator/Generators/CSharp/CSharpTextTemplate.cs index e944b27b..097a4e83 100644 --- a/src/Generator/Generators/CSharp/CSharpTextTemplate.cs +++ b/src/Generator/Generators/CSharp/CSharpTextTemplate.cs @@ -1213,7 +1213,7 @@ namespace CppSharp.Generators.CSharp // check if overriding a property from a secondary base Property rootBaseProperty; var isOverride = prop.IsOverride && - (rootBaseProperty = @class.GetBaseProperty(prop, true)) != null && + (rootBaseProperty = @class.GetBaseProperty(prop, true, true)) != null && (rootBaseProperty.IsVirtual || rootBaseProperty.IsPure); if (isOverride) diff --git a/tests/CSharp/CSharp.cpp b/tests/CSharp/CSharp.cpp index 47f64a11..0974e896 100644 --- a/tests/CSharp/CSharp.cpp +++ b/tests/CSharp/CSharp.cpp @@ -858,3 +858,16 @@ void QApplication::notify(QObject* receiver) { delete receiver; } + +HasSamePropertyInDerivedAbstractType::HasSamePropertyInDerivedAbstractType() +{ +} + +char* HasSamePropertyInDerivedAbstractType::property() +{ + return 0; +} + +InheritsFromHasSamePropertyInDerivedAbstractType::InheritsFromHasSamePropertyInDerivedAbstractType() +{ +} diff --git a/tests/CSharp/CSharp.h b/tests/CSharp/CSharp.h index 90abe3c0..be564103 100644 --- a/tests/CSharp/CSharp.h +++ b/tests/CSharp/CSharp.h @@ -786,3 +786,16 @@ public: virtual void notify(QObject* receiver); }; +class DLL_API HasSamePropertyInDerivedAbstractType +{ +public: + HasSamePropertyInDerivedAbstractType(); + char* property(); +}; + +class InheritsFromHasSamePropertyInDerivedAbstractType : public HasSamePropertyInDerivedAbstractType +{ +public: + InheritsFromHasSamePropertyInDerivedAbstractType(); + virtual int property() = 0; +};