Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Redot.

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.