diff --git a/crates/red_knot_python_semantic/resources/mdtest/shadowing/function.md b/crates/red_knot_python_semantic/resources/mdtest/shadowing/function.md index d7cf209f54..591249dde7 100644 --- a/crates/red_knot_python_semantic/resources/mdtest/shadowing/function.md +++ b/crates/red_knot_python_semantic/resources/mdtest/shadowing/function.md @@ -25,3 +25,29 @@ def f(): ... f: int = 1 ``` + +## Explicit shadowing involving `def` statements + +Since a `def` statement is a declaration, one `def` can shadow another `def`, or shadow a previous +non-`def` declaration, without error. + +```py +f = 1 +reveal_type(f) # revealed: Literal[1] + +def f(): ... + +reveal_type(f) # revealed: Literal[f] + +def f(x: int) -> int: + raise NotImplementedError + +reveal_type(f) # revealed: Literal[f] + +f: int = 1 +reveal_type(f) # revealed: Literal[1] + +def f(): ... + +reveal_type(f) # revealed: Literal[f] +```