Breaking Changes:
- The CLI and language server versions of pyright now require a minimum node version of 14. Previously node 12 and 13 were supported.
Enhancements:
- Enabled PEP 705 and PEP 696 functionality without the use of enableExperimentalFeatures now that these PEPs are officially accepted.
- Improved support for instance variables whose type is declared in a metaclass. Pyright now honors this type and enforces type consistency in derived classes.
Bug Fixes:
- Fixed a bug that results in a false negative when a dundered method overrides a base class method of the same name and uses different parameter names along with different types.
- Fixed a bug that leads to a false positive error when a
match
statement is used in a loop and the subject expression is potentially narrowed as a result of thematch
statement. - Added check for inappropriate use of
Annotated
passed as second argument toNewType
call. - Fixed a bug that results in a false positive error when expanding the type arguments to a TypeVarTuple under certain circumstances.
- Fixed a bug that results in incorrect type evaluation when an index expression is assigned a value within a doubly-nested loop under certain circumstances.
- Fixed a regression that caused the signature help provider to not display the
__new__
method of a constructor if it is overloaded. - Fixed hard-coded type information for module attribute
__package__
. It should bestr | None
rather thanstr
. - Fixed a bug in the
isinstance
type guard logic. It was not properly handling tuples that included unions. - Fixed bug in signature help provider so
str
method docstrings are showed when called onLiteralString
. - Fixed a bug that results in incorrect type narrowing behavior for member access expressions under certain circumstances.
- Fixed bug that resulted in a false negative when a possibly-unbound variable is captured by an inner scope under certain circumstances.