Pular para o conteúdo principal

native_field_missing_type

Detalhes sobre o diagnóstico 'native_field_missing_type' produzido pelo analisador do Dart.

The native type of this field could not be inferred and must be specified in the annotation.

Descrição

#

O analisador emite este diagnóstico quando um campo anotado com @Native exige uma dica de tipo na anotação para inferir o tipo nativo.

Tipos Dart como int e double têm várias representações nativas possíveis. Como o tipo nativo precisa ser conhecido em tempo de compilação para gerar as operações corretas de leitura e escrita ao acessar o campo, um tipo explícito deve ser informado.

Exemplo

#

O código a seguir gera este diagnóstico porque o campo f tem o tipo int (para o qual existem várias representações nativas), mas não há um parâmetro de tipo explícito na anotação Native:

dart
import 'dart:ffi';
​
@Native()
external int f;

Correções comuns

#

Para corrigir este diagnóstico, descubra a representação nativa correta a partir da declaração nativa do campo. Depois, adicione o tipo correspondente à anotação. Por exemplo, se f foi declarado como uint8_t em C, o campo Dart deve ser declarado assim:

dart
import 'dart:ffi';
​
@Native<Uint8>()
external int f;

Para mais informações sobre FFI, consulte interoperabilidade com C usando dart:ffi.

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ê.