-
-
Notifications
You must be signed in to change notification settings - Fork 3k
Open
Labels
featureneeds discussiontopic-developerIssues relevant to mypy developersIssues relevant to mypy developerstopic-finalPEP 591PEP 591
Description
While working on several mypy
plugins I had often step on the fact you cannot subclass any of the mypy
classes, because they are compiled with mypyc
. It caused runtime TypeError
in the plugin's code.
But, when I was trying to run mypy
on the plugin's code - it was fine, no error was shown. Because type are not @final
and mypy
is not able to understand that this is a problem.
So, I propose to add explicit @final
annotations to almost all types, exception:
- Types with
allow_interpreted_subclasses
- Types that are subclassed inside
mypy
itself:Node
,Expression
,TypeQuery
, etc
One more strong point to making this change is that many classes are not "designed" to be subclassed.
So, this should not be a problem.
Metadata
Metadata
Assignees
Labels
featureneeds discussiontopic-developerIssues relevant to mypy developersIssues relevant to mypy developerstopic-finalPEP 591PEP 591