Browse Source

Added to a method a list of its overridden methods.

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/904/head
Dimitar Dobrev 8 years ago
parent
commit
e2e4109631
  1. 15
      src/AST/Method.cs
  2. 3
      src/CppParser/AST.cpp
  3. 2
      src/CppParser/AST.h
  4. 58
      src/CppParser/Bindings/CLI/AST.cpp
  5. 23
      src/CppParser/Bindings/CLI/AST.h
  6. 84
      src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs
  7. 84
      src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs
  8. 80
      src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs
  9. 80
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs
  10. 80
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs
  11. 80
      src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs
  12. 6
      src/CppParser/Parser.cpp
  13. 7
      src/Parser/ASTConverter.cs

15
src/AST/Method.cs

@ -1,3 +1,5 @@
using System.Collections.Generic;
using System.Linq;
using CppSharp.AST.Extensions; using CppSharp.AST.Extensions;
namespace CppSharp.AST namespace CppSharp.AST
@ -103,6 +105,7 @@ namespace CppSharp.AST
Conversion = method.Conversion; Conversion = method.Conversion;
SynthKind = method.SynthKind; SynthKind = method.SynthKind;
AdjustedOffset = method.AdjustedOffset; AdjustedOffset = method.AdjustedOffset;
OverriddenMethods.AddRange(method.OverriddenMethods);
} }
public Method(Function function) public Method(Function function)
@ -115,9 +118,13 @@ namespace CppSharp.AST
public bool IsStatic { get; set; } public bool IsStatic { get; set; }
public bool IsConst { get; set; } public bool IsConst { get; set; }
public bool IsExplicit { get; set; } public bool IsExplicit { get; set; }
public bool IsOverride { get; set; } public bool IsOverride
{
get { return isOverride ?? OverriddenMethods.Any(); }
set { isOverride = value; }
}
// True if the method is final / sealed. // True if the method is final / sealed.
public bool IsFinal { get; set; } public bool IsFinal { get; set; }
public bool IsProxy { get; set; } public bool IsProxy { get; set; }
@ -161,9 +168,13 @@ namespace CppSharp.AST
public int AdjustedOffset { get; set; } public int AdjustedOffset { get; set; }
public List<Method> OverriddenMethods { get; } = new List<Method>();
public override T Visit<T>(IDeclVisitor<T> visitor) public override T Visit<T>(IDeclVisitor<T> visitor)
{ {
return visitor.VisitMethodDecl(this); return visitor.VisitMethodDecl(this);
} }
private bool? isOverride;
} }
} }

3
src/CppParser/AST.cpp

@ -650,7 +650,6 @@ Method::Method()
, isStatic(false) , isStatic(false)
, isConst(false) , isConst(false)
, isExplicit(false) , isExplicit(false)
, isOverride(false)
, isDefaultConstructor(false) , isDefaultConstructor(false)
, isCopyConstructor(false) , isCopyConstructor(false)
, isMoveConstructor(false) , isMoveConstructor(false)
@ -661,6 +660,8 @@ Method::Method()
Method::~Method() {} Method::~Method() {}
DEF_VECTOR(Method, Method*, OverriddenMethods)
// Enumeration // Enumeration
Enumeration::Enumeration() : DeclarationContext(DeclarationKind::Enumeration), Enumeration::Enumeration() : DeclarationContext(DeclarationKind::Enumeration),

2
src/CppParser/AST.h

@ -762,7 +762,6 @@ public:
bool isStatic; bool isStatic;
bool isConst; bool isConst;
bool isExplicit; bool isExplicit;
bool isOverride;
CXXMethodKind methodKind; CXXMethodKind methodKind;
@ -772,6 +771,7 @@ public:
QualifiedType conversionType; QualifiedType conversionType;
RefQualifierKind refQualifier; RefQualifierKind refQualifier;
VECTOR(Method*, OverriddenMethods)
}; };
class CS_API Enumeration : public DeclarationContext class CS_API Enumeration : public DeclarationContext

58
src/CppParser/Bindings/CLI/AST.cpp

@ -3739,6 +3739,26 @@ CppSharp::Parser::AST::Method::Method()
NativePtr = new ::CppSharp::CppParser::AST::Method(); NativePtr = new ::CppSharp::CppParser::AST::Method();
} }
CppSharp::Parser::AST::Method^ CppSharp::Parser::AST::Method::GetOverriddenMethods(unsigned int i)
{
auto __ret = ((::CppSharp::CppParser::AST::Method*)NativePtr)->getOverriddenMethods(i);
if (__ret == nullptr) return nullptr;
return (__ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Method((::CppSharp::CppParser::AST::Method*)__ret);
}
void CppSharp::Parser::AST::Method::AddOverriddenMethods(CppSharp::Parser::AST::Method^ s)
{
if (ReferenceEquals(s, nullptr))
throw gcnew ::System::ArgumentNullException("s", "Cannot be null because it is a C++ reference (&).");
auto __arg0 = (::CppSharp::CppParser::AST::Method*)s->NativePtr;
((::CppSharp::CppParser::AST::Method*)NativePtr)->addOverriddenMethods(__arg0);
}
void CppSharp::Parser::AST::Method::ClearOverriddenMethods()
{
((::CppSharp::CppParser::AST::Method*)NativePtr)->clearOverriddenMethods();
}
CppSharp::Parser::AST::Method::Method(CppSharp::Parser::AST::Method^ _0) CppSharp::Parser::AST::Method::Method(CppSharp::Parser::AST::Method^ _0)
: CppSharp::Parser::AST::Function((::CppSharp::CppParser::AST::Function*)nullptr) : CppSharp::Parser::AST::Function((::CppSharp::CppParser::AST::Function*)nullptr)
{ {
@ -3789,16 +3809,6 @@ void CppSharp::Parser::AST::Method::IsExplicit::set(bool value)
((::CppSharp::CppParser::AST::Method*)NativePtr)->isExplicit = value; ((::CppSharp::CppParser::AST::Method*)NativePtr)->isExplicit = value;
} }
bool CppSharp::Parser::AST::Method::IsOverride::get()
{
return ((::CppSharp::CppParser::AST::Method*)NativePtr)->isOverride;
}
void CppSharp::Parser::AST::Method::IsOverride::set(bool value)
{
((::CppSharp::CppParser::AST::Method*)NativePtr)->isOverride = value;
}
CppSharp::Parser::AST::CXXMethodKind CppSharp::Parser::AST::Method::MethodKind::get() CppSharp::Parser::AST::CXXMethodKind CppSharp::Parser::AST::Method::MethodKind::get()
{ {
return (CppSharp::Parser::AST::CXXMethodKind)((::CppSharp::CppParser::AST::Method*)NativePtr)->methodKind; return (CppSharp::Parser::AST::CXXMethodKind)((::CppSharp::CppParser::AST::Method*)NativePtr)->methodKind;
@ -3859,6 +3869,34 @@ void CppSharp::Parser::AST::Method::RefQualifier::set(CppSharp::Parser::AST::Ref
((::CppSharp::CppParser::AST::Method*)NativePtr)->refQualifier = (::CppSharp::CppParser::AST::RefQualifierKind)value; ((::CppSharp::CppParser::AST::Method*)NativePtr)->refQualifier = (::CppSharp::CppParser::AST::RefQualifierKind)value;
} }
System::Collections::Generic::List<CppSharp::Parser::AST::Method^>^ CppSharp::Parser::AST::Method::OverriddenMethods::get()
{
auto _tmp__OverriddenMethods = gcnew System::Collections::Generic::List<CppSharp::Parser::AST::Method^>();
for(auto _element : ((::CppSharp::CppParser::AST::Method*)NativePtr)->OverriddenMethods)
{
auto _marshalElement = (_element == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Method((::CppSharp::CppParser::AST::Method*)_element);
_tmp__OverriddenMethods->Add(_marshalElement);
}
return _tmp__OverriddenMethods;
}
void CppSharp::Parser::AST::Method::OverriddenMethods::set(System::Collections::Generic::List<CppSharp::Parser::AST::Method^>^ value)
{
auto _tmpvalue = std::vector<::CppSharp::CppParser::AST::Method*>();
for each(CppSharp::Parser::AST::Method^ _element in value)
{
auto _marshalElement = (::CppSharp::CppParser::AST::Method*)_element->NativePtr;
_tmpvalue.push_back(_marshalElement);
}
((::CppSharp::CppParser::AST::Method*)NativePtr)->OverriddenMethods = _tmpvalue;
}
unsigned int CppSharp::Parser::AST::Method::OverriddenMethodsCount::get()
{
auto __ret = ((::CppSharp::CppParser::AST::Method*)NativePtr)->getOverriddenMethodsCount();
return __ret;
}
CppSharp::Parser::AST::Enumeration::Item::Item(::CppSharp::CppParser::AST::Enumeration::Item* native) CppSharp::Parser::AST::Enumeration::Item::Item(::CppSharp::CppParser::AST::Enumeration::Item* native)
: CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)native) : CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)native)
{ {

23
src/CppParser/Bindings/CLI/AST.h

@ -2180,12 +2180,6 @@ namespace CppSharp
void set(bool); void set(bool);
} }
property bool IsOverride
{
bool get();
void set(bool);
}
property CppSharp::Parser::AST::CXXMethodKind MethodKind property CppSharp::Parser::AST::CXXMethodKind MethodKind
{ {
CppSharp::Parser::AST::CXXMethodKind get(); CppSharp::Parser::AST::CXXMethodKind get();
@ -2221,6 +2215,23 @@ namespace CppSharp
CppSharp::Parser::AST::RefQualifierKind get(); CppSharp::Parser::AST::RefQualifierKind get();
void set(CppSharp::Parser::AST::RefQualifierKind); void set(CppSharp::Parser::AST::RefQualifierKind);
} }
property System::Collections::Generic::List<CppSharp::Parser::AST::Method^>^ OverriddenMethods
{
System::Collections::Generic::List<CppSharp::Parser::AST::Method^>^ get();
void set(System::Collections::Generic::List<CppSharp::Parser::AST::Method^>^);
}
property unsigned int OverriddenMethodsCount
{
unsigned int get();
}
CppSharp::Parser::AST::Method^ GetOverriddenMethods(unsigned int i);
void AddOverriddenMethods(CppSharp::Parser::AST::Method^ s);
void ClearOverriddenMethods();
}; };
public ref class Enumeration : CppSharp::Parser::AST::DeclarationContext public ref class Enumeration : CppSharp::Parser::AST::DeclarationContext

84
src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs

@ -7583,7 +7583,7 @@ namespace CppSharp
public unsafe partial class Method : global::CppSharp.Parser.AST.Function, IDisposable public unsafe partial class Method : global::CppSharp.Parser.AST.Function, IDisposable
{ {
[StructLayout(LayoutKind.Explicit, Size = 352)] [StructLayout(LayoutKind.Explicit, Size = 360)]
public new partial struct __Internal public new partial struct __Internal
{ {
[FieldOffset(0)] [FieldOffset(0)]
@ -7743,26 +7743,26 @@ namespace CppSharp
internal byte isExplicit; internal byte isExplicit;
[FieldOffset(328)] [FieldOffset(328)]
internal byte isOverride;
[FieldOffset(332)]
internal global::CppSharp.Parser.AST.CXXMethodKind methodKind; internal global::CppSharp.Parser.AST.CXXMethodKind methodKind;
[FieldOffset(336)] [FieldOffset(332)]
internal byte isDefaultConstructor; internal byte isDefaultConstructor;
[FieldOffset(337)] [FieldOffset(333)]
internal byte isCopyConstructor; internal byte isCopyConstructor;
[FieldOffset(338)] [FieldOffset(334)]
internal byte isMoveConstructor; internal byte isMoveConstructor;
[FieldOffset(340)] [FieldOffset(336)]
internal global::CppSharp.Parser.AST.QualifiedType.__Internal conversionType; internal global::CppSharp.Parser.AST.QualifiedType.__Internal conversionType;
[FieldOffset(348)] [FieldOffset(344)]
internal global::CppSharp.Parser.AST.RefQualifierKind refQualifier; internal global::CppSharp.Parser.AST.RefQualifierKind refQualifier;
[FieldOffset(348)]
internal global::Std.__1.Vector.__Internal OverriddenMethods;
[SuppressUnmanagedCodeSecurity] [SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser3AST6MethodC2Ev")] EntryPoint="_ZN8CppSharp9CppParser3AST6MethodC2Ev")]
@ -7777,6 +7777,26 @@ namespace CppSharp
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser3AST6MethodD2Ev")] EntryPoint="_ZN8CppSharp9CppParser3AST6MethodD2Ev")]
internal static extern void dtor(global::System.IntPtr instance); internal static extern void dtor(global::System.IntPtr instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser3AST6Method20getOverriddenMethodsEj")]
internal static extern global::System.IntPtr GetOverriddenMethods(global::System.IntPtr instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser3AST6Method20addOverriddenMethodsERPS2_")]
internal static extern void AddOverriddenMethods(global::System.IntPtr instance, global::System.IntPtr s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser3AST6Method22clearOverriddenMethodsEv")]
internal static extern void ClearOverriddenMethods(global::System.IntPtr instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser3AST6Method25getOverriddenMethodsCountEv")]
internal static extern uint GetOverriddenMethodsCount(global::System.IntPtr instance);
} }
internal static new global::CppSharp.Parser.AST.Method __CreateInstance(global::System.IntPtr native, bool skipVTables = false) internal static new global::CppSharp.Parser.AST.Method __CreateInstance(global::System.IntPtr native, bool skipVTables = false)
@ -7846,6 +7866,30 @@ namespace CppSharp
__Instance = IntPtr.Zero; __Instance = IntPtr.Zero;
} }
public global::CppSharp.Parser.AST.Method GetOverriddenMethods(uint i)
{
var __ret = __Internal.GetOverriddenMethods((__Instance + __PointerAdjustment), i);
global::CppSharp.Parser.AST.Method __result0;
if (__ret == IntPtr.Zero) __result0 = null;
else if (global::CppSharp.Parser.AST.Method.NativeToManagedMap.ContainsKey(__ret))
__result0 = (global::CppSharp.Parser.AST.Method) global::CppSharp.Parser.AST.Method.NativeToManagedMap[__ret];
else __result0 = global::CppSharp.Parser.AST.Method.__CreateInstance(__ret);
return __result0;
}
public void AddOverriddenMethods(global::CppSharp.Parser.AST.Method s)
{
if (ReferenceEquals(s, null))
throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&).");
var __arg0 = s.__Instance;
__Internal.AddOverriddenMethods((__Instance + __PointerAdjustment), __arg0);
}
public void ClearOverriddenMethods()
{
__Internal.ClearOverriddenMethods((__Instance + __PointerAdjustment));
}
public bool IsVirtual public bool IsVirtual
{ {
get get
@ -7898,19 +7942,6 @@ namespace CppSharp
} }
} }
public bool IsOverride
{
get
{
return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isOverride != 0;
}
set
{
((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isOverride = (byte) (value ? 1 : 0);
}
}
public global::CppSharp.Parser.AST.CXXMethodKind MethodKind public global::CppSharp.Parser.AST.CXXMethodKind MethodKind
{ {
get get
@ -7988,6 +8019,15 @@ namespace CppSharp
((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->refQualifier = value; ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->refQualifier = value;
} }
} }
public uint OverriddenMethodsCount
{
get
{
var __ret = __Internal.GetOverriddenMethodsCount((__Instance + __PointerAdjustment));
return __ret;
}
}
} }
public unsafe partial class Enumeration : global::CppSharp.Parser.AST.DeclarationContext, IDisposable public unsafe partial class Enumeration : global::CppSharp.Parser.AST.DeclarationContext, IDisposable

84
src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs

@ -7583,7 +7583,7 @@ namespace CppSharp
public unsafe partial class Method : global::CppSharp.Parser.AST.Function, IDisposable public unsafe partial class Method : global::CppSharp.Parser.AST.Function, IDisposable
{ {
[StructLayout(LayoutKind.Explicit, Size = 420)] [StructLayout(LayoutKind.Explicit, Size = 428)]
public new partial struct __Internal public new partial struct __Internal
{ {
[FieldOffset(0)] [FieldOffset(0)]
@ -7743,26 +7743,26 @@ namespace CppSharp
internal byte isExplicit; internal byte isExplicit;
[FieldOffset(396)] [FieldOffset(396)]
internal byte isOverride;
[FieldOffset(400)]
internal global::CppSharp.Parser.AST.CXXMethodKind methodKind; internal global::CppSharp.Parser.AST.CXXMethodKind methodKind;
[FieldOffset(404)] [FieldOffset(400)]
internal byte isDefaultConstructor; internal byte isDefaultConstructor;
[FieldOffset(405)] [FieldOffset(401)]
internal byte isCopyConstructor; internal byte isCopyConstructor;
[FieldOffset(406)] [FieldOffset(402)]
internal byte isMoveConstructor; internal byte isMoveConstructor;
[FieldOffset(408)] [FieldOffset(404)]
internal global::CppSharp.Parser.AST.QualifiedType.__Internal conversionType; internal global::CppSharp.Parser.AST.QualifiedType.__Internal conversionType;
[FieldOffset(416)] [FieldOffset(412)]
internal global::CppSharp.Parser.AST.RefQualifierKind refQualifier; internal global::CppSharp.Parser.AST.RefQualifierKind refQualifier;
[FieldOffset(416)]
internal global::Std.Vector.__Internal OverriddenMethods;
[SuppressUnmanagedCodeSecurity] [SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="??0Method@AST@CppParser@CppSharp@@QAE@XZ")] EntryPoint="??0Method@AST@CppParser@CppSharp@@QAE@XZ")]
@ -7777,6 +7777,26 @@ namespace CppSharp
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="??1Method@AST@CppParser@CppSharp@@QAE@XZ")] EntryPoint="??1Method@AST@CppParser@CppSharp@@QAE@XZ")]
internal static extern void dtor(global::System.IntPtr instance, int delete); internal static extern void dtor(global::System.IntPtr instance, int delete);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="?getOverriddenMethods@Method@AST@CppParser@CppSharp@@QAEPAV1234@I@Z")]
internal static extern global::System.IntPtr GetOverriddenMethods(global::System.IntPtr instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="?addOverriddenMethods@Method@AST@CppParser@CppSharp@@QAEXAAPAV1234@@Z")]
internal static extern void AddOverriddenMethods(global::System.IntPtr instance, global::System.IntPtr s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="?clearOverriddenMethods@Method@AST@CppParser@CppSharp@@QAEXXZ")]
internal static extern void ClearOverriddenMethods(global::System.IntPtr instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="?getOverriddenMethodsCount@Method@AST@CppParser@CppSharp@@QAEIXZ")]
internal static extern uint GetOverriddenMethodsCount(global::System.IntPtr instance);
} }
internal static new global::CppSharp.Parser.AST.Method __CreateInstance(global::System.IntPtr native, bool skipVTables = false) internal static new global::CppSharp.Parser.AST.Method __CreateInstance(global::System.IntPtr native, bool skipVTables = false)
@ -7846,6 +7866,30 @@ namespace CppSharp
__Instance = IntPtr.Zero; __Instance = IntPtr.Zero;
} }
public global::CppSharp.Parser.AST.Method GetOverriddenMethods(uint i)
{
var __ret = __Internal.GetOverriddenMethods((__Instance + __PointerAdjustment), i);
global::CppSharp.Parser.AST.Method __result0;
if (__ret == IntPtr.Zero) __result0 = null;
else if (global::CppSharp.Parser.AST.Method.NativeToManagedMap.ContainsKey(__ret))
__result0 = (global::CppSharp.Parser.AST.Method) global::CppSharp.Parser.AST.Method.NativeToManagedMap[__ret];
else __result0 = global::CppSharp.Parser.AST.Method.__CreateInstance(__ret);
return __result0;
}
public void AddOverriddenMethods(global::CppSharp.Parser.AST.Method s)
{
if (ReferenceEquals(s, null))
throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&).");
var __arg0 = s.__Instance;
__Internal.AddOverriddenMethods((__Instance + __PointerAdjustment), __arg0);
}
public void ClearOverriddenMethods()
{
__Internal.ClearOverriddenMethods((__Instance + __PointerAdjustment));
}
public bool IsVirtual public bool IsVirtual
{ {
get get
@ -7898,19 +7942,6 @@ namespace CppSharp
} }
} }
public bool IsOverride
{
get
{
return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isOverride != 0;
}
set
{
((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isOverride = (byte) (value ? 1 : 0);
}
}
public global::CppSharp.Parser.AST.CXXMethodKind MethodKind public global::CppSharp.Parser.AST.CXXMethodKind MethodKind
{ {
get get
@ -7988,6 +8019,15 @@ namespace CppSharp
((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->refQualifier = value; ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->refQualifier = value;
} }
} }
public uint OverriddenMethodsCount
{
get
{
var __ret = __Internal.GetOverriddenMethodsCount((__Instance + __PointerAdjustment));
return __ret;
}
}
} }
public unsafe partial class Enumeration : global::CppSharp.Parser.AST.DeclarationContext, IDisposable public unsafe partial class Enumeration : global::CppSharp.Parser.AST.DeclarationContext, IDisposable

80
src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs

@ -7582,7 +7582,7 @@ namespace CppSharp
public unsafe partial class Method : global::CppSharp.Parser.AST.Function, IDisposable public unsafe partial class Method : global::CppSharp.Parser.AST.Function, IDisposable
{ {
[StructLayout(LayoutKind.Explicit, Size = 656)] [StructLayout(LayoutKind.Explicit, Size = 680)]
public new partial struct __Internal public new partial struct __Internal
{ {
[FieldOffset(0)] [FieldOffset(0)]
@ -7742,18 +7742,15 @@ namespace CppSharp
internal byte isExplicit; internal byte isExplicit;
[FieldOffset(620)] [FieldOffset(620)]
internal byte isOverride;
[FieldOffset(624)]
internal global::CppSharp.Parser.AST.CXXMethodKind methodKind; internal global::CppSharp.Parser.AST.CXXMethodKind methodKind;
[FieldOffset(628)] [FieldOffset(624)]
internal byte isDefaultConstructor; internal byte isDefaultConstructor;
[FieldOffset(629)] [FieldOffset(625)]
internal byte isCopyConstructor; internal byte isCopyConstructor;
[FieldOffset(630)] [FieldOffset(626)]
internal byte isMoveConstructor; internal byte isMoveConstructor;
[FieldOffset(632)] [FieldOffset(632)]
@ -7762,6 +7759,9 @@ namespace CppSharp
[FieldOffset(648)] [FieldOffset(648)]
internal global::CppSharp.Parser.AST.RefQualifierKind refQualifier; internal global::CppSharp.Parser.AST.RefQualifierKind refQualifier;
[FieldOffset(656)]
internal global::Std.__1.Vector.__Internal OverriddenMethods;
[SuppressUnmanagedCodeSecurity] [SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser3AST6MethodC2Ev")] EntryPoint="_ZN8CppSharp9CppParser3AST6MethodC2Ev")]
@ -7776,6 +7776,26 @@ namespace CppSharp
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser3AST6MethodD2Ev")] EntryPoint="_ZN8CppSharp9CppParser3AST6MethodD2Ev")]
internal static extern void dtor(global::System.IntPtr instance); internal static extern void dtor(global::System.IntPtr instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser3AST6Method20getOverriddenMethodsEj")]
internal static extern global::System.IntPtr GetOverriddenMethods(global::System.IntPtr instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser3AST6Method20addOverriddenMethodsERPS2_")]
internal static extern void AddOverriddenMethods(global::System.IntPtr instance, global::System.IntPtr s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser3AST6Method22clearOverriddenMethodsEv")]
internal static extern void ClearOverriddenMethods(global::System.IntPtr instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser3AST6Method25getOverriddenMethodsCountEv")]
internal static extern uint GetOverriddenMethodsCount(global::System.IntPtr instance);
} }
internal static new global::CppSharp.Parser.AST.Method __CreateInstance(global::System.IntPtr native, bool skipVTables = false) internal static new global::CppSharp.Parser.AST.Method __CreateInstance(global::System.IntPtr native, bool skipVTables = false)
@ -7845,6 +7865,30 @@ namespace CppSharp
__Instance = IntPtr.Zero; __Instance = IntPtr.Zero;
} }
public global::CppSharp.Parser.AST.Method GetOverriddenMethods(uint i)
{
var __ret = __Internal.GetOverriddenMethods((__Instance + __PointerAdjustment), i);
global::CppSharp.Parser.AST.Method __result0;
if (__ret == IntPtr.Zero) __result0 = null;
else if (global::CppSharp.Parser.AST.Method.NativeToManagedMap.ContainsKey(__ret))
__result0 = (global::CppSharp.Parser.AST.Method) global::CppSharp.Parser.AST.Method.NativeToManagedMap[__ret];
else __result0 = global::CppSharp.Parser.AST.Method.__CreateInstance(__ret);
return __result0;
}
public void AddOverriddenMethods(global::CppSharp.Parser.AST.Method s)
{
if (ReferenceEquals(s, null))
throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&).");
var __arg0 = s.__Instance;
__Internal.AddOverriddenMethods((__Instance + __PointerAdjustment), __arg0);
}
public void ClearOverriddenMethods()
{
__Internal.ClearOverriddenMethods((__Instance + __PointerAdjustment));
}
public bool IsVirtual public bool IsVirtual
{ {
get get
@ -7897,19 +7941,6 @@ namespace CppSharp
} }
} }
public bool IsOverride
{
get
{
return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isOverride != 0;
}
set
{
((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isOverride = (byte) (value ? 1 : 0);
}
}
public global::CppSharp.Parser.AST.CXXMethodKind MethodKind public global::CppSharp.Parser.AST.CXXMethodKind MethodKind
{ {
get get
@ -7987,6 +8018,15 @@ namespace CppSharp
((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->refQualifier = value; ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->refQualifier = value;
} }
} }
public uint OverriddenMethodsCount
{
get
{
var __ret = __Internal.GetOverriddenMethodsCount((__Instance + __PointerAdjustment));
return __ret;
}
}
} }
public unsafe partial class Enumeration : global::CppSharp.Parser.AST.DeclarationContext, IDisposable public unsafe partial class Enumeration : global::CppSharp.Parser.AST.DeclarationContext, IDisposable

80
src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs

@ -7582,7 +7582,7 @@ namespace CppSharp
public unsafe partial class Method : global::CppSharp.Parser.AST.Function, IDisposable public unsafe partial class Method : global::CppSharp.Parser.AST.Function, IDisposable
{ {
[StructLayout(LayoutKind.Explicit, Size = 728)] [StructLayout(LayoutKind.Explicit, Size = 752)]
public new partial struct __Internal public new partial struct __Internal
{ {
[FieldOffset(0)] [FieldOffset(0)]
@ -7742,18 +7742,15 @@ namespace CppSharp
internal byte isExplicit; internal byte isExplicit;
[FieldOffset(692)] [FieldOffset(692)]
internal byte isOverride;
[FieldOffset(696)]
internal global::CppSharp.Parser.AST.CXXMethodKind methodKind; internal global::CppSharp.Parser.AST.CXXMethodKind methodKind;
[FieldOffset(700)] [FieldOffset(696)]
internal byte isDefaultConstructor; internal byte isDefaultConstructor;
[FieldOffset(701)] [FieldOffset(697)]
internal byte isCopyConstructor; internal byte isCopyConstructor;
[FieldOffset(702)] [FieldOffset(698)]
internal byte isMoveConstructor; internal byte isMoveConstructor;
[FieldOffset(704)] [FieldOffset(704)]
@ -7762,6 +7759,9 @@ namespace CppSharp
[FieldOffset(720)] [FieldOffset(720)]
internal global::CppSharp.Parser.AST.RefQualifierKind refQualifier; internal global::CppSharp.Parser.AST.RefQualifierKind refQualifier;
[FieldOffset(728)]
internal global::Std.Vector.__Internal OverriddenMethods;
[SuppressUnmanagedCodeSecurity] [SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser3AST6MethodC2Ev")] EntryPoint="_ZN8CppSharp9CppParser3AST6MethodC2Ev")]
@ -7776,6 +7776,26 @@ namespace CppSharp
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser3AST6MethodD2Ev")] EntryPoint="_ZN8CppSharp9CppParser3AST6MethodD2Ev")]
internal static extern void dtor(global::System.IntPtr instance); internal static extern void dtor(global::System.IntPtr instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser3AST6Method20getOverriddenMethodsEj")]
internal static extern global::System.IntPtr GetOverriddenMethods(global::System.IntPtr instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser3AST6Method20addOverriddenMethodsERPS2_")]
internal static extern void AddOverriddenMethods(global::System.IntPtr instance, global::System.IntPtr s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser3AST6Method22clearOverriddenMethodsEv")]
internal static extern void ClearOverriddenMethods(global::System.IntPtr instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser3AST6Method25getOverriddenMethodsCountEv")]
internal static extern uint GetOverriddenMethodsCount(global::System.IntPtr instance);
} }
internal static new global::CppSharp.Parser.AST.Method __CreateInstance(global::System.IntPtr native, bool skipVTables = false) internal static new global::CppSharp.Parser.AST.Method __CreateInstance(global::System.IntPtr native, bool skipVTables = false)
@ -7845,6 +7865,30 @@ namespace CppSharp
__Instance = IntPtr.Zero; __Instance = IntPtr.Zero;
} }
public global::CppSharp.Parser.AST.Method GetOverriddenMethods(uint i)
{
var __ret = __Internal.GetOverriddenMethods((__Instance + __PointerAdjustment), i);
global::CppSharp.Parser.AST.Method __result0;
if (__ret == IntPtr.Zero) __result0 = null;
else if (global::CppSharp.Parser.AST.Method.NativeToManagedMap.ContainsKey(__ret))
__result0 = (global::CppSharp.Parser.AST.Method) global::CppSharp.Parser.AST.Method.NativeToManagedMap[__ret];
else __result0 = global::CppSharp.Parser.AST.Method.__CreateInstance(__ret);
return __result0;
}
public void AddOverriddenMethods(global::CppSharp.Parser.AST.Method s)
{
if (ReferenceEquals(s, null))
throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&).");
var __arg0 = s.__Instance;
__Internal.AddOverriddenMethods((__Instance + __PointerAdjustment), __arg0);
}
public void ClearOverriddenMethods()
{
__Internal.ClearOverriddenMethods((__Instance + __PointerAdjustment));
}
public bool IsVirtual public bool IsVirtual
{ {
get get
@ -7897,19 +7941,6 @@ namespace CppSharp
} }
} }
public bool IsOverride
{
get
{
return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isOverride != 0;
}
set
{
((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isOverride = (byte) (value ? 1 : 0);
}
}
public global::CppSharp.Parser.AST.CXXMethodKind MethodKind public global::CppSharp.Parser.AST.CXXMethodKind MethodKind
{ {
get get
@ -7987,6 +8018,15 @@ namespace CppSharp
((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->refQualifier = value; ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->refQualifier = value;
} }
} }
public uint OverriddenMethodsCount
{
get
{
var __ret = __Internal.GetOverriddenMethodsCount((__Instance + __PointerAdjustment));
return __ret;
}
}
} }
public unsafe partial class Enumeration : global::CppSharp.Parser.AST.DeclarationContext, IDisposable public unsafe partial class Enumeration : global::CppSharp.Parser.AST.DeclarationContext, IDisposable

80
src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs

@ -7582,7 +7582,7 @@ namespace CppSharp
public unsafe partial class Method : global::CppSharp.Parser.AST.Function, IDisposable public unsafe partial class Method : global::CppSharp.Parser.AST.Function, IDisposable
{ {
[StructLayout(LayoutKind.Explicit, Size = 584)] [StructLayout(LayoutKind.Explicit, Size = 608)]
public new partial struct __Internal public new partial struct __Internal
{ {
[FieldOffset(0)] [FieldOffset(0)]
@ -7742,18 +7742,15 @@ namespace CppSharp
internal byte isExplicit; internal byte isExplicit;
[FieldOffset(548)] [FieldOffset(548)]
internal byte isOverride;
[FieldOffset(552)]
internal global::CppSharp.Parser.AST.CXXMethodKind methodKind; internal global::CppSharp.Parser.AST.CXXMethodKind methodKind;
[FieldOffset(556)] [FieldOffset(552)]
internal byte isDefaultConstructor; internal byte isDefaultConstructor;
[FieldOffset(557)] [FieldOffset(553)]
internal byte isCopyConstructor; internal byte isCopyConstructor;
[FieldOffset(558)] [FieldOffset(554)]
internal byte isMoveConstructor; internal byte isMoveConstructor;
[FieldOffset(560)] [FieldOffset(560)]
@ -7762,6 +7759,9 @@ namespace CppSharp
[FieldOffset(576)] [FieldOffset(576)]
internal global::CppSharp.Parser.AST.RefQualifierKind refQualifier; internal global::CppSharp.Parser.AST.RefQualifierKind refQualifier;
[FieldOffset(584)]
internal global::Std.Vector.__Internal OverriddenMethods;
[SuppressUnmanagedCodeSecurity] [SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser3AST6MethodC2Ev")] EntryPoint="_ZN8CppSharp9CppParser3AST6MethodC2Ev")]
@ -7776,6 +7776,26 @@ namespace CppSharp
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser3AST6MethodD2Ev")] EntryPoint="_ZN8CppSharp9CppParser3AST6MethodD2Ev")]
internal static extern void dtor(global::System.IntPtr instance); internal static extern void dtor(global::System.IntPtr instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser3AST6Method20getOverriddenMethodsEj")]
internal static extern global::System.IntPtr GetOverriddenMethods(global::System.IntPtr instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser3AST6Method20addOverriddenMethodsERPS2_")]
internal static extern void AddOverriddenMethods(global::System.IntPtr instance, global::System.IntPtr s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser3AST6Method22clearOverriddenMethodsEv")]
internal static extern void ClearOverriddenMethods(global::System.IntPtr instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser3AST6Method25getOverriddenMethodsCountEv")]
internal static extern uint GetOverriddenMethodsCount(global::System.IntPtr instance);
} }
internal static new global::CppSharp.Parser.AST.Method __CreateInstance(global::System.IntPtr native, bool skipVTables = false) internal static new global::CppSharp.Parser.AST.Method __CreateInstance(global::System.IntPtr native, bool skipVTables = false)
@ -7845,6 +7865,30 @@ namespace CppSharp
__Instance = IntPtr.Zero; __Instance = IntPtr.Zero;
} }
public global::CppSharp.Parser.AST.Method GetOverriddenMethods(uint i)
{
var __ret = __Internal.GetOverriddenMethods((__Instance + __PointerAdjustment), i);
global::CppSharp.Parser.AST.Method __result0;
if (__ret == IntPtr.Zero) __result0 = null;
else if (global::CppSharp.Parser.AST.Method.NativeToManagedMap.ContainsKey(__ret))
__result0 = (global::CppSharp.Parser.AST.Method) global::CppSharp.Parser.AST.Method.NativeToManagedMap[__ret];
else __result0 = global::CppSharp.Parser.AST.Method.__CreateInstance(__ret);
return __result0;
}
public void AddOverriddenMethods(global::CppSharp.Parser.AST.Method s)
{
if (ReferenceEquals(s, null))
throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&).");
var __arg0 = s.__Instance;
__Internal.AddOverriddenMethods((__Instance + __PointerAdjustment), __arg0);
}
public void ClearOverriddenMethods()
{
__Internal.ClearOverriddenMethods((__Instance + __PointerAdjustment));
}
public bool IsVirtual public bool IsVirtual
{ {
get get
@ -7897,19 +7941,6 @@ namespace CppSharp
} }
} }
public bool IsOverride
{
get
{
return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isOverride != 0;
}
set
{
((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isOverride = (byte) (value ? 1 : 0);
}
}
public global::CppSharp.Parser.AST.CXXMethodKind MethodKind public global::CppSharp.Parser.AST.CXXMethodKind MethodKind
{ {
get get
@ -7987,6 +8018,15 @@ namespace CppSharp
((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->refQualifier = value; ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->refQualifier = value;
} }
} }
public uint OverriddenMethodsCount
{
get
{
var __ret = __Internal.GetOverriddenMethodsCount((__Instance + __PointerAdjustment));
return __ret;
}
}
} }
public unsafe partial class Enumeration : global::CppSharp.Parser.AST.DeclarationContext, IDisposable public unsafe partial class Enumeration : global::CppSharp.Parser.AST.DeclarationContext, IDisposable

80
src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs

@ -7583,7 +7583,7 @@ namespace CppSharp
public unsafe partial class Method : global::CppSharp.Parser.AST.Function, IDisposable public unsafe partial class Method : global::CppSharp.Parser.AST.Function, IDisposable
{ {
[StructLayout(LayoutKind.Explicit, Size = 696)] [StructLayout(LayoutKind.Explicit, Size = 720)]
public new partial struct __Internal public new partial struct __Internal
{ {
[FieldOffset(0)] [FieldOffset(0)]
@ -7743,18 +7743,15 @@ namespace CppSharp
internal byte isExplicit; internal byte isExplicit;
[FieldOffset(660)] [FieldOffset(660)]
internal byte isOverride;
[FieldOffset(664)]
internal global::CppSharp.Parser.AST.CXXMethodKind methodKind; internal global::CppSharp.Parser.AST.CXXMethodKind methodKind;
[FieldOffset(668)] [FieldOffset(664)]
internal byte isDefaultConstructor; internal byte isDefaultConstructor;
[FieldOffset(669)] [FieldOffset(665)]
internal byte isCopyConstructor; internal byte isCopyConstructor;
[FieldOffset(670)] [FieldOffset(666)]
internal byte isMoveConstructor; internal byte isMoveConstructor;
[FieldOffset(672)] [FieldOffset(672)]
@ -7763,6 +7760,9 @@ namespace CppSharp
[FieldOffset(688)] [FieldOffset(688)]
internal global::CppSharp.Parser.AST.RefQualifierKind refQualifier; internal global::CppSharp.Parser.AST.RefQualifierKind refQualifier;
[FieldOffset(696)]
internal global::Std.Vector.__Internal OverriddenMethods;
[SuppressUnmanagedCodeSecurity] [SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="??0Method@AST@CppParser@CppSharp@@QEAA@XZ")] EntryPoint="??0Method@AST@CppParser@CppSharp@@QEAA@XZ")]
@ -7777,6 +7777,26 @@ namespace CppSharp
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="??1Method@AST@CppParser@CppSharp@@QEAA@XZ")] EntryPoint="??1Method@AST@CppParser@CppSharp@@QEAA@XZ")]
internal static extern void dtor(global::System.IntPtr instance, int delete); internal static extern void dtor(global::System.IntPtr instance, int delete);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="?getOverriddenMethods@Method@AST@CppParser@CppSharp@@QEAAPEAV1234@I@Z")]
internal static extern global::System.IntPtr GetOverriddenMethods(global::System.IntPtr instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="?addOverriddenMethods@Method@AST@CppParser@CppSharp@@QEAAXAEAPEAV1234@@Z")]
internal static extern void AddOverriddenMethods(global::System.IntPtr instance, global::System.IntPtr s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="?clearOverriddenMethods@Method@AST@CppParser@CppSharp@@QEAAXXZ")]
internal static extern void ClearOverriddenMethods(global::System.IntPtr instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="?getOverriddenMethodsCount@Method@AST@CppParser@CppSharp@@QEAAIXZ")]
internal static extern uint GetOverriddenMethodsCount(global::System.IntPtr instance);
} }
internal static new global::CppSharp.Parser.AST.Method __CreateInstance(global::System.IntPtr native, bool skipVTables = false) internal static new global::CppSharp.Parser.AST.Method __CreateInstance(global::System.IntPtr native, bool skipVTables = false)
@ -7846,6 +7866,30 @@ namespace CppSharp
__Instance = IntPtr.Zero; __Instance = IntPtr.Zero;
} }
public global::CppSharp.Parser.AST.Method GetOverriddenMethods(uint i)
{
var __ret = __Internal.GetOverriddenMethods((__Instance + __PointerAdjustment), i);
global::CppSharp.Parser.AST.Method __result0;
if (__ret == IntPtr.Zero) __result0 = null;
else if (global::CppSharp.Parser.AST.Method.NativeToManagedMap.ContainsKey(__ret))
__result0 = (global::CppSharp.Parser.AST.Method) global::CppSharp.Parser.AST.Method.NativeToManagedMap[__ret];
else __result0 = global::CppSharp.Parser.AST.Method.__CreateInstance(__ret);
return __result0;
}
public void AddOverriddenMethods(global::CppSharp.Parser.AST.Method s)
{
if (ReferenceEquals(s, null))
throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&).");
var __arg0 = s.__Instance;
__Internal.AddOverriddenMethods((__Instance + __PointerAdjustment), __arg0);
}
public void ClearOverriddenMethods()
{
__Internal.ClearOverriddenMethods((__Instance + __PointerAdjustment));
}
public bool IsVirtual public bool IsVirtual
{ {
get get
@ -7898,19 +7942,6 @@ namespace CppSharp
} }
} }
public bool IsOverride
{
get
{
return ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isOverride != 0;
}
set
{
((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->isOverride = (byte) (value ? 1 : 0);
}
}
public global::CppSharp.Parser.AST.CXXMethodKind MethodKind public global::CppSharp.Parser.AST.CXXMethodKind MethodKind
{ {
get get
@ -7988,6 +8019,15 @@ namespace CppSharp
((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->refQualifier = value; ((global::CppSharp.Parser.AST.Method.__Internal*) __Instance)->refQualifier = value;
} }
} }
public uint OverriddenMethodsCount
{
get
{
var __ret = __Internal.GetOverriddenMethodsCount((__Instance + __PointerAdjustment));
return __ret;
}
}
} }
public unsafe partial class Enumeration : global::CppSharp.Parser.AST.DeclarationContext, IDisposable public unsafe partial class Enumeration : global::CppSharp.Parser.AST.DeclarationContext, IDisposable

6
src/CppParser/Parser.cpp

@ -1603,7 +1603,11 @@ Method* Parser::WalkMethodCXX(const clang::CXXMethodDecl* MD)
Method->isStatic = MD->isStatic(); Method->isStatic = MD->isStatic();
Method->isVirtual = MD->isVirtual(); Method->isVirtual = MD->isVirtual();
Method->isConst = MD->isConst(); Method->isConst = MD->isConst();
Method->isOverride = MD->size_overridden_methods() > 0; for (auto OverriddenMethod : MD->overridden_methods())
{
auto OM = WalkMethodCXX(OverriddenMethod);
Method->OverriddenMethods.push_back(OM);
}
switch (MD->getRefQualifier()) switch (MD->getRefQualifier())
{ {
case clang::RefQualifierKind::RQ_None: case clang::RefQualifierKind::RQ_None:

7
src/Parser/ASTConverter.cs

@ -1209,7 +1209,6 @@ namespace CppSharp
_method.IsConst = decl.IsConst; _method.IsConst = decl.IsConst;
_method.IsImplicit = decl.IsImplicit; _method.IsImplicit = decl.IsImplicit;
_method.IsExplicit = decl.IsExplicit; _method.IsExplicit = decl.IsExplicit;
_method.IsOverride = decl.IsOverride;
switch (decl.RefQualifier) switch (decl.RefQualifier)
{ {
@ -1232,6 +1231,12 @@ namespace CppSharp
_method.ConversionType = typeConverter.VisitQualified(decl.ConversionType); _method.ConversionType = typeConverter.VisitQualified(decl.ConversionType);
for (uint i = 0; i < decl.OverriddenMethodsCount; i++)
{
var @override = decl.GetOverriddenMethods(i);
_method.OverriddenMethods.Add((AST.Method) Visit(@override));
}
return _method; return _method;
} }

Loading…
Cancel
Save