ruff/crates/ruff_linter/resources/test/fixtures/pylint/unreachable.py
Dylan d401a5440e
Control flow: return and raise (#17121)
We add support for `return` and `raise` statements in the control flow
graph: we simply add an edge to the terminal block, push the statements
to the current block, and proceed.

This implementation will have to be modified somewhat once we add
support for `try` statements - then we will need to check whether to
_defer_ the jump. But for now this will do!

Also in this PR: We fix the `unreachable` diagnostic range so that it
lumps together consecutive unreachable blocks.
2025-04-03 08:30:29 -05:00

30 lines
516 B
Python

def empty_statement_reachable(): ...
def pass_statement_reachable():
pass
def no_control_flow_reachable():
x = 1
x = 2
class C:
a = 2
c = C()
del c
def foo():
return
def after_return():
return 1
print("unreachable")
print("and this")
def after_raise():
raise ValueError
print("unreachable")
print("and this")
def multiple_returns():
return 1
print("unreachable")
return 2
print("unreachable range should include above return")