Browse Source

Merged the pass for ignoring move ctors to the one for ignoring in general.

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/876/head
Dimitar Dobrev 8 years ago
parent
commit
3d9b8df2e3
  1. 3
      src/Generator/Driver.cs
  2. 6
      src/Generator/Passes/CheckIgnoredDecls.cs
  3. 36
      src/Generator/Passes/IgnoreMoveConstructorsPass.cs

3
src/Generator/Driver.cs

@ -301,7 +301,6 @@ namespace CppSharp @@ -301,7 +301,6 @@ namespace CppSharp
TranslationUnitPasses.AddPass(new GenerateAnonymousDelegatesPass());
TranslationUnitPasses.AddPass(new ConstructorToConversionOperatorPass());
TranslationUnitPasses.AddPass(new MarshalPrimitivePointersAsRefTypePass());
TranslationUnitPasses.AddPass(new IgnoreMoveConstructorsPass());
TranslationUnitPasses.AddPass(new CheckAmbiguousFunctions());
TranslationUnitPasses.AddPass(new CheckOperatorsOverloadsPass());
TranslationUnitPasses.AddPass(new CheckVirtualOverrideReturnCovariance());
@ -501,8 +500,6 @@ namespace CppSharp @@ -501,8 +500,6 @@ namespace CppSharp
library.Preprocess(driver, driver.Context.ASTContext);
driver.ProcessCode();
library.Postprocess(driver, driver.Context.ASTContext);

6
src/Generator/Passes/CheckIgnoredDecls.cs

@ -179,6 +179,12 @@ namespace CppSharp.Passes @@ -179,6 +179,12 @@ namespace CppSharp.Passes
if (!CheckIgnoredBaseOverridenMethod(method))
return false;
if (method.IsMoveConstructor)
{
method.ExplicitlyIgnore();
return true;
}
return base.VisitMethodDecl(method);
}

36
src/Generator/Passes/IgnoreMoveConstructorsPass.cs

@ -1,36 +0,0 @@ @@ -1,36 +0,0 @@
using CppSharp.AST;
using CppSharp.Passes;
namespace CppSharp.Passes
{
public class IgnoreMoveConstructorsPass : TranslationUnitPass
{
public IgnoreMoveConstructorsPass()
{
VisitOptions.VisitClassBases = false;
VisitOptions.VisitClassFields = false;
VisitOptions.VisitClassProperties = false;
VisitOptions.VisitEventParameters = false;
VisitOptions.VisitFunctionParameters = false;
VisitOptions.VisitFunctionReturnType = false;
VisitOptions.VisitNamespaceEnums = false;
VisitOptions.VisitNamespaceEvents = false;
VisitOptions.VisitNamespaceVariables = false;
VisitOptions.VisitTemplateArguments = false;
}
public override bool VisitMethodDecl(Method method)
{
if (!base.VisitMethodDecl(method))
return false;
if (method.IsMoveConstructor)
{
method.ExplicitlyIgnore();
return true;
}
return false;
}
}
}
Loading…
Cancel
Save