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.


User-contributed notes

Please read the User-contributed notes policy before submitting a comment.