mirror of
				https://github.com/astral-sh/ruff.git
				synced 2025-10-31 12:05:57 +00:00 
			
		
		
		
	
		
			
				
	
	
	
	
		
			895 B
		
	
	
	
	
	
	
	
			
		
		
	
	
			895 B
		
	
	
	
	
	
	
	
Function shadowing
Parameter
Parameter x of type str is shadowed and reassigned with a new int value inside the function.
No diagnostics should be generated.
def f(x: str):
    x: int = int(x)
Implicit error
def f(): ...
f = 1  # error: "Implicit shadowing of function `f`"
Explicit shadowing
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.
f = 1
reveal_type(f)  # revealed: Literal[1]
def f(): ...
reveal_type(f)  # revealed: def f() -> Unknown
def f(x: int) -> int:
    raise NotImplementedError
reveal_type(f)  # revealed: def f(x: int) -> int
f: int = 1
reveal_type(f)  # revealed: Literal[1]
def f(): ...
reveal_type(f)  # revealed: def f() -> Unknown
