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...
GD0401: The class must derive from Redot.GodotObject or a derived class
Rule ID |
GD0401 |
Category |
Usage |
Fix is breaking or non-breaking |
Breaking - If changing the inheritance chain Non-breaking - If removing the |
Enabled by default |
Yes |
Cause
A type annotated with the [GlobalClass]
attribute does not derive from
GodotObject
.
Rule description
The [GlobalClass]
has no effect for types that don't derive from GodotObject
.
Every global class must ultimately derive from
GodotObject
so it can be marshalled.
// This type is not registered as a global class because it doesn't derive from RedotObject.
[GlobalClass]
class SomeType { }
// This type is a global class because it derives from Redot.Node
// which ultimately derives from RedotObject.
[GlobalClass]
class MyNode : Node { }
// This type is a global class because it derives from Redot.Resource
// which ultimately derives from RedotObject.
[GlobalClass]
class MyResource : Resource { }
How to fix violations
To fix a violation of this rule, change the type to derive from GodotObject
or remove the [GlobalClass]
attribute.
When to suppress warnings
Do not suppress a warning from this rule. Adding the [GlobalClass]
to a type
that doesn't derive from GodotObject
is an easy mistake to make and this
warning helps users realize that it may result in unexpected errors.