Give useful message if can't infer TypeVar-based type for attribute #3651
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.
Require a type annotation if the inferred attribute type includes a
type variable with values.
Fix #2697 by giving a better error message. Fixing type inference
would be much more complicated. This partial fix should be fine as the
issue seems to arise pretty rarely.
Mypy processes methods of a generic class that has a type variable
with values by type checking the methods multiple times, once for each
type variable value. This implementation detects if different type
checking passes infer a different type for an attribute.
The extra data structure for storing inferred attibute types helps
with with fine-grained incremental checking.