mirror of
https://github.com/godotengine/godot.git
synced 2025-12-08 06:09:55 +00:00
Fix nested GodotObject class in generic class lead to source generator errors in C#
This commit is contained in:
parent
9e6ee9c5c3
commit
6a56ed8926
5 changed files with 42 additions and 2 deletions
|
|
@ -0,0 +1,15 @@
|
|||
using Xunit;
|
||||
|
||||
namespace Godot.SourceGenerators.Tests;
|
||||
|
||||
public class NestedInGenericTest
|
||||
{
|
||||
[Fact]
|
||||
public async void GenerateScriptMethodsTest()
|
||||
{
|
||||
await CSharpSourceGeneratorVerifier<ScriptMethodsGenerator>.Verify(
|
||||
"NestedInGeneric.cs",
|
||||
"GenericClass(Of T).NestedClass_ScriptMethods.generated.cs"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
using Godot;
|
||||
using Godot.NativeInterop;
|
||||
|
||||
partial class GenericClass<T>
|
||||
{
|
||||
partial class NestedClass
|
||||
{
|
||||
#pragma warning disable CS0109 // Disable warning about redundant 'new' keyword
|
||||
/// <summary>
|
||||
/// Cached StringNames for the methods contained in this class, for fast lookup.
|
||||
/// </summary>
|
||||
public new class MethodName : global::Godot.GodotObject.MethodName {
|
||||
}
|
||||
#pragma warning restore CS0109
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
using Godot;
|
||||
|
||||
public partial class GenericClass<T>
|
||||
{
|
||||
public partial class NestedClass : GodotObject
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -183,7 +183,7 @@ namespace Godot.SourceGenerators
|
|||
|
||||
public static string NameWithTypeParameters(this INamedTypeSymbol symbol)
|
||||
{
|
||||
return symbol.IsGenericType ?
|
||||
return symbol.IsGenericType && symbol.TypeParameters.Length > 0 ?
|
||||
string.Concat(symbol.Name, "<", string.Join(", ", symbol.TypeParameters), ">") :
|
||||
symbol.Name;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@ internal static class ExtensionMethods
|
|||
|
||||
public static string NameWithTypeParameters(this INamedTypeSymbol symbol)
|
||||
{
|
||||
return symbol.IsGenericType ?
|
||||
return symbol.IsGenericType && symbol.TypeParameters.Length > 0 ?
|
||||
string.Concat(symbol.Name, "<", string.Join(", ", symbol.TypeParameters), ">") :
|
||||
symbol.Name;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue