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.

GD0301: аргумент загального типу має бути типом, сумісним з варіантом

Ідентифікатор правила

GD0301

Категорія

Використання

Виправлення ламається або не ламається

ломка

Увімкнено за замовчуванням

Да

Причина

Непідтримуваний тип вказано для аргументу загального типу, коли очікується Variant-compatible type.

Опис правила

Якщо параметр загального типу анотовано атрибутом [MustBeVariant], загальний тип має бути типом, сумісним з варіантом. Наприклад, загальний тип 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>();

Як усунути порушення

Щоб виправити порушення цього правила, змініть аргумент загального типу на тип, сумісний із варіантом, або використовуйте інший API, який не потребує, щоб аргумент загального типу був типом, сумісним із варіантом.

Коли придушувати попередження

Не приховуйте попередження з цього правила. API, який містить аргументи загального типу, анотовані атрибутом [MustBeVariant], зазвичай має цю вимогу, оскільки значення будуть передані механізму, якщо тип не можна маршалювати, це призведе до помилок виконання.