Bug Fix: Fixed bug that could lead to an internal stack overflow when a generic value was used as an argument for a function or class decorator.
Enhancement: Added support in literal comparison type narrowing to filter out comparisons to "None" in positive case.
Bug Fix: Fixed bug in parser where it was too permissive in allowing keywords to be used as identifiers. The Python interpreter is less permissive, so pyright's parser should match.
Bug Fix: Fixed several bugs that caused crashes (dereference of undefined variable) in certain circumstances.
Enhancement: Added a new log error for the case where enumeration of files within the workspace is taking longer than 10 seconds.
Bug Fix: Fixed bug in tokenizer which treated 'constructor' as a keyword.
Bug Fix: Fixed bug in "type(x) is y" type narrowing logic to handle the case where x is an instance of a generic class.
Enhancement: Added check for illegal trailing comma in "from x import y," statement. This generates a syntax error at runtime.
Enhancement: Added check for illegal use of "Protocol" as a type argument.
Enhancement: Implemented new check for a class that is decorated with @final
but does not implement all abstract methods from abstract classes that it derives from.
Enhancement: Added check for inappropriate use of ClassVar
that will generate runtime exceptions.
Enhancement: Added logic to enforce protocol mismatches if a member in the protocol is marked "Final" and the class is not (or vice versa).
Behavior Change: Modified assignment type narrowing for index expressions so it applies only to built-in types. This eliminates incorrect type inference when using a class that has assymetric __setitem__
and __getitem__
methods.
Enhancement: Fixed false positive error when @property
is combined with @functools.cache
.