mypy
mypy copied to clipboard
no error when method in metaclass is overridden by an incompatible method in its instance
class Foo(type):
def foo(cls) -> None: ...
class Bar(Foo):
def asdf(cls) -> None:
cls.foo()
class Baz(metaclass=Bar):
# no error.
# at runtime it raises TypeError: Baz.foo() missing 2 required positional arguments: 'self' and 'asdf'
def foo(self, asdf: int) -> None: ...
Baz.asdf()