From 3760d4d5500ddf27e34b44b92699ce0908b52fff Mon Sep 17 00:00:00 2001 From: Kimon Topouzidis Date: Fri, 21 Jul 2017 22:24:11 +0300 Subject: [PATCH] Made Function a DeclarationContext to match the Clang AST. (#896) --- src/AST/Function.cs | 2 +- src/CppParser/AST.cpp | 2 +- src/CppParser/AST.h | 2 +- src/CppParser/Bindings/CLI/AST.cpp | 12 +- src/CppParser/Bindings/CLI/AST.h | 2 +- .../CppSharp.CppParser.cs | 162 ++++++++++++------ .../i686-pc-win32-msvc/CppSharp.CppParser.cs | 162 ++++++++++++------ .../Bindings/CSharp/i686-pc-win32-msvc/Std.cs | 50 +++--- .../CppSharp.CppParser.cs | 162 ++++++++++++------ .../CppSharp.CppParser.cs | 162 ++++++++++++------ .../x86_64-linux-gnu/CppSharp.CppParser.cs | 162 ++++++++++++------ .../CppSharp.CppParser.cs | 162 ++++++++++++------ .../CSharp/x86_64-pc-win32-msvc/Std.cs | 50 +++--- src/Generator/Passes/CheckMacrosPass.cs | 3 +- src/Parser/ASTConverter.cs | 17 +- 15 files changed, 755 insertions(+), 357 deletions(-) diff --git a/src/AST/Function.cs b/src/AST/Function.cs index 519ad9af..461e8b7c 100644 --- a/src/AST/Function.cs +++ b/src/AST/Function.cs @@ -137,7 +137,7 @@ namespace CppSharp.AST Undeclared } - public class Function : Declaration, ITypedDecl, IMangledDecl + public class Function : DeclarationContext, ITypedDecl, IMangledDecl { public Function() { diff --git a/src/CppParser/AST.cpp b/src/CppParser/AST.cpp index d6e4263c..f7e6f0b8 100644 --- a/src/CppParser/AST.cpp +++ b/src/CppParser/AST.cpp @@ -626,7 +626,7 @@ Parameter::~Parameter() } Function::Function() - : Declaration(DeclarationKind::Function) + : DeclarationContext(DeclarationKind::Function) , isReturnIndirect(false) , isConstExpr(false) , isVariadic(false) diff --git a/src/CppParser/AST.h b/src/CppParser/AST.h index bdd3cd4b..183332fc 100644 --- a/src/CppParser/AST.h +++ b/src/CppParser/AST.h @@ -716,7 +716,7 @@ enum class FriendKind Undeclared }; -class CS_API Function : public Declaration +class CS_API Function : public DeclarationContext { public: Function(); diff --git a/src/CppParser/Bindings/CLI/AST.cpp b/src/CppParser/Bindings/CLI/AST.cpp index ea151ef0..062594ab 100644 --- a/src/CppParser/Bindings/CLI/AST.cpp +++ b/src/CppParser/Bindings/CLI/AST.cpp @@ -2608,13 +2608,13 @@ void CppSharp::Parser::AST::DeclarationContext::Enums::set(System::Collections:: System::Collections::Generic::List^ CppSharp::Parser::AST::DeclarationContext::Functions::get() { - auto _tmp__Functions = gcnew System::Collections::Generic::List(); + auto _tmp__Functions_ = gcnew System::Collections::Generic::List(); for(auto _element : ((::CppSharp::CppParser::AST::DeclarationContext*)NativePtr)->Functions) { auto _marshalElement = (_element == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Function((::CppSharp::CppParser::AST::Function*)_element); - _tmp__Functions->Add(_marshalElement); + _tmp__Functions_->Add(_marshalElement); } - return _tmp__Functions; + return _tmp__Functions_; } void CppSharp::Parser::AST::DeclarationContext::Functions::set(System::Collections::Generic::List^ value) @@ -3458,7 +3458,7 @@ void CppSharp::Parser::AST::Parameter::DefaultArgument::set(CppSharp::Parser::AS } CppSharp::Parser::AST::Function::Function(::CppSharp::CppParser::AST::Function* native) - : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)native) + : CppSharp::Parser::AST::DeclarationContext((::CppSharp::CppParser::AST::DeclarationContext*)native) { } @@ -3478,7 +3478,7 @@ CppSharp::Parser::AST::Function::~Function() } CppSharp::Parser::AST::Function::Function() - : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)nullptr) + : CppSharp::Parser::AST::DeclarationContext((::CppSharp::CppParser::AST::DeclarationContext*)nullptr) { __ownsNativeInstance = true; NativePtr = new ::CppSharp::CppParser::AST::Function(); @@ -3505,7 +3505,7 @@ void CppSharp::Parser::AST::Function::ClearParameters() } CppSharp::Parser::AST::Function::Function(CppSharp::Parser::AST::Function^ _0) - : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)nullptr) + : CppSharp::Parser::AST::DeclarationContext((::CppSharp::CppParser::AST::DeclarationContext*)nullptr) { __ownsNativeInstance = true; if (ReferenceEquals(_0, nullptr)) diff --git a/src/CppParser/Bindings/CLI/AST.h b/src/CppParser/Bindings/CLI/AST.h index 582d4b16..8e977d74 100644 --- a/src/CppParser/Bindings/CLI/AST.h +++ b/src/CppParser/Bindings/CLI/AST.h @@ -2012,7 +2012,7 @@ namespace CppSharp } }; - public ref class Function : CppSharp::Parser::AST::Declaration + public ref class Function : CppSharp::Parser::AST::DeclarationContext { public: diff --git a/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs b/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs index 2ce43db4..2037941e 100644 --- a/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs +++ b/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs @@ -7049,9 +7049,9 @@ namespace CppSharp } } - public unsafe partial class Function : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class Function : global::CppSharp.Parser.AST.DeclarationContext, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 200)] + [StructLayout(LayoutKind.Explicit, Size = 324)] public new partial struct __Internal { [FieldOffset(0)] @@ -7112,57 +7112,90 @@ namespace CppSharp internal global::System.IntPtr comment; [FieldOffset(108)] + internal global::Std.__1.Vector.__Internal Namespaces; + + [FieldOffset(120)] + internal global::Std.__1.Vector.__Internal Enums; + + [FieldOffset(132)] + internal global::Std.__1.Vector.__Internal Functions; + + [FieldOffset(144)] + internal global::Std.__1.Vector.__Internal Classes; + + [FieldOffset(156)] + internal global::Std.__1.Vector.__Internal Templates; + + [FieldOffset(168)] + internal global::Std.__1.Vector.__Internal Typedefs; + + [FieldOffset(180)] + internal global::Std.__1.Vector.__Internal TypeAliases; + + [FieldOffset(192)] + internal global::Std.__1.Vector.__Internal Variables; + + [FieldOffset(204)] + internal global::Std.__1.Vector.__Internal Friends; + + [FieldOffset(216)] + internal global::Std.__1.Map.__Internal anonymous; + + [FieldOffset(228)] + internal byte isAnonymous; + + [FieldOffset(232)] internal global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; - [FieldOffset(116)] + [FieldOffset(240)] internal byte isReturnIndirect; - [FieldOffset(117)] + [FieldOffset(241)] internal byte hasThisReturn; - [FieldOffset(118)] + [FieldOffset(242)] internal byte isConstExpr; - [FieldOffset(119)] + [FieldOffset(243)] internal byte isVariadic; - [FieldOffset(120)] + [FieldOffset(244)] internal byte isInline; - [FieldOffset(121)] + [FieldOffset(245)] internal byte isPure; - [FieldOffset(122)] + [FieldOffset(246)] internal byte isDeleted; - [FieldOffset(124)] + [FieldOffset(248)] internal global::CppSharp.Parser.AST.FriendKind friendKind; - [FieldOffset(128)] + [FieldOffset(252)] internal global::CppSharp.Parser.AST.CXXOperatorKind operatorKind; - [FieldOffset(132)] + [FieldOffset(256)] internal global::Std.__1.BasicString.__Internal mangled; - [FieldOffset(144)] + [FieldOffset(268)] internal global::Std.__1.BasicString.__Internal signature; - [FieldOffset(156)] + [FieldOffset(280)] internal global::Std.__1.BasicString.__Internal body; - [FieldOffset(168)] + [FieldOffset(292)] internal global::CppSharp.Parser.AST.CallingConvention callingConvention; - [FieldOffset(172)] + [FieldOffset(296)] internal global::Std.__1.Vector.__Internal Parameters; - [FieldOffset(184)] + [FieldOffset(308)] internal global::System.IntPtr specializationInfo; - [FieldOffset(188)] + [FieldOffset(312)] internal global::System.IntPtr instantiatedFrom; - [FieldOffset(192)] + [FieldOffset(316)] internal global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; [SuppressUnmanagedCodeSecurity] @@ -7550,7 +7583,7 @@ namespace CppSharp public unsafe partial class Method : global::CppSharp.Parser.AST.Function, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 228)] + [StructLayout(LayoutKind.Explicit, Size = 352)] public new partial struct __Internal { [FieldOffset(0)] @@ -7611,90 +7644,123 @@ namespace CppSharp internal global::System.IntPtr comment; [FieldOffset(108)] + internal global::Std.__1.Vector.__Internal Namespaces; + + [FieldOffset(120)] + internal global::Std.__1.Vector.__Internal Enums; + + [FieldOffset(132)] + internal global::Std.__1.Vector.__Internal Functions; + + [FieldOffset(144)] + internal global::Std.__1.Vector.__Internal Classes; + + [FieldOffset(156)] + internal global::Std.__1.Vector.__Internal Templates; + + [FieldOffset(168)] + internal global::Std.__1.Vector.__Internal Typedefs; + + [FieldOffset(180)] + internal global::Std.__1.Vector.__Internal TypeAliases; + + [FieldOffset(192)] + internal global::Std.__1.Vector.__Internal Variables; + + [FieldOffset(204)] + internal global::Std.__1.Vector.__Internal Friends; + + [FieldOffset(216)] + internal global::Std.__1.Map.__Internal anonymous; + + [FieldOffset(228)] + internal byte isAnonymous; + + [FieldOffset(232)] internal global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; - [FieldOffset(116)] + [FieldOffset(240)] internal byte isReturnIndirect; - [FieldOffset(117)] + [FieldOffset(241)] internal byte hasThisReturn; - [FieldOffset(118)] + [FieldOffset(242)] internal byte isConstExpr; - [FieldOffset(119)] + [FieldOffset(243)] internal byte isVariadic; - [FieldOffset(120)] + [FieldOffset(244)] internal byte isInline; - [FieldOffset(121)] + [FieldOffset(245)] internal byte isPure; - [FieldOffset(122)] + [FieldOffset(246)] internal byte isDeleted; - [FieldOffset(124)] + [FieldOffset(248)] internal global::CppSharp.Parser.AST.FriendKind friendKind; - [FieldOffset(128)] + [FieldOffset(252)] internal global::CppSharp.Parser.AST.CXXOperatorKind operatorKind; - [FieldOffset(132)] + [FieldOffset(256)] internal global::Std.__1.BasicString.__Internal mangled; - [FieldOffset(144)] + [FieldOffset(268)] internal global::Std.__1.BasicString.__Internal signature; - [FieldOffset(156)] + [FieldOffset(280)] internal global::Std.__1.BasicString.__Internal body; - [FieldOffset(168)] + [FieldOffset(292)] internal global::CppSharp.Parser.AST.CallingConvention callingConvention; - [FieldOffset(172)] + [FieldOffset(296)] internal global::Std.__1.Vector.__Internal Parameters; - [FieldOffset(184)] + [FieldOffset(308)] internal global::System.IntPtr specializationInfo; - [FieldOffset(188)] + [FieldOffset(312)] internal global::System.IntPtr instantiatedFrom; - [FieldOffset(192)] + [FieldOffset(316)] internal global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; - [FieldOffset(200)] + [FieldOffset(324)] internal byte isVirtual; - [FieldOffset(201)] + [FieldOffset(325)] internal byte isStatic; - [FieldOffset(202)] + [FieldOffset(326)] internal byte isConst; - [FieldOffset(203)] + [FieldOffset(327)] internal byte isExplicit; - [FieldOffset(204)] + [FieldOffset(328)] internal byte isOverride; - [FieldOffset(208)] + [FieldOffset(332)] internal global::CppSharp.Parser.AST.CXXMethodKind methodKind; - [FieldOffset(212)] + [FieldOffset(336)] internal byte isDefaultConstructor; - [FieldOffset(213)] + [FieldOffset(337)] internal byte isCopyConstructor; - [FieldOffset(214)] + [FieldOffset(338)] internal byte isMoveConstructor; - [FieldOffset(216)] + [FieldOffset(340)] internal global::CppSharp.Parser.AST.QualifiedType.__Internal conversionType; - [FieldOffset(224)] + [FieldOffset(348)] internal global::CppSharp.Parser.AST.RefQualifierKind refQualifier; [SuppressUnmanagedCodeSecurity] diff --git a/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs b/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs index 3169551e..9959dcc3 100644 --- a/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs +++ b/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs @@ -7049,9 +7049,9 @@ namespace CppSharp } } - public unsafe partial class Function : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class Function : global::CppSharp.Parser.AST.DeclarationContext, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 272)] + [StructLayout(LayoutKind.Explicit, Size = 392)] public new partial struct __Internal { [FieldOffset(0)] @@ -7112,57 +7112,90 @@ namespace CppSharp internal global::System.IntPtr comment; [FieldOffset(144)] + internal global::Std.Vector.__Internal Namespaces; + + [FieldOffset(156)] + internal global::Std.Vector.__Internal Enums; + + [FieldOffset(168)] + internal global::Std.Vector.__Internal Functions; + + [FieldOffset(180)] + internal global::Std.Vector.__Internal Classes; + + [FieldOffset(192)] + internal global::Std.Vector.__Internal Templates; + + [FieldOffset(204)] + internal global::Std.Vector.__Internal Typedefs; + + [FieldOffset(216)] + internal global::Std.Vector.__Internal TypeAliases; + + [FieldOffset(228)] + internal global::Std.Vector.__Internal Variables; + + [FieldOffset(240)] + internal global::Std.Vector.__Internal Friends; + + [FieldOffset(252)] + internal global::Std.Map.__Internal anonymous; + + [FieldOffset(260)] + internal byte isAnonymous; + + [FieldOffset(264)] internal global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; - [FieldOffset(152)] + [FieldOffset(272)] internal byte isReturnIndirect; - [FieldOffset(153)] + [FieldOffset(273)] internal byte hasThisReturn; - [FieldOffset(154)] + [FieldOffset(274)] internal byte isConstExpr; - [FieldOffset(155)] + [FieldOffset(275)] internal byte isVariadic; - [FieldOffset(156)] + [FieldOffset(276)] internal byte isInline; - [FieldOffset(157)] + [FieldOffset(277)] internal byte isPure; - [FieldOffset(158)] + [FieldOffset(278)] internal byte isDeleted; - [FieldOffset(160)] + [FieldOffset(280)] internal global::CppSharp.Parser.AST.FriendKind friendKind; - [FieldOffset(164)] + [FieldOffset(284)] internal global::CppSharp.Parser.AST.CXXOperatorKind operatorKind; - [FieldOffset(168)] + [FieldOffset(288)] internal global::Std.BasicString.__Internal mangled; - [FieldOffset(192)] + [FieldOffset(312)] internal global::Std.BasicString.__Internal signature; - [FieldOffset(216)] + [FieldOffset(336)] internal global::Std.BasicString.__Internal body; - [FieldOffset(240)] + [FieldOffset(360)] internal global::CppSharp.Parser.AST.CallingConvention callingConvention; - [FieldOffset(244)] + [FieldOffset(364)] internal global::Std.Vector.__Internal Parameters; - [FieldOffset(256)] + [FieldOffset(376)] internal global::System.IntPtr specializationInfo; - [FieldOffset(260)] + [FieldOffset(380)] internal global::System.IntPtr instantiatedFrom; - [FieldOffset(264)] + [FieldOffset(384)] internal global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; [SuppressUnmanagedCodeSecurity] @@ -7550,7 +7583,7 @@ namespace CppSharp public unsafe partial class Method : global::CppSharp.Parser.AST.Function, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 300)] + [StructLayout(LayoutKind.Explicit, Size = 420)] public new partial struct __Internal { [FieldOffset(0)] @@ -7611,90 +7644,123 @@ namespace CppSharp internal global::System.IntPtr comment; [FieldOffset(144)] + internal global::Std.Vector.__Internal Namespaces; + + [FieldOffset(156)] + internal global::Std.Vector.__Internal Enums; + + [FieldOffset(168)] + internal global::Std.Vector.__Internal Functions; + + [FieldOffset(180)] + internal global::Std.Vector.__Internal Classes; + + [FieldOffset(192)] + internal global::Std.Vector.__Internal Templates; + + [FieldOffset(204)] + internal global::Std.Vector.__Internal Typedefs; + + [FieldOffset(216)] + internal global::Std.Vector.__Internal TypeAliases; + + [FieldOffset(228)] + internal global::Std.Vector.__Internal Variables; + + [FieldOffset(240)] + internal global::Std.Vector.__Internal Friends; + + [FieldOffset(252)] + internal global::Std.Map.__Internal anonymous; + + [FieldOffset(260)] + internal byte isAnonymous; + + [FieldOffset(264)] internal global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; - [FieldOffset(152)] + [FieldOffset(272)] internal byte isReturnIndirect; - [FieldOffset(153)] + [FieldOffset(273)] internal byte hasThisReturn; - [FieldOffset(154)] + [FieldOffset(274)] internal byte isConstExpr; - [FieldOffset(155)] + [FieldOffset(275)] internal byte isVariadic; - [FieldOffset(156)] + [FieldOffset(276)] internal byte isInline; - [FieldOffset(157)] + [FieldOffset(277)] internal byte isPure; - [FieldOffset(158)] + [FieldOffset(278)] internal byte isDeleted; - [FieldOffset(160)] + [FieldOffset(280)] internal global::CppSharp.Parser.AST.FriendKind friendKind; - [FieldOffset(164)] + [FieldOffset(284)] internal global::CppSharp.Parser.AST.CXXOperatorKind operatorKind; - [FieldOffset(168)] + [FieldOffset(288)] internal global::Std.BasicString.__Internal mangled; - [FieldOffset(192)] + [FieldOffset(312)] internal global::Std.BasicString.__Internal signature; - [FieldOffset(216)] + [FieldOffset(336)] internal global::Std.BasicString.__Internal body; - [FieldOffset(240)] + [FieldOffset(360)] internal global::CppSharp.Parser.AST.CallingConvention callingConvention; - [FieldOffset(244)] + [FieldOffset(364)] internal global::Std.Vector.__Internal Parameters; - [FieldOffset(256)] + [FieldOffset(376)] internal global::System.IntPtr specializationInfo; - [FieldOffset(260)] + [FieldOffset(380)] internal global::System.IntPtr instantiatedFrom; - [FieldOffset(264)] + [FieldOffset(384)] internal global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; - [FieldOffset(272)] + [FieldOffset(392)] internal byte isVirtual; - [FieldOffset(273)] + [FieldOffset(393)] internal byte isStatic; - [FieldOffset(274)] + [FieldOffset(394)] internal byte isConst; - [FieldOffset(275)] + [FieldOffset(395)] internal byte isExplicit; - [FieldOffset(276)] + [FieldOffset(396)] internal byte isOverride; - [FieldOffset(280)] + [FieldOffset(400)] internal global::CppSharp.Parser.AST.CXXMethodKind methodKind; - [FieldOffset(284)] + [FieldOffset(404)] internal byte isDefaultConstructor; - [FieldOffset(285)] + [FieldOffset(405)] internal byte isCopyConstructor; - [FieldOffset(286)] + [FieldOffset(406)] internal byte isMoveConstructor; - [FieldOffset(288)] + [FieldOffset(408)] internal global::CppSharp.Parser.AST.QualifiedType.__Internal conversionType; - [FieldOffset(296)] + [FieldOffset(416)] internal global::CppSharp.Parser.AST.RefQualifierKind refQualifier; [SuppressUnmanagedCodeSecurity] diff --git a/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/Std.cs b/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/Std.cs index 1004ac7a..67c33846 100644 --- a/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/Std.cs +++ b/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/Std.cs @@ -205,91 +205,84 @@ namespace Std } [StructLayout(LayoutKind.Explicit, Size = 12)] - public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Parameter___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 + public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Template___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 { [FieldOffset(0)] internal global::Std.VectorVal.__Internal _Myval2; } [StructLayout(LayoutKind.Explicit, Size = 12)] - public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_FunctionTemplateSpecialization___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 + public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_TypedefDecl___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 { [FieldOffset(0)] internal global::Std.VectorVal.__Internal _Myval2; } [StructLayout(LayoutKind.Explicit, Size = 12)] - public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator____N_CppSharp_N_CppParser_N_AST_S_TemplateArgument___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 + public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_TypeAlias___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 { [FieldOffset(0)] internal global::Std.VectorVal.__Internal _Myval2; } [StructLayout(LayoutKind.Explicit, Size = 12)] - public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Function___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 + public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Variable___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 { [FieldOffset(0)] internal global::Std.VectorVal.__Internal _Myval2; } [StructLayout(LayoutKind.Explicit, Size = 12)] - public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Template___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 + public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Friend___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 { [FieldOffset(0)] internal global::Std.VectorVal.__Internal _Myval2; } - [StructLayout(LayoutKind.Explicit, Size = 12)] - public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_TypedefDecl___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S_less____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator____N_std_S__Tree_node____N_std_S_pair__1S1_____N_CppSharp_N_CppParser_N_AST_S_Declaration__v___N_std_S__Tree_val____N_std_S__Tree_simple_types__S8__Vb1_Vb1 { [FieldOffset(0)] - internal global::Std.VectorVal.__Internal _Myval2; + internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator____N_std_S__Tree_node____N_std_S_pair__1__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C____N_CppSharp_N_CppParser_N_AST_S_Declaration__v___N_std_S__Tree_val____N_std_S__Tree_simple_types__S3__Vb1 _Myval2; } - [StructLayout(LayoutKind.Explicit, Size = 12)] - public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_TypeAlias___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator____N_std_S__Tree_node____N_std_S_pair__1__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C____N_CppSharp_N_CppParser_N_AST_S_Declaration__v___N_std_S__Tree_val____N_std_S__Tree_simple_types__S3__Vb1 { [FieldOffset(0)] - internal global::Std.VectorVal.__Internal _Myval2; + internal global::Std.TreeVal.__Internal _Myval2; } [StructLayout(LayoutKind.Explicit, Size = 12)] - public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Variable___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 + public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_BaseClassSpecifier___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 { [FieldOffset(0)] internal global::Std.VectorVal.__Internal _Myval2; } [StructLayout(LayoutKind.Explicit, Size = 12)] - public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Friend___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 + public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Field___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 { [FieldOffset(0)] internal global::Std.VectorVal.__Internal _Myval2; } - [StructLayout(LayoutKind.Explicit, Size = 8)] - public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S_less____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator____N_std_S__Tree_node____N_std_S_pair__1S1_____N_CppSharp_N_CppParser_N_AST_S_Declaration__v___N_std_S__Tree_val____N_std_S__Tree_simple_types__S8__Vb1_Vb1 - { - [FieldOffset(0)] - internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator____N_std_S__Tree_node____N_std_S_pair__1__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C____N_CppSharp_N_CppParser_N_AST_S_Declaration__v___N_std_S__Tree_val____N_std_S__Tree_simple_types__S3__Vb1 _Myval2; - } - - [StructLayout(LayoutKind.Explicit, Size = 8)] - public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator____N_std_S__Tree_node____N_std_S_pair__1__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C____N_CppSharp_N_CppParser_N_AST_S_Declaration__v___N_std_S__Tree_val____N_std_S__Tree_simple_types__S3__Vb1 + [StructLayout(LayoutKind.Explicit, Size = 12)] + public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Parameter___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 { [FieldOffset(0)] - internal global::Std.TreeVal.__Internal _Myval2; + internal global::Std.VectorVal.__Internal _Myval2; } [StructLayout(LayoutKind.Explicit, Size = 12)] - public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_BaseClassSpecifier___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 + public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_FunctionTemplateSpecialization___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 { [FieldOffset(0)] internal global::Std.VectorVal.__Internal _Myval2; } [StructLayout(LayoutKind.Explicit, Size = 12)] - public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Field___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 + public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator____N_CppSharp_N_CppParser_N_AST_S_TemplateArgument___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 { [FieldOffset(0)] internal global::Std.VectorVal.__Internal _Myval2; @@ -344,6 +337,13 @@ namespace Std internal global::Std.VectorVal.__Internal _Myval2; } + [StructLayout(LayoutKind.Explicit, Size = 12)] + public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Function___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 + { + [FieldOffset(0)] + internal global::Std.VectorVal.__Internal _Myval2; + } + [StructLayout(LayoutKind.Explicit, Size = 12)] public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Enumeration_S_Item___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 { diff --git a/src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs b/src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs index 921fd200..0f94d4ff 100644 --- a/src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs +++ b/src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs @@ -7048,9 +7048,9 @@ namespace CppSharp } } - public unsafe partial class Function : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class Function : global::CppSharp.Parser.AST.DeclarationContext, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 368)] + [StructLayout(LayoutKind.Explicit, Size = 616)] public new partial struct __Internal { [FieldOffset(0)] @@ -7111,57 +7111,90 @@ namespace CppSharp internal global::System.IntPtr comment; [FieldOffset(200)] + internal global::Std.__1.Vector.__Internal Namespaces; + + [FieldOffset(224)] + internal global::Std.__1.Vector.__Internal Enums; + + [FieldOffset(248)] + internal global::Std.__1.Vector.__Internal Functions; + + [FieldOffset(272)] + internal global::Std.__1.Vector.__Internal Classes; + + [FieldOffset(296)] + internal global::Std.__1.Vector.__Internal Templates; + + [FieldOffset(320)] + internal global::Std.__1.Vector.__Internal Typedefs; + + [FieldOffset(344)] + internal global::Std.__1.Vector.__Internal TypeAliases; + + [FieldOffset(368)] + internal global::Std.__1.Vector.__Internal Variables; + + [FieldOffset(392)] + internal global::Std.__1.Vector.__Internal Friends; + + [FieldOffset(416)] + internal global::Std.__1.Map.__Internal anonymous; + + [FieldOffset(440)] + internal byte isAnonymous; + + [FieldOffset(448)] internal global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; - [FieldOffset(216)] + [FieldOffset(464)] internal byte isReturnIndirect; - [FieldOffset(217)] + [FieldOffset(465)] internal byte hasThisReturn; - [FieldOffset(218)] + [FieldOffset(466)] internal byte isConstExpr; - [FieldOffset(219)] + [FieldOffset(467)] internal byte isVariadic; - [FieldOffset(220)] + [FieldOffset(468)] internal byte isInline; - [FieldOffset(221)] + [FieldOffset(469)] internal byte isPure; - [FieldOffset(222)] + [FieldOffset(470)] internal byte isDeleted; - [FieldOffset(224)] + [FieldOffset(472)] internal global::CppSharp.Parser.AST.FriendKind friendKind; - [FieldOffset(228)] + [FieldOffset(476)] internal global::CppSharp.Parser.AST.CXXOperatorKind operatorKind; - [FieldOffset(232)] + [FieldOffset(480)] internal global::Std.__1.BasicString.__Internal mangled; - [FieldOffset(256)] + [FieldOffset(504)] internal global::Std.__1.BasicString.__Internal signature; - [FieldOffset(280)] + [FieldOffset(528)] internal global::Std.__1.BasicString.__Internal body; - [FieldOffset(304)] + [FieldOffset(552)] internal global::CppSharp.Parser.AST.CallingConvention callingConvention; - [FieldOffset(312)] + [FieldOffset(560)] internal global::Std.__1.Vector.__Internal Parameters; - [FieldOffset(336)] + [FieldOffset(584)] internal global::System.IntPtr specializationInfo; - [FieldOffset(344)] + [FieldOffset(592)] internal global::System.IntPtr instantiatedFrom; - [FieldOffset(352)] + [FieldOffset(600)] internal global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; [SuppressUnmanagedCodeSecurity] @@ -7549,7 +7582,7 @@ namespace CppSharp public unsafe partial class Method : global::CppSharp.Parser.AST.Function, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 408)] + [StructLayout(LayoutKind.Explicit, Size = 656)] public new partial struct __Internal { [FieldOffset(0)] @@ -7610,90 +7643,123 @@ namespace CppSharp internal global::System.IntPtr comment; [FieldOffset(200)] + internal global::Std.__1.Vector.__Internal Namespaces; + + [FieldOffset(224)] + internal global::Std.__1.Vector.__Internal Enums; + + [FieldOffset(248)] + internal global::Std.__1.Vector.__Internal Functions; + + [FieldOffset(272)] + internal global::Std.__1.Vector.__Internal Classes; + + [FieldOffset(296)] + internal global::Std.__1.Vector.__Internal Templates; + + [FieldOffset(320)] + internal global::Std.__1.Vector.__Internal Typedefs; + + [FieldOffset(344)] + internal global::Std.__1.Vector.__Internal TypeAliases; + + [FieldOffset(368)] + internal global::Std.__1.Vector.__Internal Variables; + + [FieldOffset(392)] + internal global::Std.__1.Vector.__Internal Friends; + + [FieldOffset(416)] + internal global::Std.__1.Map.__Internal anonymous; + + [FieldOffset(440)] + internal byte isAnonymous; + + [FieldOffset(448)] internal global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; - [FieldOffset(216)] + [FieldOffset(464)] internal byte isReturnIndirect; - [FieldOffset(217)] + [FieldOffset(465)] internal byte hasThisReturn; - [FieldOffset(218)] + [FieldOffset(466)] internal byte isConstExpr; - [FieldOffset(219)] + [FieldOffset(467)] internal byte isVariadic; - [FieldOffset(220)] + [FieldOffset(468)] internal byte isInline; - [FieldOffset(221)] + [FieldOffset(469)] internal byte isPure; - [FieldOffset(222)] + [FieldOffset(470)] internal byte isDeleted; - [FieldOffset(224)] + [FieldOffset(472)] internal global::CppSharp.Parser.AST.FriendKind friendKind; - [FieldOffset(228)] + [FieldOffset(476)] internal global::CppSharp.Parser.AST.CXXOperatorKind operatorKind; - [FieldOffset(232)] + [FieldOffset(480)] internal global::Std.__1.BasicString.__Internal mangled; - [FieldOffset(256)] + [FieldOffset(504)] internal global::Std.__1.BasicString.__Internal signature; - [FieldOffset(280)] + [FieldOffset(528)] internal global::Std.__1.BasicString.__Internal body; - [FieldOffset(304)] + [FieldOffset(552)] internal global::CppSharp.Parser.AST.CallingConvention callingConvention; - [FieldOffset(312)] + [FieldOffset(560)] internal global::Std.__1.Vector.__Internal Parameters; - [FieldOffset(336)] + [FieldOffset(584)] internal global::System.IntPtr specializationInfo; - [FieldOffset(344)] + [FieldOffset(592)] internal global::System.IntPtr instantiatedFrom; - [FieldOffset(352)] + [FieldOffset(600)] internal global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; - [FieldOffset(368)] + [FieldOffset(616)] internal byte isVirtual; - [FieldOffset(369)] + [FieldOffset(617)] internal byte isStatic; - [FieldOffset(370)] + [FieldOffset(618)] internal byte isConst; - [FieldOffset(371)] + [FieldOffset(619)] internal byte isExplicit; - [FieldOffset(372)] + [FieldOffset(620)] internal byte isOverride; - [FieldOffset(376)] + [FieldOffset(624)] internal global::CppSharp.Parser.AST.CXXMethodKind methodKind; - [FieldOffset(380)] + [FieldOffset(628)] internal byte isDefaultConstructor; - [FieldOffset(381)] + [FieldOffset(629)] internal byte isCopyConstructor; - [FieldOffset(382)] + [FieldOffset(630)] internal byte isMoveConstructor; - [FieldOffset(384)] + [FieldOffset(632)] internal global::CppSharp.Parser.AST.QualifiedType.__Internal conversionType; - [FieldOffset(400)] + [FieldOffset(648)] internal global::CppSharp.Parser.AST.RefQualifierKind refQualifier; [SuppressUnmanagedCodeSecurity] diff --git a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs index 2e4cdccd..611cc931 100644 --- a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs +++ b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs @@ -7048,9 +7048,9 @@ namespace CppSharp } } - public unsafe partial class Function : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class Function : global::CppSharp.Parser.AST.DeclarationContext, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 416)] + [StructLayout(LayoutKind.Explicit, Size = 688)] public new partial struct __Internal { [FieldOffset(0)] @@ -7111,57 +7111,90 @@ namespace CppSharp internal global::System.IntPtr comment; [FieldOffset(224)] + internal global::Std.Vector.__Internal Namespaces; + + [FieldOffset(248)] + internal global::Std.Vector.__Internal Enums; + + [FieldOffset(272)] + internal global::Std.Vector.__Internal Functions; + + [FieldOffset(296)] + internal global::Std.Vector.__Internal Classes; + + [FieldOffset(320)] + internal global::Std.Vector.__Internal Templates; + + [FieldOffset(344)] + internal global::Std.Vector.__Internal Typedefs; + + [FieldOffset(368)] + internal global::Std.Vector.__Internal TypeAliases; + + [FieldOffset(392)] + internal global::Std.Vector.__Internal Variables; + + [FieldOffset(416)] + internal global::Std.Vector.__Internal Friends; + + [FieldOffset(440)] + internal global::Std.Map.__Internal anonymous; + + [FieldOffset(488)] + internal byte isAnonymous; + + [FieldOffset(496)] internal global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; - [FieldOffset(240)] + [FieldOffset(512)] internal byte isReturnIndirect; - [FieldOffset(241)] + [FieldOffset(513)] internal byte hasThisReturn; - [FieldOffset(242)] + [FieldOffset(514)] internal byte isConstExpr; - [FieldOffset(243)] + [FieldOffset(515)] internal byte isVariadic; - [FieldOffset(244)] + [FieldOffset(516)] internal byte isInline; - [FieldOffset(245)] + [FieldOffset(517)] internal byte isPure; - [FieldOffset(246)] + [FieldOffset(518)] internal byte isDeleted; - [FieldOffset(248)] + [FieldOffset(520)] internal global::CppSharp.Parser.AST.FriendKind friendKind; - [FieldOffset(252)] + [FieldOffset(524)] internal global::CppSharp.Parser.AST.CXXOperatorKind operatorKind; - [FieldOffset(256)] + [FieldOffset(528)] internal global::Std.Cxx11.BasicString.__Internal mangled; - [FieldOffset(288)] + [FieldOffset(560)] internal global::Std.Cxx11.BasicString.__Internal signature; - [FieldOffset(320)] + [FieldOffset(592)] internal global::Std.Cxx11.BasicString.__Internal body; - [FieldOffset(352)] + [FieldOffset(624)] internal global::CppSharp.Parser.AST.CallingConvention callingConvention; - [FieldOffset(360)] + [FieldOffset(632)] internal global::Std.Vector.__Internal Parameters; - [FieldOffset(384)] + [FieldOffset(656)] internal global::System.IntPtr specializationInfo; - [FieldOffset(392)] + [FieldOffset(664)] internal global::System.IntPtr instantiatedFrom; - [FieldOffset(400)] + [FieldOffset(672)] internal global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; [SuppressUnmanagedCodeSecurity] @@ -7549,7 +7582,7 @@ namespace CppSharp public unsafe partial class Method : global::CppSharp.Parser.AST.Function, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 456)] + [StructLayout(LayoutKind.Explicit, Size = 728)] public new partial struct __Internal { [FieldOffset(0)] @@ -7610,90 +7643,123 @@ namespace CppSharp internal global::System.IntPtr comment; [FieldOffset(224)] + internal global::Std.Vector.__Internal Namespaces; + + [FieldOffset(248)] + internal global::Std.Vector.__Internal Enums; + + [FieldOffset(272)] + internal global::Std.Vector.__Internal Functions; + + [FieldOffset(296)] + internal global::Std.Vector.__Internal Classes; + + [FieldOffset(320)] + internal global::Std.Vector.__Internal Templates; + + [FieldOffset(344)] + internal global::Std.Vector.__Internal Typedefs; + + [FieldOffset(368)] + internal global::Std.Vector.__Internal TypeAliases; + + [FieldOffset(392)] + internal global::Std.Vector.__Internal Variables; + + [FieldOffset(416)] + internal global::Std.Vector.__Internal Friends; + + [FieldOffset(440)] + internal global::Std.Map.__Internal anonymous; + + [FieldOffset(488)] + internal byte isAnonymous; + + [FieldOffset(496)] internal global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; - [FieldOffset(240)] + [FieldOffset(512)] internal byte isReturnIndirect; - [FieldOffset(241)] + [FieldOffset(513)] internal byte hasThisReturn; - [FieldOffset(242)] + [FieldOffset(514)] internal byte isConstExpr; - [FieldOffset(243)] + [FieldOffset(515)] internal byte isVariadic; - [FieldOffset(244)] + [FieldOffset(516)] internal byte isInline; - [FieldOffset(245)] + [FieldOffset(517)] internal byte isPure; - [FieldOffset(246)] + [FieldOffset(518)] internal byte isDeleted; - [FieldOffset(248)] + [FieldOffset(520)] internal global::CppSharp.Parser.AST.FriendKind friendKind; - [FieldOffset(252)] + [FieldOffset(524)] internal global::CppSharp.Parser.AST.CXXOperatorKind operatorKind; - [FieldOffset(256)] + [FieldOffset(528)] internal global::Std.Cxx11.BasicString.__Internal mangled; - [FieldOffset(288)] + [FieldOffset(560)] internal global::Std.Cxx11.BasicString.__Internal signature; - [FieldOffset(320)] + [FieldOffset(592)] internal global::Std.Cxx11.BasicString.__Internal body; - [FieldOffset(352)] + [FieldOffset(624)] internal global::CppSharp.Parser.AST.CallingConvention callingConvention; - [FieldOffset(360)] + [FieldOffset(632)] internal global::Std.Vector.__Internal Parameters; - [FieldOffset(384)] + [FieldOffset(656)] internal global::System.IntPtr specializationInfo; - [FieldOffset(392)] + [FieldOffset(664)] internal global::System.IntPtr instantiatedFrom; - [FieldOffset(400)] + [FieldOffset(672)] internal global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; - [FieldOffset(416)] + [FieldOffset(688)] internal byte isVirtual; - [FieldOffset(417)] + [FieldOffset(689)] internal byte isStatic; - [FieldOffset(418)] + [FieldOffset(690)] internal byte isConst; - [FieldOffset(419)] + [FieldOffset(691)] internal byte isExplicit; - [FieldOffset(420)] + [FieldOffset(692)] internal byte isOverride; - [FieldOffset(424)] + [FieldOffset(696)] internal global::CppSharp.Parser.AST.CXXMethodKind methodKind; - [FieldOffset(428)] + [FieldOffset(700)] internal byte isDefaultConstructor; - [FieldOffset(429)] + [FieldOffset(701)] internal byte isCopyConstructor; - [FieldOffset(430)] + [FieldOffset(702)] internal byte isMoveConstructor; - [FieldOffset(432)] + [FieldOffset(704)] internal global::CppSharp.Parser.AST.QualifiedType.__Internal conversionType; - [FieldOffset(448)] + [FieldOffset(720)] internal global::CppSharp.Parser.AST.RefQualifierKind refQualifier; [SuppressUnmanagedCodeSecurity] diff --git a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs index a3b7b650..017f4933 100644 --- a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs +++ b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs @@ -7048,9 +7048,9 @@ namespace CppSharp } } - public unsafe partial class Function : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class Function : global::CppSharp.Parser.AST.DeclarationContext, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 272)] + [StructLayout(LayoutKind.Explicit, Size = 544)] public new partial struct __Internal { [FieldOffset(0)] @@ -7111,57 +7111,90 @@ namespace CppSharp internal global::System.IntPtr comment; [FieldOffset(152)] + internal global::Std.Vector.__Internal Namespaces; + + [FieldOffset(176)] + internal global::Std.Vector.__Internal Enums; + + [FieldOffset(200)] + internal global::Std.Vector.__Internal Functions; + + [FieldOffset(224)] + internal global::Std.Vector.__Internal Classes; + + [FieldOffset(248)] + internal global::Std.Vector.__Internal Templates; + + [FieldOffset(272)] + internal global::Std.Vector.__Internal Typedefs; + + [FieldOffset(296)] + internal global::Std.Vector.__Internal TypeAliases; + + [FieldOffset(320)] + internal global::Std.Vector.__Internal Variables; + + [FieldOffset(344)] + internal global::Std.Vector.__Internal Friends; + + [FieldOffset(368)] + internal global::Std.Map.__Internal anonymous; + + [FieldOffset(416)] + internal byte isAnonymous; + + [FieldOffset(424)] internal global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; - [FieldOffset(168)] + [FieldOffset(440)] internal byte isReturnIndirect; - [FieldOffset(169)] + [FieldOffset(441)] internal byte hasThisReturn; - [FieldOffset(170)] + [FieldOffset(442)] internal byte isConstExpr; - [FieldOffset(171)] + [FieldOffset(443)] internal byte isVariadic; - [FieldOffset(172)] + [FieldOffset(444)] internal byte isInline; - [FieldOffset(173)] + [FieldOffset(445)] internal byte isPure; - [FieldOffset(174)] + [FieldOffset(446)] internal byte isDeleted; - [FieldOffset(176)] + [FieldOffset(448)] internal global::CppSharp.Parser.AST.FriendKind friendKind; - [FieldOffset(180)] + [FieldOffset(452)] internal global::CppSharp.Parser.AST.CXXOperatorKind operatorKind; - [FieldOffset(184)] + [FieldOffset(456)] internal global::Std.BasicString.__Internal mangled; - [FieldOffset(192)] + [FieldOffset(464)] internal global::Std.BasicString.__Internal signature; - [FieldOffset(200)] + [FieldOffset(472)] internal global::Std.BasicString.__Internal body; - [FieldOffset(208)] + [FieldOffset(480)] internal global::CppSharp.Parser.AST.CallingConvention callingConvention; - [FieldOffset(216)] + [FieldOffset(488)] internal global::Std.Vector.__Internal Parameters; - [FieldOffset(240)] + [FieldOffset(512)] internal global::System.IntPtr specializationInfo; - [FieldOffset(248)] + [FieldOffset(520)] internal global::System.IntPtr instantiatedFrom; - [FieldOffset(256)] + [FieldOffset(528)] internal global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; [SuppressUnmanagedCodeSecurity] @@ -7549,7 +7582,7 @@ namespace CppSharp public unsafe partial class Method : global::CppSharp.Parser.AST.Function, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 312)] + [StructLayout(LayoutKind.Explicit, Size = 584)] public new partial struct __Internal { [FieldOffset(0)] @@ -7610,90 +7643,123 @@ namespace CppSharp internal global::System.IntPtr comment; [FieldOffset(152)] + internal global::Std.Vector.__Internal Namespaces; + + [FieldOffset(176)] + internal global::Std.Vector.__Internal Enums; + + [FieldOffset(200)] + internal global::Std.Vector.__Internal Functions; + + [FieldOffset(224)] + internal global::Std.Vector.__Internal Classes; + + [FieldOffset(248)] + internal global::Std.Vector.__Internal Templates; + + [FieldOffset(272)] + internal global::Std.Vector.__Internal Typedefs; + + [FieldOffset(296)] + internal global::Std.Vector.__Internal TypeAliases; + + [FieldOffset(320)] + internal global::Std.Vector.__Internal Variables; + + [FieldOffset(344)] + internal global::Std.Vector.__Internal Friends; + + [FieldOffset(368)] + internal global::Std.Map.__Internal anonymous; + + [FieldOffset(416)] + internal byte isAnonymous; + + [FieldOffset(424)] internal global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; - [FieldOffset(168)] + [FieldOffset(440)] internal byte isReturnIndirect; - [FieldOffset(169)] + [FieldOffset(441)] internal byte hasThisReturn; - [FieldOffset(170)] + [FieldOffset(442)] internal byte isConstExpr; - [FieldOffset(171)] + [FieldOffset(443)] internal byte isVariadic; - [FieldOffset(172)] + [FieldOffset(444)] internal byte isInline; - [FieldOffset(173)] + [FieldOffset(445)] internal byte isPure; - [FieldOffset(174)] + [FieldOffset(446)] internal byte isDeleted; - [FieldOffset(176)] + [FieldOffset(448)] internal global::CppSharp.Parser.AST.FriendKind friendKind; - [FieldOffset(180)] + [FieldOffset(452)] internal global::CppSharp.Parser.AST.CXXOperatorKind operatorKind; - [FieldOffset(184)] + [FieldOffset(456)] internal global::Std.BasicString.__Internal mangled; - [FieldOffset(192)] + [FieldOffset(464)] internal global::Std.BasicString.__Internal signature; - [FieldOffset(200)] + [FieldOffset(472)] internal global::Std.BasicString.__Internal body; - [FieldOffset(208)] + [FieldOffset(480)] internal global::CppSharp.Parser.AST.CallingConvention callingConvention; - [FieldOffset(216)] + [FieldOffset(488)] internal global::Std.Vector.__Internal Parameters; - [FieldOffset(240)] + [FieldOffset(512)] internal global::System.IntPtr specializationInfo; - [FieldOffset(248)] + [FieldOffset(520)] internal global::System.IntPtr instantiatedFrom; - [FieldOffset(256)] + [FieldOffset(528)] internal global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; - [FieldOffset(272)] + [FieldOffset(544)] internal byte isVirtual; - [FieldOffset(273)] + [FieldOffset(545)] internal byte isStatic; - [FieldOffset(274)] + [FieldOffset(546)] internal byte isConst; - [FieldOffset(275)] + [FieldOffset(547)] internal byte isExplicit; - [FieldOffset(276)] + [FieldOffset(548)] internal byte isOverride; - [FieldOffset(280)] + [FieldOffset(552)] internal global::CppSharp.Parser.AST.CXXMethodKind methodKind; - [FieldOffset(284)] + [FieldOffset(556)] internal byte isDefaultConstructor; - [FieldOffset(285)] + [FieldOffset(557)] internal byte isCopyConstructor; - [FieldOffset(286)] + [FieldOffset(558)] internal byte isMoveConstructor; - [FieldOffset(288)] + [FieldOffset(560)] internal global::CppSharp.Parser.AST.QualifiedType.__Internal conversionType; - [FieldOffset(304)] + [FieldOffset(576)] internal global::CppSharp.Parser.AST.RefQualifierKind refQualifier; [SuppressUnmanagedCodeSecurity] diff --git a/src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs b/src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs index c2fc8d99..c42b8810 100644 --- a/src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs +++ b/src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs @@ -7049,9 +7049,9 @@ namespace CppSharp } } - public unsafe partial class Function : global::CppSharp.Parser.AST.Declaration, IDisposable + public unsafe partial class Function : global::CppSharp.Parser.AST.DeclarationContext, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 416)] + [StructLayout(LayoutKind.Explicit, Size = 656)] public new partial struct __Internal { [FieldOffset(0)] @@ -7112,57 +7112,90 @@ namespace CppSharp internal global::System.IntPtr comment; [FieldOffset(224)] + internal global::Std.Vector.__Internal Namespaces; + + [FieldOffset(248)] + internal global::Std.Vector.__Internal Enums; + + [FieldOffset(272)] + internal global::Std.Vector.__Internal Functions; + + [FieldOffset(296)] + internal global::Std.Vector.__Internal Classes; + + [FieldOffset(320)] + internal global::Std.Vector.__Internal Templates; + + [FieldOffset(344)] + internal global::Std.Vector.__Internal Typedefs; + + [FieldOffset(368)] + internal global::Std.Vector.__Internal TypeAliases; + + [FieldOffset(392)] + internal global::Std.Vector.__Internal Variables; + + [FieldOffset(416)] + internal global::Std.Vector.__Internal Friends; + + [FieldOffset(440)] + internal global::Std.Map.__Internal anonymous; + + [FieldOffset(456)] + internal byte isAnonymous; + + [FieldOffset(464)] internal global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; - [FieldOffset(240)] + [FieldOffset(480)] internal byte isReturnIndirect; - [FieldOffset(241)] + [FieldOffset(481)] internal byte hasThisReturn; - [FieldOffset(242)] + [FieldOffset(482)] internal byte isConstExpr; - [FieldOffset(243)] + [FieldOffset(483)] internal byte isVariadic; - [FieldOffset(244)] + [FieldOffset(484)] internal byte isInline; - [FieldOffset(245)] + [FieldOffset(485)] internal byte isPure; - [FieldOffset(246)] + [FieldOffset(486)] internal byte isDeleted; - [FieldOffset(248)] + [FieldOffset(488)] internal global::CppSharp.Parser.AST.FriendKind friendKind; - [FieldOffset(252)] + [FieldOffset(492)] internal global::CppSharp.Parser.AST.CXXOperatorKind operatorKind; - [FieldOffset(256)] + [FieldOffset(496)] internal global::Std.BasicString.__Internal mangled; - [FieldOffset(288)] + [FieldOffset(528)] internal global::Std.BasicString.__Internal signature; - [FieldOffset(320)] + [FieldOffset(560)] internal global::Std.BasicString.__Internal body; - [FieldOffset(352)] + [FieldOffset(592)] internal global::CppSharp.Parser.AST.CallingConvention callingConvention; - [FieldOffset(360)] + [FieldOffset(600)] internal global::Std.Vector.__Internal Parameters; - [FieldOffset(384)] + [FieldOffset(624)] internal global::System.IntPtr specializationInfo; - [FieldOffset(392)] + [FieldOffset(632)] internal global::System.IntPtr instantiatedFrom; - [FieldOffset(400)] + [FieldOffset(640)] internal global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; [SuppressUnmanagedCodeSecurity] @@ -7550,7 +7583,7 @@ namespace CppSharp public unsafe partial class Method : global::CppSharp.Parser.AST.Function, IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 456)] + [StructLayout(LayoutKind.Explicit, Size = 696)] public new partial struct __Internal { [FieldOffset(0)] @@ -7611,90 +7644,123 @@ namespace CppSharp internal global::System.IntPtr comment; [FieldOffset(224)] + internal global::Std.Vector.__Internal Namespaces; + + [FieldOffset(248)] + internal global::Std.Vector.__Internal Enums; + + [FieldOffset(272)] + internal global::Std.Vector.__Internal Functions; + + [FieldOffset(296)] + internal global::Std.Vector.__Internal Classes; + + [FieldOffset(320)] + internal global::Std.Vector.__Internal Templates; + + [FieldOffset(344)] + internal global::Std.Vector.__Internal Typedefs; + + [FieldOffset(368)] + internal global::Std.Vector.__Internal TypeAliases; + + [FieldOffset(392)] + internal global::Std.Vector.__Internal Variables; + + [FieldOffset(416)] + internal global::Std.Vector.__Internal Friends; + + [FieldOffset(440)] + internal global::Std.Map.__Internal anonymous; + + [FieldOffset(456)] + internal byte isAnonymous; + + [FieldOffset(464)] internal global::CppSharp.Parser.AST.QualifiedType.__Internal returnType; - [FieldOffset(240)] + [FieldOffset(480)] internal byte isReturnIndirect; - [FieldOffset(241)] + [FieldOffset(481)] internal byte hasThisReturn; - [FieldOffset(242)] + [FieldOffset(482)] internal byte isConstExpr; - [FieldOffset(243)] + [FieldOffset(483)] internal byte isVariadic; - [FieldOffset(244)] + [FieldOffset(484)] internal byte isInline; - [FieldOffset(245)] + [FieldOffset(485)] internal byte isPure; - [FieldOffset(246)] + [FieldOffset(486)] internal byte isDeleted; - [FieldOffset(248)] + [FieldOffset(488)] internal global::CppSharp.Parser.AST.FriendKind friendKind; - [FieldOffset(252)] + [FieldOffset(492)] internal global::CppSharp.Parser.AST.CXXOperatorKind operatorKind; - [FieldOffset(256)] + [FieldOffset(496)] internal global::Std.BasicString.__Internal mangled; - [FieldOffset(288)] + [FieldOffset(528)] internal global::Std.BasicString.__Internal signature; - [FieldOffset(320)] + [FieldOffset(560)] internal global::Std.BasicString.__Internal body; - [FieldOffset(352)] + [FieldOffset(592)] internal global::CppSharp.Parser.AST.CallingConvention callingConvention; - [FieldOffset(360)] + [FieldOffset(600)] internal global::Std.Vector.__Internal Parameters; - [FieldOffset(384)] + [FieldOffset(624)] internal global::System.IntPtr specializationInfo; - [FieldOffset(392)] + [FieldOffset(632)] internal global::System.IntPtr instantiatedFrom; - [FieldOffset(400)] + [FieldOffset(640)] internal global::CppSharp.Parser.AST.QualifiedType.__Internal qualifiedType; - [FieldOffset(416)] + [FieldOffset(656)] internal byte isVirtual; - [FieldOffset(417)] + [FieldOffset(657)] internal byte isStatic; - [FieldOffset(418)] + [FieldOffset(658)] internal byte isConst; - [FieldOffset(419)] + [FieldOffset(659)] internal byte isExplicit; - [FieldOffset(420)] + [FieldOffset(660)] internal byte isOverride; - [FieldOffset(424)] + [FieldOffset(664)] internal global::CppSharp.Parser.AST.CXXMethodKind methodKind; - [FieldOffset(428)] + [FieldOffset(668)] internal byte isDefaultConstructor; - [FieldOffset(429)] + [FieldOffset(669)] internal byte isCopyConstructor; - [FieldOffset(430)] + [FieldOffset(670)] internal byte isMoveConstructor; - [FieldOffset(432)] + [FieldOffset(672)] internal global::CppSharp.Parser.AST.QualifiedType.__Internal conversionType; - [FieldOffset(448)] + [FieldOffset(688)] internal global::CppSharp.Parser.AST.RefQualifierKind refQualifier; [SuppressUnmanagedCodeSecurity] diff --git a/src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/Std.cs b/src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/Std.cs index ab7d58e2..23c5ab9a 100644 --- a/src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/Std.cs +++ b/src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/Std.cs @@ -205,91 +205,84 @@ namespace Std } [StructLayout(LayoutKind.Explicit, Size = 24)] - public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Parameter___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 + public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Template___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 { [FieldOffset(0)] internal global::Std.VectorVal.__Internal _Myval2; } [StructLayout(LayoutKind.Explicit, Size = 24)] - public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_FunctionTemplateSpecialization___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 + public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_TypedefDecl___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 { [FieldOffset(0)] internal global::Std.VectorVal.__Internal _Myval2; } [StructLayout(LayoutKind.Explicit, Size = 24)] - public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator____N_CppSharp_N_CppParser_N_AST_S_TemplateArgument___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 + public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_TypeAlias___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 { [FieldOffset(0)] internal global::Std.VectorVal.__Internal _Myval2; } [StructLayout(LayoutKind.Explicit, Size = 24)] - public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Function___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 + public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Variable___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 { [FieldOffset(0)] internal global::Std.VectorVal.__Internal _Myval2; } [StructLayout(LayoutKind.Explicit, Size = 24)] - public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Template___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 + public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Friend___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 { [FieldOffset(0)] internal global::Std.VectorVal.__Internal _Myval2; } - [StructLayout(LayoutKind.Explicit, Size = 24)] - public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_TypedefDecl___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 + [StructLayout(LayoutKind.Explicit, Size = 16)] + public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S_less____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator____N_std_S__Tree_node____N_std_S_pair__1S1_____N_CppSharp_N_CppParser_N_AST_S_Declaration__v___N_std_S__Tree_val____N_std_S__Tree_simple_types__S8__Vb1_Vb1 { [FieldOffset(0)] - internal global::Std.VectorVal.__Internal _Myval2; + internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator____N_std_S__Tree_node____N_std_S_pair__1__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C____N_CppSharp_N_CppParser_N_AST_S_Declaration__v___N_std_S__Tree_val____N_std_S__Tree_simple_types__S3__Vb1 _Myval2; } - [StructLayout(LayoutKind.Explicit, Size = 24)] - public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_TypeAlias___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 + [StructLayout(LayoutKind.Explicit, Size = 16)] + public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator____N_std_S__Tree_node____N_std_S_pair__1__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C____N_CppSharp_N_CppParser_N_AST_S_Declaration__v___N_std_S__Tree_val____N_std_S__Tree_simple_types__S3__Vb1 { [FieldOffset(0)] - internal global::Std.VectorVal.__Internal _Myval2; + internal global::Std.TreeVal.__Internal _Myval2; } [StructLayout(LayoutKind.Explicit, Size = 24)] - public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Variable___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 + public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_BaseClassSpecifier___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 { [FieldOffset(0)] internal global::Std.VectorVal.__Internal _Myval2; } [StructLayout(LayoutKind.Explicit, Size = 24)] - public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Friend___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 + public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Field___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 { [FieldOffset(0)] internal global::Std.VectorVal.__Internal _Myval2; } - [StructLayout(LayoutKind.Explicit, Size = 16)] - public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S_less____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator____N_std_S__Tree_node____N_std_S_pair__1S1_____N_CppSharp_N_CppParser_N_AST_S_Declaration__v___N_std_S__Tree_val____N_std_S__Tree_simple_types__S8__Vb1_Vb1 - { - [FieldOffset(0)] - internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator____N_std_S__Tree_node____N_std_S_pair__1__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C____N_CppSharp_N_CppParser_N_AST_S_Declaration__v___N_std_S__Tree_val____N_std_S__Tree_simple_types__S3__Vb1 _Myval2; - } - - [StructLayout(LayoutKind.Explicit, Size = 16)] - public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator____N_std_S__Tree_node____N_std_S_pair__1__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C____N_CppSharp_N_CppParser_N_AST_S_Declaration__v___N_std_S__Tree_val____N_std_S__Tree_simple_types__S3__Vb1 + [StructLayout(LayoutKind.Explicit, Size = 24)] + public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Parameter___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 { [FieldOffset(0)] - internal global::Std.TreeVal.__Internal _Myval2; + internal global::Std.VectorVal.__Internal _Myval2; } [StructLayout(LayoutKind.Explicit, Size = 24)] - public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_BaseClassSpecifier___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 + public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_FunctionTemplateSpecialization___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 { [FieldOffset(0)] internal global::Std.VectorVal.__Internal _Myval2; } [StructLayout(LayoutKind.Explicit, Size = 24)] - public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Field___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 + public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator____N_CppSharp_N_CppParser_N_AST_S_TemplateArgument___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 { [FieldOffset(0)] internal global::Std.VectorVal.__Internal _Myval2; @@ -344,6 +337,13 @@ namespace Std internal global::Std.VectorVal.__Internal _Myval2; } + [StructLayout(LayoutKind.Explicit, Size = 24)] + public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Function___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 + { + [FieldOffset(0)] + internal global::Std.VectorVal.__Internal _Myval2; + } + [StructLayout(LayoutKind.Explicit, Size = 24)] public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S__Wrap_alloc____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Enumeration_S_Item___N_std_S__Vector_val____N_std_S__Simple_types__S2__Vb1 { diff --git a/src/Generator/Passes/CheckMacrosPass.cs b/src/Generator/Passes/CheckMacrosPass.cs index 52827de7..1dbd9121 100644 --- a/src/Generator/Passes/CheckMacrosPass.cs +++ b/src/Generator/Passes/CheckMacrosPass.cs @@ -60,10 +60,11 @@ namespace CppSharp.Passes public override bool VisitDeclaration(Declaration decl) { + if (AlreadyVisited(decl)) return false; - if (decl is DeclarationContext && !(decl is Class)) + if (decl is DeclarationContext && !(decl is Class) && !(decl is Function)) return true; var expansions = decl.PreprocessedEntities.OfType(); diff --git a/src/Parser/ASTConverter.cs b/src/Parser/ASTConverter.cs index 85ac7c86..1758b7e4 100644 --- a/src/Parser/ASTConverter.cs +++ b/src/Parser/ASTConverter.cs @@ -915,7 +915,7 @@ namespace CppSharp bool CheckForDuplicates(Declaration decl) { - return decl.OriginalPtr.ToPointer() != (void*)(0x1); + return decl.OriginalPtr.ToPointer() != (void*) (0x1); } void VisitDeclaration(Declaration decl, AST.Declaration _decl) @@ -942,7 +942,7 @@ namespace CppSharp _decl.IsDependent = decl.IsDependent; _decl.DefinitionOrder = decl.DefinitionOrder; _decl.MaxFieldAlignment = decl.MaxFieldAlignment; - + if (decl.CompleteDeclaration != null) _decl.CompleteDeclaration = Visit(decl.CompleteDeclaration); if (decl.Comment != null) @@ -1160,6 +1160,7 @@ namespace CppSharp public void VisitFunction(Function function, AST.Function _function) { VisitDeclaration(function, _function); + VisitDeclContext(function, _function); _function.ReturnType = typeConverter.VisitQualified(function.ReturnType); _function.IsReturnIndirect = function.IsReturnIndirect; @@ -1692,7 +1693,7 @@ namespace CppSharp for (uint i = 0; i < decl.SpecializationsCount; ++i) { var spec = decl.GetSpecializations(i); - var _spec = (AST.ClassTemplateSpecialization)Visit(spec); + var _spec = (AST.ClassTemplateSpecialization) Visit(spec); _decl.Specializations.Add(_spec); } return _decl; @@ -1711,7 +1712,7 @@ namespace CppSharp { VisitClass(decl, _decl); _decl.SpecializationKind = VisitSpecializationKind(decl.SpecializationKind); - _decl.TemplatedDecl = (AST.ClassTemplate)Visit(decl.TemplatedDecl); + _decl.TemplatedDecl = (AST.ClassTemplate) Visit(decl.TemplatedDecl); for (uint i = 0; i < decl.ArgumentsCount; ++i) { var arg = decl.GetArguments(i); @@ -1805,8 +1806,8 @@ namespace CppSharp var _spec = new AST.FunctionTemplateSpecialization(); FunctionTemplateSpecializations.Add(spec.__Instance, _spec); - _spec.Template = (AST.FunctionTemplate)Visit(spec.Template); - _spec.SpecializedFunction = (AST.Function)Visit(spec.SpecializedFunction); + _spec.Template = (AST.FunctionTemplate) Visit(spec.Template); + _spec.SpecializedFunction = (AST.Function) Visit(spec.SpecializedFunction); _spec.SpecializationKind = VisitSpecializationKind(spec.SpecializationKind); for (uint i = 0; i < spec.ArgumentsCount; ++i) { @@ -1824,7 +1825,7 @@ namespace CppSharp for (uint i = 0; i < decl.SpecializationsCount; ++i) { var spec = decl.GetSpecializations(i); - var _spec = (AST.VarTemplateSpecialization)Visit(spec); + var _spec = (AST.VarTemplateSpecialization) Visit(spec); _decl.Specializations.Add(_spec); } return _decl; @@ -1843,7 +1844,7 @@ namespace CppSharp { VisitVariable(decl, _decl); _decl.SpecializationKind = VisitSpecializationKind(decl.SpecializationKind); - _decl.TemplatedDecl = (AST.VarTemplate)Visit(decl.TemplatedDecl); + _decl.TemplatedDecl = (AST.VarTemplate) Visit(decl.TemplatedDecl); for (uint i = 0; i < decl.ArgumentsCount; ++i) { var arg = decl.GetArguments(i);