mirror of https://github.com/astral-sh/ruff
Test explicit shadowing involving `def`s (#15174)
Co-authored-by: Carl Meyer <carl@astral.sh>
This commit is contained in:
parent
7ea3a549b2
commit
bc3a735d93
|
|
@ -25,3 +25,29 @@ def f(): ...
|
||||||
|
|
||||||
f: int = 1
|
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]
|
||||||
|
```
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue