Pular para o conteúdo principal

export_legacy_symbol

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

The symbol '{0}' is defined in a legacy library, and can't be re-exported from a library with null safety enabled.

Descrição

#

O analisador emite este diagnóstico quando uma biblioteca que aderiu ao null safety exporta outra biblioteca, e a biblioteca exportada não aderiu ao null safety.

Exemplo

#

Dada uma biblioteca que não aderiu ao null safety:

dart
// @dart = 2.8
String s;

O código a seguir gera este diagnóstico porque está exportando símbolos de uma biblioteca que não aderiu ao null safety:

dart
export 'optedOut.dart';
​
class C {}

Correções comuns

#

Se você puder fazê-lo, migre a biblioteca exportada para que ela não precise ficar de fora do null safety:

dart
String? s;

Se você não puder migrar a biblioteca, então remova o export:

dart
class C {}

Se a biblioteca exportada (a que não aderiu ao null safety) exporta, por sua vez, uma biblioteca que aderiu, então é válido que a sua biblioteca exporte indiretamente os símbolos da biblioteca que aderiu. Você pode fazer isso adicionando um combinador hide à diretiva de export na sua biblioteca, que oculte todos os nomes declarados na biblioteca que não aderiu.

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