Skip to content

Fix some template declarations not setting namespace #1913

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Feb 14, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/AST/Template.cs
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,8 @@ public override T Visit<T>(IDeclVisitor<T> visitor)
{
return visitor.VisitTypeAliasTemplateDecl(this);
}

public Declaration CanonicalDecl;
}

/// <summary>
Expand Down
4 changes: 4 additions & 0 deletions src/CLI/Generator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ void SetupTargetTriple()
case TargetArchitecture.WASM64:
tripleBuilder.Append("wasm64-");
break;
default:
throw new ArgumentOutOfRangeException(nameof(options.Architecture), "Unsupported target architecture.");
}

switch (options.Platform)
Expand Down Expand Up @@ -71,6 +73,8 @@ void SetupTargetTriple()
abi = CppAbi.Itanium;
break;
}
default:
throw new ArgumentOutOfRangeException(nameof(options.Platform), "Unsupported target platform.");
}

triple = tripleBuilder.ToString();
Expand Down
5 changes: 4 additions & 1 deletion src/CppParser/AST.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,10 @@ enum class ArchType
{
UnknownArch,
x86,
x86_64
x86_64,
aarch64,
aarch64_be,
aarch64_32
};

class CS_API NativeLibrary
Expand Down
10 changes: 10 additions & 0 deletions src/CppParser/Bindings/CLI/Decl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3915,6 +3915,16 @@ CppSharp::Parser::AST::TypeAliasTemplate::TypeAliasTemplate(CppSharp::Parser::AS
NativePtr = new class ::CppSharp::CppParser::AST::TypeAliasTemplate(__arg0);
}

CppSharp::Parser::AST::Declaration^ CppSharp::Parser::AST::TypeAliasTemplate::CanonicalDecl::get()
{
return (((class ::CppSharp::CppParser::AST::TypeAliasTemplate*)NativePtr)->CanonicalDecl == nullptr) ? nullptr : gcnew ::CppSharp::Parser::AST::Declaration((class ::CppSharp::CppParser::AST::Declaration*)((class ::CppSharp::CppParser::AST::TypeAliasTemplate*)NativePtr)->CanonicalDecl);
}

void CppSharp::Parser::AST::TypeAliasTemplate::CanonicalDecl::set(CppSharp::Parser::AST::Declaration^ value)
{
((class ::CppSharp::CppParser::AST::TypeAliasTemplate*)NativePtr)->CanonicalDecl = (class ::CppSharp::CppParser::AST::Declaration*)value->NativePtr;
}

CppSharp::Parser::AST::TemplateParameter::TemplateParameter(class ::CppSharp::CppParser::AST::TemplateParameter* native)
: CppSharp::Parser::AST::Declaration((::CppSharp::CppParser::AST::Declaration*)native)
{
Expand Down
6 changes: 6 additions & 0 deletions src/CppParser/Bindings/CLI/Decl.h
Original file line number Diff line number Diff line change
Expand Up @@ -1971,6 +1971,12 @@ namespace CppSharp
TypeAliasTemplate(CppSharp::Parser::AST::TypeAliasTemplate^ _0);

~TypeAliasTemplate();

property CppSharp::Parser::AST::Declaration^ CanonicalDecl
{
CppSharp::Parser::AST::Declaration^ get();
void set(CppSharp::Parser::AST::Declaration^);
}
};

public ref class TemplateParameter : CppSharp::Parser::AST::Declaration
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,10 @@ public enum ArchType
{
UnknownArch = 0,
X86 = 1,
X86_64 = 2
X86_64 = 2,
Aarch64 = 3,
Aarch64Be = 4,
Aarch64_32 = 5
}

public unsafe partial class NativeLibrary : IDisposable
Expand Down Expand Up @@ -12580,7 +12583,7 @@ public uint ParametersCount

public unsafe partial class TypeAliasTemplate : global::CppSharp.Parser.AST.Template, IDisposable
{
[StructLayout(LayoutKind.Sequential, Size = 132)]
[StructLayout(LayoutKind.Sequential, Size = 136)]
public new partial struct __Internal
{
internal global::CppSharp.Parser.AST.DeclarationKind kind;
Expand All @@ -12607,6 +12610,7 @@ public unsafe partial class TypeAliasTemplate : global::CppSharp.Parser.AST.Temp
internal __IntPtr comment;
internal __IntPtr TemplatedDecl;
internal global::Std.Vector.__Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_N___1_S_allocator__S0_ Parameters;
internal __IntPtr CanonicalDecl;

[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST17TypeAliasTemplateC2Ev", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void ctor(__IntPtr __instance);
Expand Down Expand Up @@ -12696,6 +12700,20 @@ internal protected override void Dispose(bool disposing, bool callNativeDtor)
Marshal.FreeHGlobal(__Instance);
__Instance = IntPtr.Zero;
}

public global::CppSharp.Parser.AST.Declaration CanonicalDecl
{
get
{
var __result0 = global::CppSharp.Parser.AST.Declaration.__GetOrCreateInstance(((__Internal*)__Instance)->CanonicalDecl, false);
return __result0;
}

set
{
((__Internal*)__Instance)->CanonicalDecl = value is null ? __IntPtr.Zero : value.__Instance;
}
}
}

public unsafe partial class TemplateParameter : global::CppSharp.Parser.AST.Declaration, IDisposable
Expand Down Expand Up @@ -15793,7 +15811,7 @@ public partial struct __Internal
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST10ASTContextD2Ev", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void dtor(__IntPtr __instance);

[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST10ASTContext18FindOrCreateModuleENSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEE", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST10ASTContext18FindOrCreateModuleERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEE", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr FindOrCreateModule(__IntPtr __instance, __IntPtr File);

[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST10ASTContext19getTranslationUnitsEj", CallingConvention = __CallingConvention.Cdecl)]
Expand Down Expand Up @@ -15917,7 +15935,7 @@ internal protected virtual void Dispose(bool disposing, bool callNativeDtor)
global::Std.BasicStringExtensions.Assign(__basicString0, File);
var __arg0 = __basicString0.__Instance;
var ___ret = __Internal.FindOrCreateModule(__Instance, __arg0);
__basicString0.Dispose(disposing: true, callNativeDtor:false);
__basicString0.Dispose();
var __result0 = global::CppSharp.Parser.AST.TranslationUnit.__GetOrCreateInstance(___ret, false);
return __result0;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,10 @@ public enum ArchType
{
UnknownArch = 0,
X86 = 1,
X86_64 = 2
X86_64 = 2,
Aarch64 = 3,
Aarch64Be = 4,
Aarch64_32 = 5
}

public unsafe partial class NativeLibrary : IDisposable
Expand Down Expand Up @@ -12580,7 +12583,7 @@ public uint ParametersCount

public unsafe partial class TypeAliasTemplate : global::CppSharp.Parser.AST.Template, IDisposable
{
[StructLayout(LayoutKind.Sequential, Size = 192)]
[StructLayout(LayoutKind.Sequential, Size = 196)]
public new partial struct __Internal
{
internal global::CppSharp.Parser.AST.DeclarationKind kind;
Expand All @@ -12607,6 +12610,7 @@ public unsafe partial class TypeAliasTemplate : global::CppSharp.Parser.AST.Temp
internal __IntPtr comment;
internal __IntPtr TemplatedDecl;
internal global::Std.Vector.__Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_S_allocator__S0_ Parameters;
internal __IntPtr CanonicalDecl;

[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "??0TypeAliasTemplate@AST@CppParser@CppSharp@@QAE@XZ", CallingConvention = __CallingConvention.ThisCall)]
internal static extern __IntPtr ctor(__IntPtr __instance);
Expand Down Expand Up @@ -12696,6 +12700,20 @@ internal protected override void Dispose(bool disposing, bool callNativeDtor)
Marshal.FreeHGlobal(__Instance);
__Instance = IntPtr.Zero;
}

public global::CppSharp.Parser.AST.Declaration CanonicalDecl
{
get
{
var __result0 = global::CppSharp.Parser.AST.Declaration.__GetOrCreateInstance(((__Internal*)__Instance)->CanonicalDecl, false);
return __result0;
}

set
{
((__Internal*)__Instance)->CanonicalDecl = value is null ? __IntPtr.Zero : value.__Instance;
}
}
}

public unsafe partial class TemplateParameter : global::CppSharp.Parser.AST.Declaration, IDisposable
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,10 @@ public enum ArchType
{
UnknownArch = 0,
X86 = 1,
X86_64 = 2
X86_64 = 2,
Aarch64 = 3,
Aarch64Be = 4,
Aarch64_32 = 5
}

public unsafe partial class NativeLibrary : IDisposable
Expand Down Expand Up @@ -12580,7 +12583,7 @@ public uint ParametersCount

public unsafe partial class TypeAliasTemplate : global::CppSharp.Parser.AST.Template, IDisposable
{
[StructLayout(LayoutKind.Sequential, Size = 168)]
[StructLayout(LayoutKind.Sequential, Size = 172)]
public new partial struct __Internal
{
internal global::CppSharp.Parser.AST.DeclarationKind kind;
Expand All @@ -12607,6 +12610,7 @@ public unsafe partial class TypeAliasTemplate : global::CppSharp.Parser.AST.Temp
internal __IntPtr comment;
internal __IntPtr TemplatedDecl;
internal global::Std.Vector.__Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_S_allocator__S0_ Parameters;
internal __IntPtr CanonicalDecl;

[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "??0TypeAliasTemplate@AST@CppParser@CppSharp@@QAE@XZ", CallingConvention = __CallingConvention.ThisCall)]
internal static extern __IntPtr ctor(__IntPtr __instance);
Expand Down Expand Up @@ -12696,6 +12700,20 @@ internal protected override void Dispose(bool disposing, bool callNativeDtor)
Marshal.FreeHGlobal(__Instance);
__Instance = IntPtr.Zero;
}

public global::CppSharp.Parser.AST.Declaration CanonicalDecl
{
get
{
var __result0 = global::CppSharp.Parser.AST.Declaration.__GetOrCreateInstance(((__Internal*)__Instance)->CanonicalDecl, false);
return __result0;
}

set
{
((__Internal*)__Instance)->CanonicalDecl = value is null ? __IntPtr.Zero : value.__Instance;
}
}
}

public unsafe partial class TemplateParameter : global::CppSharp.Parser.AST.Declaration, IDisposable
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,10 @@ public enum ArchType
{
UnknownArch = 0,
X86 = 1,
X86_64 = 2
X86_64 = 2,
Aarch64 = 3,
Aarch64Be = 4,
Aarch64_32 = 5
}

public unsafe partial class NativeLibrary : IDisposable
Expand Down Expand Up @@ -12579,7 +12582,7 @@ public uint ParametersCount

public unsafe partial class TypeAliasTemplate : global::CppSharp.Parser.AST.Template, IDisposable
{
[StructLayout(LayoutKind.Sequential, Size = 232)]
[StructLayout(LayoutKind.Sequential, Size = 240)]
public new partial struct __Internal
{
internal global::CppSharp.Parser.AST.DeclarationKind kind;
Expand All @@ -12606,6 +12609,7 @@ public unsafe partial class TypeAliasTemplate : global::CppSharp.Parser.AST.Temp
internal __IntPtr comment;
internal __IntPtr TemplatedDecl;
internal global::Std.Vector.__Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_N___1_S_allocator__S0_ Parameters;
internal __IntPtr CanonicalDecl;

[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST17TypeAliasTemplateC2Ev", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void ctor(__IntPtr __instance);
Expand Down Expand Up @@ -12695,6 +12699,20 @@ internal protected override void Dispose(bool disposing, bool callNativeDtor)
Marshal.FreeHGlobal(__Instance);
__Instance = IntPtr.Zero;
}

public global::CppSharp.Parser.AST.Declaration CanonicalDecl
{
get
{
var __result0 = global::CppSharp.Parser.AST.Declaration.__GetOrCreateInstance(((__Internal*)__Instance)->CanonicalDecl, false);
return __result0;
}

set
{
((__Internal*)__Instance)->CanonicalDecl = value is null ? __IntPtr.Zero : value.__Instance;
}
}
}

public unsafe partial class TemplateParameter : global::CppSharp.Parser.AST.Declaration, IDisposable
Expand Down Expand Up @@ -15792,7 +15810,7 @@ public partial struct __Internal
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST10ASTContextD2Ev", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void dtor(__IntPtr __instance);

[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST10ASTContext18FindOrCreateModuleENSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEE", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST10ASTContext18FindOrCreateModuleERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEE", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr FindOrCreateModule(__IntPtr __instance, __IntPtr File);

[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST10ASTContext19getTranslationUnitsEj", CallingConvention = __CallingConvention.Cdecl)]
Expand Down Expand Up @@ -15916,7 +15934,7 @@ internal protected virtual void Dispose(bool disposing, bool callNativeDtor)
global::Std.BasicStringExtensions.Assign(__basicString0, File);
var __arg0 = __basicString0.__Instance;
var ___ret = __Internal.FindOrCreateModule(__Instance, __arg0);
__basicString0.Dispose(disposing: true, callNativeDtor:false);
__basicString0.Dispose();
var __result0 = global::CppSharp.Parser.AST.TranslationUnit.__GetOrCreateInstance(___ret, false);
return __result0;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,10 @@ public enum ArchType
{
UnknownArch = 0,
X86 = 1,
X86_64 = 2
X86_64 = 2,
Aarch64 = 3,
Aarch64Be = 4,
Aarch64_32 = 5
}

public unsafe partial class NativeLibrary : IDisposable
Expand Down Expand Up @@ -12579,7 +12582,7 @@ public uint ParametersCount

public unsafe partial class TypeAliasTemplate : global::CppSharp.Parser.AST.Template, IDisposable
{
[StructLayout(LayoutKind.Sequential, Size = 256)]
[StructLayout(LayoutKind.Sequential, Size = 264)]
public new partial struct __Internal
{
internal global::CppSharp.Parser.AST.DeclarationKind kind;
Expand All @@ -12606,6 +12609,7 @@ public unsafe partial class TypeAliasTemplate : global::CppSharp.Parser.AST.Temp
internal __IntPtr comment;
internal __IntPtr TemplatedDecl;
internal global::Std.Vector.__Internal Parameters;
internal __IntPtr CanonicalDecl;

[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST17TypeAliasTemplateC2Ev", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void ctor(__IntPtr __instance);
Expand Down Expand Up @@ -12695,6 +12699,20 @@ internal protected override void Dispose(bool disposing, bool callNativeDtor)
Marshal.FreeHGlobal(__Instance);
__Instance = IntPtr.Zero;
}

public global::CppSharp.Parser.AST.Declaration CanonicalDecl
{
get
{
var __result0 = global::CppSharp.Parser.AST.Declaration.__GetOrCreateInstance(((__Internal*)__Instance)->CanonicalDecl, false);
return __result0;
}

set
{
((__Internal*)__Instance)->CanonicalDecl = value is null ? __IntPtr.Zero : value.__Instance;
}
}
}

public unsafe partial class TemplateParameter : global::CppSharp.Parser.AST.Declaration, IDisposable
Expand Down Expand Up @@ -15792,7 +15810,7 @@ public partial struct __Internal
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST10ASTContextD2Ev", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void dtor(__IntPtr __instance);

[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST10ASTContext18FindOrCreateModuleENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST10ASTContext18FindOrCreateModuleERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr FindOrCreateModule(__IntPtr __instance, __IntPtr File);

[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser3AST10ASTContext19getTranslationUnitsEj", CallingConvention = __CallingConvention.Cdecl)]
Expand Down Expand Up @@ -15916,7 +15934,7 @@ internal protected virtual void Dispose(bool disposing, bool callNativeDtor)
global::Std.BasicStringExtensions.Assign(__basicString0, File);
var __arg0 = __basicString0.__Instance;
var ___ret = __Internal.FindOrCreateModule(__Instance, __arg0);
__basicString0.Dispose(disposing: true, callNativeDtor:false);
__basicString0.Dispose();
var __result0 = global::CppSharp.Parser.AST.TranslationUnit.__GetOrCreateInstance(___ret, false);
return __result0;
}
Expand Down
Loading