Lint Rules

noUnreachable (since v0.7.0)

This rule is recommended by Rome.

Disallow unreachable code

Examples

Invalid

function example() {
    return;
    neverCalled();
}
correctness/noUnreachable.js:3:5 lint/correctness/noUnreachable ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

   This code will never be reached ...
  
    1 │ function example() {
    2 │     return;
  > 3 │     neverCalled();
       ^^^^^^^^^^^^^^
    4 │ }
    5 │ 
  
   ... because this statement will return from the function beforehand
  
    1 │ function example() {
  > 2 │     return;
       ^^^^^^^
    3 │     neverCalled();
    4 │ }
  
function example() {
    for(let i = 0; i < 10; ++i) {
        break;
    }
}
correctness/noUnreachable.js:2:28 lint/correctness/noUnreachable ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

   This code will never be reached ...
  
    1 │ function example() {
  > 2 │     for(let i = 0; i < 10; ++i) {
                              ^^^
    3 │         break;
    4 │     }
  
   ... because this statement will break the flow of the code beforehand
  
    1 │ function example() {
    2 │     for(let i = 0; i < 10; ++i) {
  > 3 │         break;
           ^^^^^^
    4 │     }
    5 │ }
  
function example() {
    for(const key in value) {
        continue;
        neverCalled();
    }
}
correctness/noUnreachable.js:4:9 lint/correctness/noUnreachable ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

   This code will never be reached ...
  
    2 │     for(const key in value) {
    3 │         continue;
  > 4 │         neverCalled();
           ^^^^^^^^^^^^^^
    5 │     }
    6 │ }
  
   ... because this statement will continue the loop beforehand
  
    1 │ function example() {
    2 │     for(const key in value) {
  > 3 │         continue;
           ^^^^^^^^^
    4 │         neverCalled();
    5 │     }