diff --git a/src/AST/ASTVisitor.cs b/src/AST/ASTVisitor.cs index a53fd6bc..b40ca54a 100644 --- a/src/AST/ASTVisitor.cs +++ b/src/AST/ASTVisitor.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; namespace CppSharp.AST { @@ -321,18 +322,34 @@ namespace CppSharp.AST baseClass.Class.Visit(this); if (VisitOptions.VisitClassFields) + { foreach (var field in @class.Fields) VisitFieldDecl(field); + var fields = @class.Declarations.OfType<Field>().ToArray(); + foreach (var field in fields) + VisitFieldDecl(field); + } + if (VisitOptions.VisitClassProperties) + { foreach (var property in @class.Properties) VisitProperty(property); + var properties = @class.Declarations.OfType<Property>().ToArray(); + foreach (var property in properties) + VisitProperty(property); + } + if (VisitOptions.VisitClassMethods) { var methods = @class.Methods.ToArray(); foreach (var method in methods) VisitMethodDecl(method); + + methods = @class.Declarations.OfType<Method>().ToArray(); + foreach (var method in methods) + VisitMethodDecl(method); } if (@class.IsDependent && VisitOptions.VisitClassTemplateSpecializations)