@@ -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 @@
+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