Pular para o conteúdo principal

subtype_of_struct_class

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

The class '{0}' can't extend '{1}' because '{1}' is a subtype of 'Struct', 'Union', or 'AbiSpecificInteger'.

The class '{0}' can't implement '{1}' because '{1}' is a subtype of 'Struct', 'Union', or 'AbiSpecificInteger'.

The class '{0}' can't mix in '{1}' because '{1}' is a subtype of 'Struct', 'Union', or 'AbiSpecificInteger'.

Descrição

#

O analisador produz este diagnóstico quando uma classe estende, implementa ou mistura uma classe que estende Struct ou Union. Classes só podem estender Struct ou Union diretamente.

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

Exemplo

#

O código a seguir produz este diagnóstico porque a classe C estende S, e S estende Struct:

dart
import 'dart:ffi';
​
final class S extends Struct {
  external Pointer f;
}
​
final class C extends S {
  external Pointer g;
}

Correções comuns

#

Se você está tentando definir um struct ou union que compartilha alguns campos declarados por outro struct ou union, então estenda diretamente Struct ou Union e copie os campos compartilhados:

dart
import 'dart:ffi';
​
final class S extends Struct {
  external Pointer f;
}
​
final class C extends Struct {
  external Pointer f;
​
  external Pointer g;
}

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