non_ constant_ type_ argument
Detalhes sobre o diagnóstico 'non_constant_type_argument' produzido pelo analisador do Dart.
The type arguments to '{0}' must be known at compile time, so they can't be type parameters.
Descrição
#O analisador emite este diagnóstico quando os argumentos de tipo de um método precisam ser conhecidos em tempo de compilação, mas um parâmetro de tipo, cujo valor não pode ser conhecido em tempo de compilação, é usado como argumento de tipo.
Para mais informações sobre FFI, consulte interoperabilidade com C usando dart:ffi.
Exemplo
#
O código a seguir gera este diagnóstico porque o argumento de tipo de
Pointer.asFunction precisa ser conhecido em tempo de compilação, mas o
parâmetro de tipo R, que não é conhecido em tempo de compilação, está sendo
usado como argumento de tipo:
import 'dart:ffi';
typedef T = int Function(int);
class C<R extends T> {
void m(Pointer<NativeFunction<T>> p) {
p.asFunction<R>();
}
}
Correções comuns
#Remova todos os usos de parâmetros de tipo:
import 'dart:ffi';
class C {
void m(Pointer<NativeFunction<Int64 Function(Int64)>> p) {
p.asFunction<int Function(int)>();
}
}
Salvo indicação em contrário, a documentação neste site reflete Dart 3.13.7. Relatar um problema.
Encontrou essa página sem tradução ou que precisa de correção? Abra uma issue e nos ajude a manter esse site em PT-BR para ajudar pessoas como você.