Browse Source

Removed ignored methods from consideration when generating properties.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
incorrect_trunit_test
Dimitar Dobrev 10 years ago
parent
commit
8ddc1e4736
  1. 2
      src/Generator/Passes/GetterSetterToPropertyAdvancedPass.cs
  2. 4
      src/Generator/Passes/RenamePass.cs
  3. 5
      tests/CSharpTemp/CSharpTemp.Tests.cs
  4. 5
      tests/CSharpTemp/CSharpTemp.cpp
  5. 1
      tests/CSharpTemp/CSharpTemp.h

2
src/Generator/Passes/GetterSetterToPropertyAdvancedPass.cs

@ -37,7 +37,7 @@ namespace CppSharp.Passes
foreach (Method getter in foreach (Method getter in
from getter in getters from getter in getters
where getter.IsGenerated && 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) select getter)
{ {
// Make it a read-only property // Make it a read-only property

4
src/Generator/Passes/RenamePass.cs

@ -161,10 +161,10 @@ namespace CppSharp.Passes
if (method != null) if (method != null)
{ {
return ((Class) method.Namespace).Methods.Where( 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( 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) public override bool VisitEnumItem(Enumeration.Item item)

5
tests/CSharpTemp/CSharpTemp.Tests.cs

@ -1,10 +1,8 @@
using System; using System;
using System.Reflection; using System.Reflection;
using CppSharp.Runtime;
using CSharpTemp;
using CppSharp.Utils; using CppSharp.Utils;
using CSharpTemp;
using NUnit.Framework; using NUnit.Framework;
using Foo = CSharpTemp.Foo;
public class CSharpTempTests : GeneratorTestFixture public class CSharpTempTests : GeneratorTestFixture
{ {
@ -59,6 +57,7 @@ public class CSharpTempTests : GeneratorTestFixture
public void TestProperties() public void TestProperties()
{ {
var proprietor = new Proprietor(); var proprietor = new Proprietor();
Assert.That(proprietor.Parent, Is.EqualTo(0));
proprietor.Value = 20; proprietor.Value = 20;
Assert.That(proprietor.Value, Is.EqualTo(20)); Assert.That(proprietor.Value, Is.EqualTo(20));
proprietor.Prop = 50; proprietor.Prop = 50;

5
tests/CSharpTemp/CSharpTemp.cpp

@ -152,6 +152,11 @@ int AbstractProprietor::parent()
return 0; return 0;
} }
int AbstractProprietor::parent() const
{
return 0;
}
void Proprietor::setValue(int value) void Proprietor::setValue(int value)
{ {
m_value = value; m_value = value;

1
tests/CSharpTemp/CSharpTemp.h

@ -102,6 +102,7 @@ public:
virtual void setProp(long prop); virtual void setProp(long prop);
virtual int parent(); virtual int parent();
virtual int parent() const;
protected: protected:
int m_value; int m_value;

Loading…
Cancel
Save