Interacciones y diagnósticos
Los calificadores no son intercambiables con decoradores ni con metadatos de firma:
values: const int32[2] = {1, 2}
values[0] = 3 # error: array constante
func inspect(data: unique int32[]) void:
return # error: falta Len_t, Size_t y Region_t
@unsafe
func read(data: int32[]) void:
return # error: @unsafe no omite expansión de arrays
Errores frecuentes:
constdelante dechain,Len_t,Size_t,Signed_toRegion_t;uniqueen un escalar, puntero crudo o tipo que no es array/buffer;volatileescrito como@volatile;inlineescrito como@inline;staticen una función global o en un método mágico;public/privateusados como si fueran decoradores@public/@private.
@unsafe, @frozen, @packed, @align(N) y @order_msb pertenecen al
sistema de decoradores y tienen sus propias posiciones. Consulta
Decoradores para sus contratos y combinaciones.
Del mismo modo, Len_t, Size_t, Signed_t y Region_t son parámetros
expansivos: se declaran en una firma, pero el llamador no los proporciona
manualmente. Consulta Datos expansivos
para su orden y asociación.