address_ position
Detalhes sobre o diagnóstico 'address_position' produzido pelo analisador do Dart.
The '.address' expression can only be used as argument to a leaf native external call.
Descrição
#
O analisador emite este diagnóstico quando o getter .address é usado
em um contexto diferente de um argumento de uma chamada externa nativa
marcada como chamada leaf (isLeaf: true).
Exemplo
#
O código a seguir produz este diagnóstico porque .address é usado
incorretamente:
import 'dart:ffi';
import 'dart:typed_data';
@Native<Void Function(Pointer<Uint8>)>()
external void nonLeafCall(Pointer<Uint8> ptr);
void main() {
final data = Uint8List(10);
// Incorrect: Using '.address' as an argument to a non-leaf call.
nonLeafCall(data.address);
}
Correções comuns
#
Garanta que a expressão .address seja usada diretamente como argumento
de uma chamada externa nativa anotada com @Native(...) e com
isLeaf: true definido na anotação.
import 'dart:ffi';
import 'dart:typed_data';
@Native<Void Function(Pointer<Uint8>)>(isLeaf: true)
external void leafCall(Pointer<Uint8> ptr);
void main() {
final data = Uint8List(10);
// Correct: Using .address directly as an argument to a leaf call.
leafCall(data.address);
}
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ê.