Skip to content

Published 1.1.292

Compare
Choose a tag to compare
@erictraut erictraut released this 01 Feb 02:45
· 1676 commits to main since this release

Bug Fix: Fixed a bug that results in a false positive error in certain circumstances when a match statement is used within a loop.

Bug Fix: Fixed a bug that caused a hang when a function that accepted a Callable with a ParamSpec was fed to itself as an argument.

Enhancement: Improved formatting of function signatures in hover text.

Enhancement: Added heuristic to better handle the case where a symbol is imported from two different modules, one in a try block and another in an except block. This pattern can be found in a number of libraries.

Enhancement: Added filtering in hover provider for overloaded constructors. Filtering for other overloaded functions and methods was previously added, but constructors were overlooked.

Bug Fix: Fixed a bug that resulted in an infinite loop in some cases where list lists, sets or dicts were inferred loop construct.

Enhancement: Extended the reportUnnecessaryComparison check to also handle conditions of the form x is None and x is not None.

Enhancement: Updated typeshed stubs to the latest version.

Bug Fix: Fixed a bug that resulted in incorrect type narrowing for discriminated TypedDict types when the narrowed expression includes a member access subexpression.

Bug Fix: Fixed bug in command-line version of pyright that led to the inclusion of file names in the output diagnostic report in cases where diagnostics were completely suppressed for that file using the --level option.

Enhancement: Improved type narrowing for truthy tests that involve int, str or bytes values. In the negative case, we can assume that the type is Literal[0], Literal[''] or Literal[b''].

Bug Fix: Fixed bug that resulted in a false positive when trying to assign a value of type NoneType to type[object].

Bug Fix: Fixed a bug that led to a false negative when a backslash character was used within an expression segment of an f-string.

Behavior Change: Modified overload matching algorithm to more closely match that of mypy. In the case where one or more arguments evaluate to Any but those arguments map to parameters whose types are the same, the first overload is selected. Only in cases where an Any argument produces ambiguous results is an Unknown result produced.

Bug Fix: Fixed a bug in the handling of file specs (globs) used for the "include" configuration option. A directory wildcard pattern (**) was not handled correctly.

Behavior Change: Disabled type narrowing for expressions of the form " == X" and != X". These were never documented to work, and they were causing significant performance issues. Also reverted recent attempt to modify the code complexity algorithm, as this change is no longer necessary.

Performance: Addressed performance issue in code that includes loops and many interdependencies between variables with inferred types. The optimization involves the introduction of an incomplete type generation count that is updated when a the type cache is updated in a way that could affect previously-calculated incomplete types.

Bug Fix: Fixed a bug that led to a false positive error about an "unknown type" in certain cases when using an assignment expression (walrus operator) in a loop.