Skip to content

Unreachable code should be detected by default without --warn-unreachable flag #20264

@hyperkai

Description

@hyperkai

With --warn-unreachable flag, unreachable code can be detected as shown below:

def func() -> int:
    return 100
    print('Unreachable')
# error: Statement is unreachable

But without --warn-unreachable flag, unreachable code cannot be detected as shown below so unreachable code should be detected by default without --warn-unreachable flag:

def func() -> int:
    return 100
    print('Unreachable')
# No error

Actually, Java detects unreachable code by default as shown below:

class Main {
    public static void main(String[] args) {
        System.out.println(func());
    }
    
    public static int func() {
        return 100;
        System.out.println("Unreachable"); // error: unreachable statement
    }
}

And, Go also detects unreachable code by default as shown below:

package main

import "fmt"

func main() {
	fmt.Println(myfunc())
}

func myfunc() int {
	return 100
	fmt.Println("Unreachable") // missing return
}

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions