Attention: Here be dragons (unstable version)
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Redot.
Checking the stable version of the documentation...
GD0402: The class must not be generic
Rule ID |
GD0402 |
Category |
Usage |
Fix is breaking or non-breaking |
Breaking |
Enabled by default |
Yes |
Cause
A generic type is annotated with the [GlobalClass]
attribute.
Rule description
The Redot editor assumes every global class is instantiable, but generic types can't be instantiated because the type parameters are unbound.
// This type is a valid global class because it's not generic.
[GlobalClass]
class SomeType : Node { }
// This type is not a valid global class because it's generic.
[GlobalClass]
class SomeGenericType<T> { }
How to fix violations
To fix a violation of this rule, change the type to remove the generic type parameters
or remove the [GlobalClass]
attribute.
When to suppress warnings
Do not suppress a warning from this rule. Adding the [GlobalClass]
to a
generic type is an easy mistake to make and this warning helps users realize
that it may result in unexpected errors.