sdk_ version_ extension_ methods
Detalhes sobre o diagnóstico 'sdk_version_extension_methods' produzido pelo analisador do Dart.
Extension methods weren't supported until version 2.6.0, but this code is required to be able to run on earlier versions.
Descrição
#O analisador emite este diagnóstico quando uma declaração de extensão ou um override de extensão é encontrado em código que tem uma restrição de SDK cujo limite inferior é menor que 2.6.0. O uso de extensões não era suportado em versões anteriores, então esse código não conseguirá rodar nas versões anteriores do SDK.
Exemplo
#Aqui está um exemplo de um pubspec que define uma restrição de SDK com limite inferior menor que 2.6.0:
environment:
sdk: '>=2.4.0 <2.7.0'
No pacote que tem esse pubspec, um código como o seguinte gera este diagnóstico:
extension E on String {
void sayHello() {
print('Hello $this');
}
}
Correções comuns
#Se você não precisa oferecer suporte a versões mais antigas do SDK, pode aumentar a restrição de SDK para permitir o uso da sintaxe:
environment:
sdk: '>=2.6.0 <2.7.0'
Se você precisa oferecer suporte a versões mais antigas do SDK, reescreva o código para não usar extensões. A forma mais comum de fazer isso é reescrever os membros da extensão como funções de nível superior (ou métodos) que recebem, como parâmetro, o valor que seria vinculado a
this:
void sayHello(String s) {
print('Hello $s');
}
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ê.