Pular para o conteúdo principal

sdk_version_ui_as_code

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

The for, if, and spread elements weren't supported until version 2.3.0, but this code is required to be able to run on earlier versions.

Descrição

#

O analisador produz este diagnóstico quando um elemento for, if ou de spread é encontrado em código que tem uma restrição de SDK cujo limite inferior é menor que 2.3.0. Usar um elemento for, if ou de spread não era suportado em versões anteriores, então esse código não vai conseguir rodar em 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.3.0:

yaml
environment:
  sdk: '>=2.2.0 <2.4.0'

No pacote que tem esse pubspec, código como o seguinte produz este diagnóstico:

dart
var digits = [for (int i = 0; i < 10; i++) i];

Correções comuns

#

Se você não precisa oferecer suporte a versões antigas do SDK, então pode aumentar a restrição de SDK para permitir o uso da sintaxe:

yaml
environment:
  sdk: '>=2.3.0 <2.4.0'

Se você precisa oferecer suporte a versões antigas do SDK, então reescreva o código para não usar esses elementos:

dart
var digits = _initializeDigits();
​
List<int> _initializeDigits() {
  var digits = <int>[];
  for (int i = 0; i < 10; i++) {
    digits.add(i);
  }
  return digits;
}

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