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 Godot.
Checking the stable version of the documentation...
GD0301: Аргумент универсального типа должен быть типом, совместимым с вариантом
Идентификатор правила |
GD0301 |
Категория |
Использование |
Исправление может быть как ломающим, так и не ломающим |
Breaking (Прерывание) |
Включено по умолчанию |
Да |
Причина
Для аргумента универсального типа указан неподдерживаемый тип, хотя ожидается :Variant-compatible type.
Описание правила
Если параметр универсального типа аннотирован атрибутом [MustBeVariant], универсальный тип должен быть совместимым с Variant. Например, универсальный тип Godot.Collections.Array<T> поддерживает только элементы типа, который можно преобразовать в Variant.
class SomeType { }
// SomeType is not a valid type because it doesn't derive from GodotObject,
// so it's not compatible with Variant.
var invalidArray = new Godot.Collections.Array<SomeType>();
// System.Int32 is a valid type because it's compatible with Variant.
var validArray = new Godot.Collections.Array<int>();
Как устранить нарушения
Чтобы устранить нарушение этого правила, измените аргумент универсального типа на тип, совместимый с Variant, или используйте другой API, который не требует, чтобы аргумент универсального типа был типом, совместимым с Variant.
Когда следует подавлять предупреждения
Не подавляйте предупреждение из этого правила. API, содержащие аргументы универсального типа, аннотированные атрибутом [MustBeVariant], обычно предъявляет это требование, поскольку значения будут переданы движку. Если тип не может быть преобразован, это приведет к ошибкам во время выполнения.