Summary
Consider this snippet:
from typing import final, override
def coinflip() -> bool:
return False
class A:
@final
def method(self) -> None: ...
if coinflip():
@override
def wut(self) -> None: ...
else:
@override
def wut(self) -> None: ...
class B(A):
if coinflip():
def method(self) -> None: ...
else:
def method(self) -> None: ...
We should emit diagnostics on the definitions of A.wut and B.method, but we currently do not:
A.wut is marked with @override but doesn't override anything
B.method overrides a method decorated with @final
Version
No response