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: O argumento de tipo genérico deve ser um tipo compatível com Variant
ID da Regra |
GD0301 |
Categoria |
Uso |
A correção altera a compatibilidade (breaking) ou não altera (non-breaking) |
Quebra compatibilidade (Breaking) |
Ativado por padrão |
Sim |
Causa
Um tipo não suportado foi especificado para um argumento de tipo genérico quando um tipo compatível com Variant era esperado.
Descrição da regra
Quando um parâmetro de tipo genérico é anotado com o atributo [MustBeVariant], o tipo genérico deve obrigatoriamente ser um tipo compatível com Variant. Por exemplo, o tipo genérico Godot.Collections.Array<T> suporta apenas itens de um tipo que possa ser convertido para 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>();
Como corrigir violações
Para corrigir uma violação desta regra, altere o argumento de tipo genérico para ser um tipo compatível com Variant ou use uma API diferente que não exija que o argumento de tipo genérico seja um tipo compatível com Variant.
Quando suprimir avisos
Não suprima um aviso desta regra. APIs que contêm argumentos de tipo genérico anotados com o atributo [MustBeVariant] geralmente possuem essa exigência porque os valores serão passados para o motor; se o tipo não puder passar por marshalling, isso resultará em erros em tempo de execução.