must_ be_ a_ native_ function_ type
Detalhes sobre o diagnóstico 'must_be_a_native_function_type' produzido pelo analisador do Dart.
The type '{0}' given to '{1}' must be a valid 'dart:ffi' native function type.
Descrição
#
O analisador emite este diagnóstico quando uma invocação de Pointer.fromFunction,
DynamicLibrary.lookupFunction ou de um construtor de NativeCallable
tem um
argumento de tipo (explícito ou inferido) que não é um tipo de função nativo.
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 tipo T pode ser qualquer
subclasse de Function, mas o argumento de tipo de fromFunction
precisa ser
um tipo de função nativo:
import 'dart:ffi';
int f(int i) => i * 2;
class C<T extends Function> {
void g() {
Pointer.fromFunction<T>(f, 0);
}
}
Correções comuns
#Use um tipo de função nativo como argumento de tipo da invocação:
import 'dart:ffi';
int f(int i) => i * 2;
class C<T extends Function> {
void g() {
Pointer.fromFunction<Int32 Function(Int32)>(f, 0);
}
}
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ê.