From 87845ad51d7e52eea78bc41a8602abc346a5c0bf Mon Sep 17 00:00:00 2001 From: Dimitar Dobrev Date: Sat, 3 Oct 2015 08:33:30 +0300 Subject: [PATCH] Fixed a regression with abstract types with the same property as a base type. Signed-off-by: Dimitar Dobrev --- .../Generators/CSharp/CSharpTextTemplate.cs | 2 +- tests/CSharp/CSharp.cpp | 13 +++++++++++++ tests/CSharp/CSharp.h | 13 +++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) 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; +};