label_ in_ outer_ scope
Detalhes sobre o diagnóstico 'label_in_outer_scope' produzido pelo analisador do Dart.
Can't reference label '{0}' declared in an outer method.
Descrição
#
O analisador gera este diagnóstico quando uma instrução break ou continue referencia um rótulo declarado em um método ou função que contém a função onde a instrução
break ou continue aparece. As instruções break e continue
não podem ser usadas para transferir o controle para fora da função que as contém.
Exemplo
#
O código a seguir gera este diagnóstico porque o rótulo loop é declarado fora da função local
g:
void f() {
loop:
while (true) {
void g() {
break loop;
}
g();
}
}
Correções comuns
#Tente reescrever o código para que não seja necessário transferir o controle para fora da função local, possivelmente incorporando a função local no código (inlining):
void f() {
loop:
while (true) {
break loop;
}
}
Se isso não for possível, tente reescrever a função local para que um valor retornado por ela possa determinar se o controle será transferido:
void f() {
loop:
while (true) {
bool g() {
return true;
}
if (g()) {
break loop;
}
}
}
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ê.