Bug Fix: Reverted new version of chalk
library. The newer version is not compatible with node v12.
Bug Fix: Fixed a bug that resulted in a false positive error when attempting to assign a TypeVar T
that has a bound of type
to an expression type[S]
.
Enhancement: Added a new configuration options flag called enableExperimentalFeatures
that controls whether certain experimental features are enabled. Currently there are three features under this flag: StrictTypeGuard
, ReadOnly
fields for typed dicts, and inlined TypedDict
definitions.
Enhancement: Removed support for experimental StrictTypeGuard
and replaced it with an experimental variant of TypeGuard
that applies strict semantics if certain conditions are met.
Bug Fix: Fixed a bug that led to incorrect variance inference when a value annotated with a class-scoped TypeVar was assigned to an instance variable.
Behavior Change: Updated heuristics for how to handle custom metaclass __call__
methods based on feedback. Previously, if a metaclass __call__
method was present, pyright assumed that __new__
and __init__
may not be called, so it ignored them. The new heuristic assumes that if the metaclass __call__
returns a type that is consistent with the expected return type of type.__call__
that it is probably mirroring the behavior of type.__call__
and calling the class' __new__
and __init__
methods.
Behavior Change: Changed auto-variance algorithm to exempt class and instance variables that are named as protected or private.
Bug Fix: Fixed a regression that caused class decorators of generic classes to no longer be specializable.
Bug Fix: Fixed a bug that resulted in an apparent hang within the type printing logic. This was triggered by a pathological case involving a deeply recursive type.
Behavior Change: Modified type inference logic so methods that raise an exception whose type derives from NotImplementedError
is not inferred to return NoReturn
. Previously, only NotImplementedError
was exempted, not subclasses.
Behavior Change: Removed old code that looks for a typeshed
override in the standard python search paths. This works around an issue with the inject
library, which installs a bogus typeshed
directory into site-packages
.
Bug Fix: Fixed a bug that results in unsolved type variables in a call return if the target function's return type is a callable that has type variables that are scoped to that callable.
Bug Fix: Fixed a bug that resulted in incorrect type evaluation when a generic function that returns a callable is passed itself as an argument and the resulting callable is then called and passed that same function as an argument.
Bug Fix: Fixed a bug in the command-line version of pyright where it did not enable "auto search paths", so it didn't automatically add "src" as an extra path.
Bug Fix: Fixed a bug that led to a false negative when determining whether two base classes that are combined using multiple inheritance implement the same method in an incompatible way. The bug caused the check to be skipped if the child class also implemented the same method as the two base classes.
Bug Fix: Fixed a bug that resulted in a false positive error when using an unpack operator within a call to an overloaded function.
Bug Fix: Fixed a bug that resulted in a false positive error when a captured variable within an inner scope (function or lambda) is imported from another module using an import statement that comes after the function or lambda.
Bug Fix: Fixed bug that led to incorrect type evaluation when accessing the name
attribute on an enum.