Outdated documentation
This documentation page refers to Godot
4.3,
and may be outdated or incorrect.
Additionally, this engine version is
no longer supported.
Check this page in the stable branch for the latest additions and corrections.
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 Godot 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.