argument_ must_ be_ a_ constant
Detalhes sobre o diagnóstico 'argument_must_be_a_constant' produzido pelo analisador do Dart.
Argument '{0}' must be a constant.
Descrição
#
O analisador emite este diagnóstico quando uma invocação de Pointer.asFunction
ou de DynamicLibrary.lookupFunction tem um argumento isLeaf
cujo valor não
é uma expressão constante.
O analisador também emite este diagnóstico quando uma invocação de
Pointer.fromFunction ou de NativeCallable.isolateLocal tem um argumento
exceptionalReturn cujo valor não é uma expressão constante.
Para mais informações sobre FFI, consulte Interoperabilidade com C usando dart:ffi.
Exemplo
#
O código a seguir produz este diagnóstico porque o valor do argumento
isLeaf é um parâmetro e, portanto, não é uma constante:
import 'dart:ffi';
int Function(int) fromPointer(
Pointer<NativeFunction<Int8 Function(Int8)>> p,
bool isLeaf,
) {
return p.asFunction(isLeaf: isLeaf);
}
Correções comuns
#Se houver uma constante adequada que possa ser usada, substitua o argumento por uma constante:
import 'dart:ffi';
const isLeaf = false;
int Function(int) fromPointer(Pointer<NativeFunction<Int8 Function(Int8)>> p) {
return p.asFunction(isLeaf: isLeaf);
}
Se não houver uma constante adequada, substitua o argumento por um literal booleano:
import 'dart:ffi';
int Function(int) fromPointer(Pointer<NativeFunction<Int8 Function(Int8)>> p) {
return p.asFunction(isLeaf: true);
}
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ê.