diff --git a/src/Generator/Passes/GetterSetterToPropertyAdvancedPass.cs b/src/Generator/Passes/GetterSetterToPropertyAdvancedPass.cs index 6753c08c..979579c2 100644 --- a/src/Generator/Passes/GetterSetterToPropertyAdvancedPass.cs +++ b/src/Generator/Passes/GetterSetterToPropertyAdvancedPass.cs @@ -37,7 +37,7 @@ namespace CppSharp.Passes foreach (Method getter in from getter in getters where getter.IsGenerated && - ((Class) getter.Namespace).Methods.All(m => m == getter || m.Name != getter.Name) + ((Class) getter.Namespace).Methods.All(m => m == getter || m.Ignore || m.Name != getter.Name) select getter) { // Make it a read-only property diff --git a/src/Generator/Passes/RenamePass.cs b/src/Generator/Passes/RenamePass.cs index 5431aa75..705aefa8 100644 --- a/src/Generator/Passes/RenamePass.cs +++ b/src/Generator/Passes/RenamePass.cs @@ -161,10 +161,10 @@ namespace CppSharp.Passes if (method != null) { return ((Class) method.Namespace).Methods.Where( - m => m.Parameters.SequenceEqual(function.Parameters, new ParameterComparer())); + m => !m.Ignore && m.Parameters.SequenceEqual(function.Parameters, new ParameterComparer())); } return function.Namespace.Functions.Where( - f => f.Parameters.SequenceEqual(function.Parameters, new ParameterComparer())); + f => !f.Ignore && f.Parameters.SequenceEqual(function.Parameters, new ParameterComparer())); } public override bool VisitEnumItem(Enumeration.Item item) diff --git a/tests/CSharpTemp/CSharpTemp.Tests.cs b/tests/CSharpTemp/CSharpTemp.Tests.cs index 65c17d6b..dbe0a858 100644 --- a/tests/CSharpTemp/CSharpTemp.Tests.cs +++ b/tests/CSharpTemp/CSharpTemp.Tests.cs @@ -1,10 +1,8 @@ using System; using System.Reflection; -using CppSharp.Runtime; -using CSharpTemp; using CppSharp.Utils; +using CSharpTemp; using NUnit.Framework; -using Foo = CSharpTemp.Foo; public class CSharpTempTests : GeneratorTestFixture { @@ -59,6 +57,7 @@ public class CSharpTempTests : GeneratorTestFixture public void TestProperties() { var proprietor = new Proprietor(); + Assert.That(proprietor.Parent, Is.EqualTo(0)); proprietor.Value = 20; Assert.That(proprietor.Value, Is.EqualTo(20)); proprietor.Prop = 50; diff --git a/tests/CSharpTemp/CSharpTemp.cpp b/tests/CSharpTemp/CSharpTemp.cpp index ae6f267d..925882ab 100644 --- a/tests/CSharpTemp/CSharpTemp.cpp +++ b/tests/CSharpTemp/CSharpTemp.cpp @@ -152,6 +152,11 @@ int AbstractProprietor::parent() return 0; } +int AbstractProprietor::parent() const +{ + return 0; +} + void Proprietor::setValue(int value) { m_value = value; diff --git a/tests/CSharpTemp/CSharpTemp.h b/tests/CSharpTemp/CSharpTemp.h index 797c1176..6706fafa 100644 --- a/tests/CSharpTemp/CSharpTemp.h +++ b/tests/CSharpTemp/CSharpTemp.h @@ -102,6 +102,7 @@ public: virtual void setProp(long prop); virtual int parent(); + virtual int parent() const; protected: int m_value;