Aviso: código inacessível depois de declaração de retorno
Mensagem
Warning: unreachable code after return statement (Firefox)
Tipo de ErroEdit
Aviso
O que correu mal?Edit
Unreachable code after return statement pode ocorrer nas seguintes situações:
- Quando é utilizada uma expressão depois de uma declaração
return
, ou - quando é utilizada uma declaração return sem ponto e vírgula, mas incluindo uma declaração diretamente depois.
Quando existe uma expressão depois de uma declaração return
válida, é dado um aviso para indicar que o código depois da declaração return
é inacessível, o que significa que o mesmo nunca pode ser executado.
Porquê é que eu deveria ter ponto e vírgula depois de declarações return
? No caso de declarações return
sem ponto e vírgula, não é claro se o programador pretendia devolver a declaração na linha seguinte, ou para parar a execução e o retorno. O aviso indica que existe ambiguidade no modo como a declaração return
foi escrita.
Os avisos não serão apresentados para declarações return sem ponto-e-vírgula nas seguintes situações:
Exemplos
Casos inválidos
function f() {
var x = 3;
x += 4;
return x; // retorna a função de imediato
x -= 3; // logo, esta linha não será executada; é inacessivel
}
function f() {
return // é tratado como um `return;`
3 + 4; // logo, a função é retornada, porém esta linha não será alcançada
}
Casos válidos
function f() {
var x = 3;
x += 4;
x -= 3;
return x; // OK: return depois de todas as declarações
}
function f() {
return 3 + 4 // OK: um return sem ponto e vírgula com uma expressão na mesma linha
}