Improved mypy type-checking for generated Python3 files. #4407
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Antlr4's generated code for Python3 target had some misuse of slots. All the base objects were not using slots so derived objects from them didn't correctly enforce slots. slots were added to base objects. Additionally, a number of forward declarations were made as class_name = None, this causes issues with mypy when checking code. Imports and other forward declarations were added to correct this. Furthermore, return types and argument types were added to functions within runtime to contribute to mypy type checking. Emitted code was verified by generating a parser for java8 using python 3.11