From 8349d52814579bdab5447aa18cf86c18c68c06b6 Mon Sep 17 00:00:00 2001 From: Dimitar Dobrev Date: Wed, 1 Jul 2015 21:08:52 +0300 Subject: [PATCH] Removed the visitors when checking for ignored declarations. Signed-off-by: Dimitar Dobrev --- src/Generator/Passes/CheckIgnoredDecls.cs | 16 +++++++++------- src/Generator/Types/Types.cs | 23 ----------------------- 2 files changed, 9 insertions(+), 30 deletions(-) diff --git a/src/Generator/Passes/CheckIgnoredDecls.cs b/src/Generator/Passes/CheckIgnoredDecls.cs index 72f6f0ab..ccbfc717 100644 --- a/src/Generator/Passes/CheckIgnoredDecls.cs +++ b/src/Generator/Passes/CheckIgnoredDecls.cs @@ -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. /// - 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 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 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 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 diff --git a/src/Generator/Types/Types.cs b/src/Generator/Types/Types.cs index d5f23165..0bd40b49 100644 --- a/src/Generator/Types/Types.cs +++ b/src/Generator/Types/Types.cs @@ -4,29 +4,6 @@ using CppSharp.Types; namespace CppSharp { - /// - /// This type checker is used to check if a type is complete. - /// - 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; - } - } - /// /// This type checker is used to check if a type is ignored. ///