Pular para o conteúdo principal

variable_length_array_not_last

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

Variable length 'Array's must only occur as the last field of Structs.

Descrição

#

O analisador gera este diagnóstico quando um Array inline de tamanho variável não é o último membro de um Struct.

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

Exemplo

#

O código a seguir gera este diagnóstico porque o campo a0 tem um tipo com três arrays aninhados, mas apenas duas dimensões são informadas na anotação Array:

dart
import 'dart:ffi';
​
final class C extends Struct {
  @Array.variable()
  external Array<Uint8> a0;
​
  @Uint8()
  external int a1;
}

Correções comuns

#

Mova o Array inline de tamanho variável para ser o último campo do struct.

dart
import 'dart:ffi';
​
final class C extends Struct {
  @Uint8()
  external int a1;
​
  @Array.variable()
  external Array<Uint8> a0;
}

Se o array inline tem tamanho fixo, anote-o com o tamanho:

dart
import 'dart:ffi';
​
final class C extends Struct {
  @Array(10)
  external Array<Uint8> a0;
​
  @Uint8()
  external int a1;
}

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