Bug Fixes:
- Fixed bug that resulted in crash when using language server APIs in certain circumstances.
- Fixed bug that resulted in incorrect type evaluation of a variable within a loop under certain conditions.
- Fixed a bug in the function type assignment logic that leads to a false positive under certain circumstances involving a ParamSpec in an overload with a callback that includes a positional-only parameter separator.
- Fixed a bug that leads to a false negative when
Self
is used within a class definition statement. PEP 637 explicitly rejects this usage ofSelf
. - Fixed a bug that leads to a false negative when
Self
is used within a metaclass. PEP 637 explicitly rejects this usage ofSelf
.
Enhancements:
- Eliminated some unnecessary work when determining the effective type of a symbol that doesn't have a declared type. When evaluated in the context of a particular usage, it's unnecessary to evaluate any assignments within the same execution scope.
- Add error checking for illegal use of unary, binary, or ternary operators within a type annotation.
- Added detection of invalid keyword arguments in
TypedDict
class definition when using the normal class syntax. - Added detection of a call to
TypedDict
alternative syntax form that assigns the resulting class to a variable whose name doesn't match the name specified in theTypedDict
call. - Added check for the use of a TypedDict class in an
isinstance
orissubclass
call. These generate a runtime exception.