Browse Source

Fixed a regression with abstract types with the same property as a base type.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
pull/573/head
Dimitar Dobrev 10 years ago
parent
commit
87845ad51d
  1. 2
      src/Generator/Generators/CSharp/CSharpTextTemplate.cs
  2. 13
      tests/CSharp/CSharp.cpp
  3. 13
      tests/CSharp/CSharp.h

2
src/Generator/Generators/CSharp/CSharpTextTemplate.cs

@ -1213,7 +1213,7 @@ namespace CppSharp.Generators.CSharp
// check if overriding a property from a secondary base // check if overriding a property from a secondary base
Property rootBaseProperty; Property rootBaseProperty;
var isOverride = prop.IsOverride && var isOverride = prop.IsOverride &&
(rootBaseProperty = @class.GetBaseProperty(prop, true)) != null && (rootBaseProperty = @class.GetBaseProperty(prop, true, true)) != null &&
(rootBaseProperty.IsVirtual || rootBaseProperty.IsPure); (rootBaseProperty.IsVirtual || rootBaseProperty.IsPure);
if (isOverride) if (isOverride)

13
tests/CSharp/CSharp.cpp

@ -858,3 +858,16 @@ void QApplication::notify(QObject* receiver)
{ {
delete receiver; delete receiver;
} }
HasSamePropertyInDerivedAbstractType::HasSamePropertyInDerivedAbstractType()
{
}
char* HasSamePropertyInDerivedAbstractType::property()
{
return 0;
}
InheritsFromHasSamePropertyInDerivedAbstractType::InheritsFromHasSamePropertyInDerivedAbstractType()
{
}

13
tests/CSharp/CSharp.h

@ -786,3 +786,16 @@ public:
virtual void notify(QObject* receiver); virtual void notify(QObject* receiver);
}; };
class DLL_API HasSamePropertyInDerivedAbstractType
{
public:
HasSamePropertyInDerivedAbstractType();
char* property();
};
class InheritsFromHasSamePropertyInDerivedAbstractType : public HasSamePropertyInDerivedAbstractType
{
public:
InheritsFromHasSamePropertyInDerivedAbstractType();
virtual int property() = 0;
};

Loading…
Cancel
Save