Behavior Change: Exempted __new__
from parameter covariance check. This is consistent with __init__
, which is already exempted from this check.
Bug Fix: Fixed a bug that resulted in a false negative when using an unparenthesized assignment expression in an assert statement. Also improved the error messages and parser recovery for incorrect use of a unparenthesized assignment expressions.
Bug Fix: Fixed a bug that resulted in a false positive when analyzing a call to an instance method that omits a self
parameter and instead uses *args
.
Enhancement: Improved error reporting for dict literal expressions that are assigned to TypedDict types. Previously, the entire dict literal was included in the error range. Now the range is limited to a specific dictionary entry if there is only one error.
Enhancement: Extended type narrowing support for x in y
pattern where y
is a tuple of known length that includes literal types. In this case, negative ("else") type narrowing can be applied if x
is a union that includes literals.
Behavior Change: Increased the code complexity limit that controls whether pyright performs return type inference for functions that have no parameter type annotations. This can be quite expensive, and without parameter types, the results are often low quality. Beyond a certain point, we just skip the expensive analysis and infer a return type of Unknown
. The previous limit was quite low. This increases the limit in an attempt to handle return type inference in more of these cases.
Enhancement: Added a missing check for a **kwargs
parameter immediately after a keyword-only separator *
parameter. This generates a compiler error in Python.
Enhancement: Updated typeshed stubs to the latest version.