Browse Source

Improve IsTypeComplete to be more robust.

pull/1511/head
Joao Matos 5 years ago committed by João Matos
parent
commit
d4d966ae22
  1. 16
      src/Generator/Passes/CheckIgnoredDecls.cs

16
src/Generator/Passes/CheckIgnoredDecls.cs

@ -541,11 +541,19 @@ namespace CppSharp.Passes
Declaration decl; Declaration decl;
if (!finalType.TryGetDeclaration(out decl)) return true; if (!finalType.TryGetDeclaration(out decl)) return true;
var isCompleteDecl = !decl.IsIncomplete || decl.CompleteDeclaration != null;
var @class = (decl as Class); var @class = (decl as Class);
if (@class != null && @class.IsOpaque && !@class.IsDependent && if (@class != null && @class.IsOpaque)
!(@class is ClassTemplateSpecialization)) {
return true; var isPointerType = type.Desugar().IsPointer();
return !decl.IsIncomplete || decl.CompleteDeclaration != null; if (!isPointerType)
return isCompleteDecl;
if (!@class.IsDependent && !(@class is ClassTemplateSpecialization))
return true;
}
return isCompleteDecl;
} }
private bool IsTypeIgnored(Type type) private bool IsTypeIgnored(Type type)

Loading…
Cancel
Save