Browse Source

Merge pull request #171 from ddobrev/master

Fixed the ignoring of methods
pull/172/merge
João Matos 12 years ago
parent
commit
e439c519bc
  1. 11
      src/Generator.Tests/Passes/TestPasses.cs
  2. 10
      src/Generator/Library.cs
  3. 5
      tests/Native/Passes.h

11
src/Generator.Tests/Passes/TestPasses.cs

@ -1,4 +1,5 @@ @@ -1,4 +1,5 @@
using CppSharp.Passes;
using System.Linq;
using CppSharp.Passes;
using NUnit.Framework;
namespace CppSharp.Generator.Tests.Passes
@ -99,5 +100,13 @@ namespace CppSharp.Generator.Tests.Passes @@ -99,5 +100,13 @@ namespace CppSharp.Generator.Tests.Passes
{
}
[Test]
public void TestIgnoringMethod()
{
AstContext.IgnoreClassMethodWithName("Foo", "toIgnore");
Assert.IsTrue(AstContext.FindClass("Foo").First().Methods.Find(
m => m.Name == "toIgnore").ExplicityIgnored);
}
}
}

10
src/Generator/Library.cs

@ -275,13 +275,11 @@ namespace CppSharp @@ -275,13 +275,11 @@ namespace CppSharp
public static void IgnoreClassMethodWithName(this ASTContext context, string className,
string name)
{
foreach (var @class in context.FindClass(name))
foreach (var method in from @class in context.FindClass(className)
from method in @class.Methods
where method.Name == name
select method)
{
var method = @class.Methods.Find(m => m.Name == name);
if (method == null)
return;
method.ExplicityIgnored = true;
}
}

5
tests/Native/Passes.h

@ -14,7 +14,10 @@ enum FlagEnum2 @@ -14,7 +14,10 @@ enum FlagEnum2
D1 = 1 << 4,
};
class Foo { };
class Foo
{
void toIgnore() { }
};
void FooStart(Foo*, int);
struct TestRename

Loading…
Cancel
Save