Pular para o conteúdo principal

invalid_field_type_in_struct

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

Fields in struct classes can't have the type '{0}'. They can only be declared as 'int', 'double', 'Array', 'Pointer', or subtype of 'Struct' or 'Union'.

Descrição

#

O analisador produz este diagnóstico quando um campo de uma subclasse de Struct tem um tipo diferente de int, double, Array, Pointer ou de um subtipo de Struct ou Union.

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

Exemplo

#

O código a seguir produz este diagnóstico porque o campo s tem o tipo String, que não é um dos tipos permitidos para campos em uma subclasse de Struct:

dart
import 'dart:ffi';
​
final class C extends Struct {
  external String s;
​
  @Int32()
  external int i;
}

Correções comuns

#

Use um dos tipos permitidos para o campo:

dart
import 'dart:ffi';
​
import 'package:ffi/ffi.dart';
​
final class C extends Struct {
  external Pointer<Utf8> s;
​
  @Int32()
  external int i;
}

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