abi_ specific_ integer_ invalid
Detalhes sobre o diagnóstico 'abi_specific_integer_invalid' produzido pelo analisador do Dart.
Classes extending 'AbiSpecificInteger' must have exactly one const constructor, no other members, and no type parameters.
Descrição
#
O analisador emite este diagnóstico quando uma classe que estende
AbiSpecificInteger não atende a todos os requisitos a seguir:
- deve haver exatamente um construtor
- o construtor deve ser marcado com
const - não pode haver membros além desse único construtor
- não pode haver parâmetros de tipo
Exemplos
#
O código a seguir produz este diagnóstico porque a classe C não
define um construtor const:
import 'dart:ffi';
@AbiSpecificIntegerMapping({Abi.macosX64: Int8()})
final class C extends AbiSpecificInteger {}
O código a seguir produz este diagnóstico porque o construtor não é
um construtor const:
import 'dart:ffi';
@AbiSpecificIntegerMapping({Abi.macosX64: Int8()})
final class C extends AbiSpecificInteger {
C();
}
O código a seguir produz este diagnóstico porque a classe C define
vários construtores:
import 'dart:ffi';
@AbiSpecificIntegerMapping({Abi.macosX64: Int8()})
final class C extends AbiSpecificInteger {
const C.zero();
const C.one();
}
O código a seguir produz este diagnóstico porque a classe C define
um campo:
import 'dart:ffi';
@AbiSpecificIntegerMapping({Abi.macosX64: Int8()})
final class C extends AbiSpecificInteger {
final int i;
const C(this.i);
}
O código a seguir produz este diagnóstico porque a classe C tem um
parâmetro de tipo:
import 'dart:ffi';
@AbiSpecificIntegerMapping({Abi.macosX64: Int8()})
// type parameters
final class C<T> extends AbiSpecificInteger {
const C();
}
Correções comuns
#
Altere a classe para que ela atenda aos requisitos de não ter
parâmetros de tipo e de ter um único membro, que é um construtor const:
import 'dart:ffi';
@AbiSpecificIntegerMapping({Abi.macosX64: Int8()})
final class C extends AbiSpecificInteger {
const C();
}
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ê.