Bug Fix: Fixed bug in argument-matching code that produced false positive errors when a keyword argument corresponded to a positional-only argument name but should have been matched to a **kwargs parameter instead.
Bug Fix: Fixed bug in bidirectional type inference logic for list and dict expressions when expected type included a type varaible.
Bug Fix: Disabled the "self" annotation checks for overloaded methods because the self annotation can be used as a legitimate filter for overloads.
Enhancement: Improved bidirectional type inference for set expressions so it better handles unions in expected type.
Bug Fix: Improved TypeVar constraint solver so it provides a better solution when a TypeVar is constrained first by a contravariant wide bound in a first argument and then a subsequent argument relies on bidirectional type inference with a covariant or invariant use of the same TypeVar.
Bug Fix: Fixed bug that caused a crash in the type checker when a protocol class inherited from a generic non-protocol class.
Enhancement: Added check for a class that inherits from Generic to ensure that all type variables are included in the Generic subscript list.
Bug Fix: Fixed regression in handling expressions of the form [x] * y
. Some previously-added special-case code to handle the [None] * n
case was too general.
Enhancement: Changed printed types to fully expand type aliases in error messages where that additional detail is needed — namely, for "partially unknown" messages. This makes for verbose types, but without the expansion, it can be very difficult to determine which part of the type is unknown.
Bug Fix: Fixed false positive error in type compatibility check where the destination type is Type[Any]
and the source type is Type[x]
where x is anything (including Any
).
Enhancement: Added exemption to the overlapping overload check for the __get__
method. Other type checkers (namely mypy) exempt this method also.