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. ///