Pular para o conteúdo principal

top_level_cycle

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

The type of '{0}' can't be inferred because it depends on itself through the cycle: {1}.

Descrição

#

O analisador produz este diagnóstico quando uma variável de nível superior não tem anotação de tipo e o inicializador da variável se refere à própria variável, direta ou indiretamente.

Exemplo

#

O código a seguir produz este diagnóstico porque as variáveis x e y são definidas em termos uma da outra, e nenhuma tem tipo explícito, então o tipo de uma não pode ser inferido a partir da outra:

dart
var x = y;
var y = x;

Correções comuns

#

Se as duas variáveis não precisam se referir uma à outra, então quebre o ciclo:

dart
var x = 0;
var y = x;

Se as duas variáveis precisam se referir uma à outra, então dê a pelo menos uma delas um tipo explícito:

dart
int x = y;
var y = x;

Observe, porém, que, embora este código não produza nenhum diagnóstico, ele causará um estouro de pilha (stack overflow) em tempo de execução, a menos que pelo menos uma das variáveis receba um valor que não dependa das outras variáveis antes de qualquer uma das variáveis no ciclo ser referenciada.

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