You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-07 12:30:27 +00:00
C#: Fix unhandled GD0303 error for nested generic attribute types
This commit is contained in:
@@ -395,6 +395,11 @@ public class MustBeVariantAnnotatedMethods
|
||||
public void MethodWithWrongAttribute()
|
||||
{
|
||||
}
|
||||
|
||||
[NestedGenericTypeAttributeContainer.NestedGenericTypeAttribute<bool>()]
|
||||
public void MethodWithNestedAttribute()
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
[GenericTypeAttribute<bool>()]
|
||||
@@ -657,3 +662,11 @@ public class ClassNonVariantAnnotated
|
||||
public class GenericTypeAttribute<[MustBeVariant] T> : Attribute
|
||||
{
|
||||
}
|
||||
|
||||
public class NestedGenericTypeAttributeContainer
|
||||
{
|
||||
[AttributeUsage(AttributeTargets.Method, AllowMultiple = true)]
|
||||
public class NestedGenericTypeAttribute<[MustBeVariant] T> : Attribute
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
@@ -135,7 +135,7 @@ namespace Godot.SourceGenerators
|
||||
{
|
||||
ITypeParameterSymbol? typeParamSymbol = parentSymbol switch
|
||||
{
|
||||
IMethodSymbol methodSymbol when parentSyntax.Parent is AttributeSyntax &&
|
||||
IMethodSymbol methodSymbol when parentSyntax.Ancestors().Any(s => s is AttributeSyntax) &&
|
||||
methodSymbol.ContainingType.TypeParameters.Length > 0
|
||||
=> methodSymbol.ContainingType.TypeParameters[typeArgumentIndex],
|
||||
|
||||
|
||||
Reference in New Issue
Block a user