Browse Source

Removed the visitors when checking for ignored declarations.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
pull/510/head
Dimitar Dobrev 10 years ago
parent
commit
8349d52814
  1. 16
      src/Generator/Passes/CheckIgnoredDecls.cs
  2. 23
      src/Generator/Types/Types.cs

16
src/Generator/Passes/CheckIgnoredDecls.cs

@ -321,7 +321,7 @@ namespace CppSharp.Passes @@ -321,7 +321,7 @@ namespace CppSharp.Passes
/// reasons: incomplete definitions, being explicitly ignored, or also
/// by being a type we do not know how to handle.
/// </remarks>
bool HasInvalidType(Type type, out string msg)
private bool HasInvalidType(Type type, out string msg)
{
if (type == null)
{
@ -355,7 +355,7 @@ namespace CppSharp.Passes @@ -355,7 +355,7 @@ namespace CppSharp.Passes
return false;
}
bool HasInvalidDecl(Declaration decl, out string msg)
private bool HasInvalidDecl(Declaration decl, out string msg)
{
if (decl == null)
{
@ -393,7 +393,7 @@ namespace CppSharp.Passes @@ -393,7 +393,7 @@ namespace CppSharp.Passes
return !decl.IsIncomplete;
}
bool IsTypeIgnored(Type type)
private bool IsTypeIgnored(Type type)
{
var checker = new TypeIgnoreChecker(Driver.TypeDatabase);
type.Visit(checker);
@ -401,12 +401,14 @@ namespace CppSharp.Passes @@ -401,12 +401,14 @@ namespace CppSharp.Passes
return checker.IsIgnored;
}
bool IsDeclIgnored(Declaration decl)
private bool IsDeclIgnored(Declaration decl)
{
var checker = new TypeIgnoreChecker(Driver.TypeDatabase);
decl.Visit(checker);
var parameter = decl as Parameter;
if (parameter != null && parameter.Type.Desugar().IsPrimitiveType(PrimitiveType.Null))
return true;
return checker.IsIgnored;
TypeMap typeMap;
return Driver.TypeDatabase.FindTypeMap(decl, out typeMap) ? typeMap.IsIgnored : decl.Ignore;
}
#endregion

23
src/Generator/Types/Types.cs

@ -4,29 +4,6 @@ using CppSharp.Types; @@ -4,29 +4,6 @@ using CppSharp.Types;
namespace CppSharp
{
/// <summary>
/// This type checker is used to check if a type is complete.
/// </summary>
public class TypeCompletionChecker : AstVisitor
{
public TypeCompletionChecker()
{
Options.VisitClassBases = false;
Options.VisitTemplateArguments = false;
}
public override bool VisitDeclaration(Declaration decl)
{
if (AlreadyVisited(decl))
return false;
if (decl.CompleteDeclaration != null)
return true;
return !decl.IsIncomplete;
}
}
/// <summary>
/// This type checker is used to check if a type is ignored.
/// </summary>

Loading…
Cancel
Save