@zzzen/pyright-internal 1.2.0-dev.20240526 → 1.2.0-dev.20240602

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/dist/analyzer/analyzerNodeInfo.d.ts +2 -2
  2. package/dist/analyzer/binder.d.ts +3 -3
  3. package/dist/analyzer/binder.js +32 -32
  4. package/dist/analyzer/binder.js.map +1 -1
  5. package/dist/analyzer/checker.d.ts +3 -3
  6. package/dist/analyzer/checker.js +35 -35
  7. package/dist/analyzer/checker.js.map +1 -1
  8. package/dist/analyzer/codeFlowEngine.js +4 -4
  9. package/dist/analyzer/codeFlowTypes.js +3 -3
  10. package/dist/analyzer/constructors.js +10 -3
  11. package/dist/analyzer/constructors.js.map +1 -1
  12. package/dist/analyzer/declarationUtils.js +3 -3
  13. package/dist/analyzer/enums.js +6 -6
  14. package/dist/analyzer/importResolver.d.ts +1 -0
  15. package/dist/analyzer/importResolver.js +6 -3
  16. package/dist/analyzer/importResolver.js.map +1 -1
  17. package/dist/analyzer/importStatementUtils.js +6 -6
  18. package/dist/analyzer/namedTuples.js +2 -2
  19. package/dist/analyzer/operations.js +2 -2
  20. package/dist/analyzer/parseTreeUtils.d.ts +1 -1
  21. package/dist/analyzer/parseTreeUtils.js +94 -94
  22. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  23. package/dist/analyzer/parseTreeWalker.d.ts +5 -5
  24. package/dist/analyzer/parseTreeWalker.js +64 -64
  25. package/dist/analyzer/parseTreeWalker.js.map +1 -1
  26. package/dist/analyzer/patternMatching.js +1 -1
  27. package/dist/analyzer/program.d.ts +1 -1
  28. package/dist/analyzer/program.js +23 -29
  29. package/dist/analyzer/program.js.map +1 -1
  30. package/dist/analyzer/scope.d.ts +1 -1
  31. package/dist/analyzer/scope.js +2 -2
  32. package/dist/analyzer/scope.js.map +1 -1
  33. package/dist/analyzer/sourceMapper.js +4 -4
  34. package/dist/analyzer/staticExpressions.js +3 -3
  35. package/dist/analyzer/testWalker.js +1 -1
  36. package/dist/analyzer/tracePrinter.js +4 -4
  37. package/dist/analyzer/typeDocStringUtils.js +1 -1
  38. package/dist/analyzer/typeEvaluator.js +290 -311
  39. package/dist/analyzer/typeEvaluator.js.map +1 -1
  40. package/dist/analyzer/typeGuards.js +6 -6
  41. package/dist/analyzer/typeStubWriter.js +1 -1
  42. package/dist/analyzer/typeUtils.d.ts +1 -1
  43. package/dist/analyzer/typeUtils.js +11 -4
  44. package/dist/analyzer/typeUtils.js.map +1 -1
  45. package/dist/analyzer/typedDicts.d.ts +1 -2
  46. package/dist/analyzer/typedDicts.js +5 -17
  47. package/dist/analyzer/typedDicts.js.map +1 -1
  48. package/dist/commands/dumpFileDebugInfoCommand.d.ts +1 -1
  49. package/dist/commands/dumpFileDebugInfoCommand.js +14 -14
  50. package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
  51. package/dist/common/textEditTracker.js +5 -5
  52. package/dist/common/uri/fileUri.js +1 -0
  53. package/dist/common/uri/fileUri.js.map +1 -1
  54. package/dist/common/uri/uri.d.ts +3 -0
  55. package/dist/common/uri/uri.js +16 -0
  56. package/dist/common/uri/uri.js.map +1 -1
  57. package/dist/languageService/autoImporter.js +4 -4
  58. package/dist/languageService/callHierarchyProvider.js +1 -1
  59. package/dist/languageService/completionProvider.js +30 -30
  60. package/dist/languageService/completionProvider.js.map +1 -1
  61. package/dist/languageService/documentSymbolCollector.js +7 -7
  62. package/dist/languageService/hoverProvider.js +2 -2
  63. package/dist/languageService/importSorter.js +1 -1
  64. package/dist/languageService/referencesProvider.js +4 -4
  65. package/dist/languageService/referencesProvider.js.map +1 -1
  66. package/dist/languageService/symbolIndexer.js +3 -3
  67. package/dist/languageService/tooltipUtils.js +2 -2
  68. package/dist/localization/localize.d.ts +1 -1
  69. package/dist/localization/localize.js +1 -1
  70. package/dist/localization/localize.js.map +1 -1
  71. package/dist/localization/package.nls.cs.json +3 -1
  72. package/dist/localization/package.nls.de.json +3 -1
  73. package/dist/localization/package.nls.en-us.json +1 -1
  74. package/dist/localization/package.nls.es.json +3 -1
  75. package/dist/localization/package.nls.fr.json +3 -1
  76. package/dist/localization/package.nls.it.json +3 -1
  77. package/dist/localization/package.nls.ja.json +3 -1
  78. package/dist/localization/package.nls.ko.json +3 -1
  79. package/dist/localization/package.nls.pl.json +3 -1
  80. package/dist/localization/package.nls.pt-br.json +3 -1
  81. package/dist/localization/package.nls.qps-ploc.json +3 -1
  82. package/dist/localization/package.nls.ru.json +3 -1
  83. package/dist/localization/package.nls.tr.json +3 -1
  84. package/dist/localization/package.nls.zh-cn.json +3 -1
  85. package/dist/localization/package.nls.zh-tw.json +3 -1
  86. package/dist/parser/parseNodes.d.ts +42 -42
  87. package/dist/parser/parseNodes.js +69 -69
  88. package/dist/parser/parseNodes.js.map +1 -1
  89. package/dist/parser/parser.d.ts +1 -1
  90. package/dist/parser/parser.js +35 -35
  91. package/dist/parser/parser.js.map +1 -1
  92. package/dist/pyright.js +3 -3
  93. package/dist/pyright.js.map +1 -1
  94. package/dist/tests/classDeclaration.test.js +1 -1
  95. package/dist/tests/importResolver.test.js +16 -0
  96. package/dist/tests/importResolver.test.js.map +1 -1
  97. package/dist/tests/parseTreeUtils.test.js +4 -4
  98. package/dist/tests/parser.test.js +3 -3
  99. package/dist/tests/typeEvaluator2.test.js +5 -1
  100. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  101. package/dist/tests/typeEvaluator4.test.js +1 -1
  102. package/dist/tests/typeEvaluator7.test.js +0 -6
  103. package/dist/tests/typeEvaluator7.test.js.map +1 -1
  104. package/dist/tests/uri.test.js +11 -3
  105. package/dist/tests/uri.test.js.map +1 -1
  106. package/dist/workspaceFactory.js +16 -14
  107. package/dist/workspaceFactory.js.map +1 -1
  108. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { ClassNode, ExecutionScopeNode, FunctionNode, LambdaNode, ListComprehensionNode, ModuleNode, ParseNode, StringNode } from '../parser/parseNodes';
1
+ import { ClassNode, ComprehensionNode, ExecutionScopeNode, FunctionNode, LambdaNode, ModuleNode, ParseNode, StringNode } from '../parser/parseNodes';
2
2
  import { AnalyzerFileInfo } from './analyzerFileInfo';
3
3
  import { FlowNode } from './codeFlowTypes';
4
4
  import { Declaration } from './declaration';
@@ -9,7 +9,7 @@ export interface DunderAllInfo {
9
9
  stringNodes: StringNode[];
10
10
  usesUnsupportedDunderAllForm: boolean;
11
11
  }
12
- export type ScopedNode = ModuleNode | ClassNode | FunctionNode | LambdaNode | ListComprehensionNode;
12
+ export type ScopedNode = ModuleNode | ClassNode | FunctionNode | LambdaNode | ComprehensionNode;
13
13
  export declare function cleanNodeAnalysisInfo(node: ParseNode): void;
14
14
  export declare function getImportInfo(node: ParseNode): ImportResult | undefined;
15
15
  export declare function setImportInfo(node: ParseNode, importInfo: ImportResult): void;
@@ -1,4 +1,4 @@
1
- import { AssertNode, AssignmentExpressionNode, AssignmentNode, AugmentedAssignmentNode, AwaitNode, BinaryOperationNode, BreakNode, CallNode, ClassNode, ContinueNode, DelNode, ExceptNode, ForNode, FunctionNode, GlobalNode, IfNode, ImportAsNode, ImportFromNode, IndexNode, LambdaNode, ListComprehensionNode, MatchNode, MemberAccessNode, ModuleNameNode, ModuleNode, NameNode, NonlocalNode, ParseNode, PatternAsNode, PatternCaptureNode, PatternMappingExpandEntryNode, RaiseNode, ReturnNode, SuiteNode, TernaryNode, TryNode, TypeAliasNode, TypeAnnotationNode, TypeParameterListNode, UnaryOperationNode, WhileNode, WithNode, YieldFromNode, YieldNode } from '../parser/parseNodes';
1
+ import { AssertNode, AssignmentExpressionNode, AssignmentNode, AugmentedAssignmentNode, AwaitNode, BinaryOperationNode, BreakNode, CallNode, ClassNode, ComprehensionNode, ContinueNode, DelNode, ExceptNode, ForNode, FunctionNode, GlobalNode, IfNode, ImportAsNode, ImportFromNode, IndexNode, LambdaNode, MatchNode, MemberAccessNode, ModuleNameNode, ModuleNode, NameNode, NonlocalNode, ParseNode, PatternAsNode, PatternCaptureNode, PatternMappingExpandEntryNode, RaiseNode, ReturnNode, SuiteNode, TernaryNode, TryNode, TypeAliasNode, TypeAnnotationNode, TypeParameterListNode, UnaryOperationNode, WhileNode, WithNode, YieldFromNode, YieldNode } from '../parser/parseNodes';
2
2
  import { AnalyzerFileInfo } from './analyzerFileInfo';
3
3
  import { ParseTreeWalker } from './parseTreeWalker';
4
4
  import { Scope } from './scope';
@@ -72,7 +72,7 @@ export declare class Binder extends ParseTreeWalker {
72
72
  visitTernary(node: TernaryNode): boolean;
73
73
  visitUnaryOperation(node: UnaryOperationNode): boolean;
74
74
  visitBinaryOperation(node: BinaryOperationNode): boolean;
75
- visitListComprehension(node: ListComprehensionNode): boolean;
75
+ visitComprehension(node: ComprehensionNode): boolean;
76
76
  visitMatch(node: MatchNode): boolean;
77
77
  visitPatternAs(node: PatternAsNode): boolean;
78
78
  visitPatternCapture(node: PatternCaptureNode): boolean;
@@ -80,7 +80,7 @@ export declare class Binder extends ParseTreeWalker {
80
80
  private _formatModuleName;
81
81
  private _getNonClassParentScope;
82
82
  private _addSlotsToCurrentScope;
83
- private _isInListComprehension;
83
+ private _isInComprehension;
84
84
  private _addPatternCaptureTarget;
85
85
  private _useExceptTargets;
86
86
  private _getDunderAllNamesFromImport;
@@ -426,7 +426,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
426
426
  // There are libraries that make extensive use of unannotated decorators,
427
427
  // and this can lead to a performance issue when walking the control
428
428
  // flow graph if we need to evaluate every decorator.
429
- if (!ParseTreeUtils.isNodeContainedWithinNodeType(node, 13 /* ParseNodeType.Decorator */)) {
429
+ if (!ParseTreeUtils.isNodeContainedWithinNodeType(node, 16 /* ParseNodeType.Decorator */)) {
430
430
  // Skip if we're in an 'Annotated' annotation because this creates
431
431
  // problems for "No Return" return type analysis when annotation
432
432
  // evaluation is deferred.
@@ -444,7 +444,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
444
444
  if (node.leftExpression.memberName.value === 'extend' && node.arguments.length === 1) {
445
445
  const argExpr = node.arguments[0].valueExpression;
446
446
  // Is this a call to "__all__.extend([<list>])"?
447
- if (argExpr.nodeType === 31 /* ParseNodeType.List */) {
447
+ if (argExpr.nodeType === 34 /* ParseNodeType.List */) {
448
448
  argExpr.entries.forEach((listEntryNode) => {
449
449
  var _a, _b;
450
450
  if (listEntryNode.nodeType === 48 /* ParseNodeType.StringList */ &&
@@ -581,7 +581,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
581
581
  // If the assignment target base expression is potentially a
582
582
  // TypedDict, add the base expression to the flow expressions set
583
583
  // to accommodate TypedDict type narrowing.
584
- if (node.leftExpression.nodeType === 24 /* ParseNodeType.Index */) {
584
+ if (node.leftExpression.nodeType === 27 /* ParseNodeType.Index */) {
585
585
  const target = node.leftExpression;
586
586
  if (target.items.length === 1 &&
587
587
  !target.trailingComma &&
@@ -621,7 +621,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
621
621
  const expr = node.rightExpression;
622
622
  this._dunderAllNames = [];
623
623
  let emitDunderAllWarning = false;
624
- if (expr.nodeType === 31 /* ParseNodeType.List */) {
624
+ if (expr.nodeType === 34 /* ParseNodeType.List */) {
625
625
  expr.entries.forEach((listEntryNode) => {
626
626
  if (listEntryNode.nodeType === 48 /* ParseNodeType.StringList */ &&
627
627
  listEntryNode.strings.length === 1 &&
@@ -668,7 +668,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
668
668
  if (expr.nodeType === 48 /* ParseNodeType.StringList */) {
669
669
  this._dunderSlotsEntries.push(expr);
670
670
  }
671
- else if (expr.nodeType === 31 /* ParseNodeType.List */) {
671
+ else if (expr.nodeType === 34 /* ParseNodeType.List */) {
672
672
  expr.entries.forEach((listEntryNode) => {
673
673
  if (listEntryNode.nodeType === 48 /* ParseNodeType.StringList */ &&
674
674
  listEntryNode.strings.length === 1 &&
@@ -751,7 +751,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
751
751
  node.leftExpression.value === '__all__') {
752
752
  const expr = node.rightExpression;
753
753
  let emitDunderAllWarning = true;
754
- if (expr.nodeType === 31 /* ParseNodeType.List */) {
754
+ if (expr.nodeType === 34 /* ParseNodeType.List */) {
755
755
  // Is this the form __all__ += ["a", "b"]?
756
756
  expr.entries.forEach((listEntryNode) => {
757
757
  var _a;
@@ -899,15 +899,15 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
899
899
  return false;
900
900
  }
901
901
  visitYield(node) {
902
- if (this._isInListComprehension(node, /* ignoreOutermostIterable */ true)) {
903
- this._addSyntaxError(localize_1.LocMessage.yieldWithinListCompr(), node);
902
+ if (this._isInComprehension(node, /* ignoreOutermostIterable */ true)) {
903
+ this._addSyntaxError(localize_1.LocMessage.yieldWithinComprehension(), node);
904
904
  }
905
905
  this._bindYield(node);
906
906
  return false;
907
907
  }
908
908
  visitYieldFrom(node) {
909
- if (this._isInListComprehension(node, /* ignoreOutermostIterable */ true)) {
910
- this._addSyntaxError(localize_1.LocMessage.yieldWithinListCompr(), node);
909
+ if (this._isInComprehension(node, /* ignoreOutermostIterable */ true)) {
910
+ this._addSyntaxError(localize_1.LocMessage.yieldWithinComprehension(), node);
911
911
  }
912
912
  this._bindYield(node);
913
913
  return false;
@@ -1191,7 +1191,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
1191
1191
  // Allow if it's within a generator expression. Execution of
1192
1192
  // generator expressions is deferred and therefore can be
1193
1193
  // run within the context of an async function later.
1194
- if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.nodeType) !== 32 /* ParseNodeType.ListComprehension */) {
1194
+ if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.nodeType) !== 11 /* ParseNodeType.Comprehension */) {
1195
1195
  this._addSyntaxError(localize_1.LocMessage.awaitNotInAsync(), node);
1196
1196
  }
1197
1197
  }
@@ -1639,13 +1639,13 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
1639
1639
  }
1640
1640
  return false;
1641
1641
  }
1642
- visitListComprehension(node) {
1642
+ visitComprehension(node) {
1643
1643
  const enclosingFunction = ParseTreeUtils.getEnclosingFunction(node);
1644
1644
  // The first iterable is executed outside of the comprehension scope.
1645
- if (node.forIfNodes.length > 0 && node.forIfNodes[0].nodeType === 33 /* ParseNodeType.ListComprehensionFor */) {
1645
+ if (node.forIfNodes.length > 0 && node.forIfNodes[0].nodeType === 12 /* ParseNodeType.ComprehensionFor */) {
1646
1646
  this.walk(node.forIfNodes[0].iterableExpression);
1647
1647
  }
1648
- this._createNewScope(1 /* ScopeType.ListComprehension */, this._getNonClassParentScope(),
1648
+ this._createNewScope(1 /* ScopeType.Comprehension */, this._getNonClassParentScope(),
1649
1649
  /* proxyScope */ undefined, () => {
1650
1650
  var _a;
1651
1651
  AnalyzerNodeInfo.setScope(node, this._currentScope);
@@ -1656,7 +1656,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
1656
1656
  for (let i = 0; i < node.forIfNodes.length; i++) {
1657
1657
  const compr = node.forIfNodes[i];
1658
1658
  const addedSymbols = new Map();
1659
- if (compr.nodeType === 33 /* ParseNodeType.ListComprehensionFor */) {
1659
+ if (compr.nodeType === 12 /* ParseNodeType.ComprehensionFor */) {
1660
1660
  this._bindPossibleTupleNamedTarget(compr.targetExpression, addedSymbols);
1661
1661
  this._addInferredTypeAssignmentForVariable(compr.targetExpression, compr);
1662
1662
  // Async for is not allowed outside of an async function
@@ -1666,7 +1666,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
1666
1666
  // Allow if it's within a generator expression. Execution of
1667
1667
  // generator expressions is deferred and therefore can be
1668
1668
  // run within the context of an async function later.
1669
- if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 31 /* ParseNodeType.List */) {
1669
+ if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 34 /* ParseNodeType.List */) {
1670
1670
  this._addSyntaxError(localize_1.LocMessage.asyncNotInAsyncFunction(), compr.asyncToken);
1671
1671
  }
1672
1672
  }
@@ -1675,7 +1675,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
1675
1675
  }
1676
1676
  for (let i = 0; i < node.forIfNodes.length; i++) {
1677
1677
  const compr = node.forIfNodes[i];
1678
- if (compr.nodeType === 33 /* ParseNodeType.ListComprehensionFor */) {
1678
+ if (compr.nodeType === 12 /* ParseNodeType.ComprehensionFor */) {
1679
1679
  // We already walked the first iterable expression above,
1680
1680
  // so skip it here.
1681
1681
  if (i !== 0) {
@@ -1843,15 +1843,15 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
1843
1843
  this._currentScope.setSlotsNames(slotNameNodes.map((node) => node.strings[0].value));
1844
1844
  }
1845
1845
  }
1846
- _isInListComprehension(node, ignoreOutermostIterable = false) {
1846
+ _isInComprehension(node, ignoreOutermostIterable = false) {
1847
1847
  let curNode = node;
1848
1848
  let prevNode;
1849
1849
  let prevPrevNode;
1850
1850
  while (curNode) {
1851
- if (curNode.nodeType === 32 /* ParseNodeType.ListComprehension */) {
1851
+ if (curNode.nodeType === 11 /* ParseNodeType.Comprehension */) {
1852
1852
  if (ignoreOutermostIterable && curNode.forIfNodes.length > 0) {
1853
1853
  const outermostCompr = curNode.forIfNodes[0];
1854
- if (prevNode === outermostCompr && outermostCompr.nodeType === 33 /* ParseNodeType.ListComprehensionFor */) {
1854
+ if (prevNode === outermostCompr && outermostCompr.nodeType === 12 /* ParseNodeType.ComprehensionFor */) {
1855
1855
  if (prevPrevNode === outermostCompr.iterableExpression) {
1856
1856
  return false;
1857
1857
  }
@@ -2304,7 +2304,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
2304
2304
  switch (expression.nodeType) {
2305
2305
  case 38 /* ParseNodeType.Name */:
2306
2306
  case 35 /* ParseNodeType.MemberAccess */:
2307
- case 24 /* ParseNodeType.Index */: {
2307
+ case 27 /* ParseNodeType.Index */: {
2308
2308
  if (filterForNeverNarrowing) {
2309
2309
  // Never narrowing doesn't support member access or index
2310
2310
  // expressions.
@@ -2332,7 +2332,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
2332
2332
  // If the expression is an index expression with a supported
2333
2333
  // subscript, add its baseExpression to the expression list because
2334
2334
  // that expression can be narrowed.
2335
- if (expression.nodeType === 24 /* ParseNodeType.Index */ &&
2335
+ if (expression.nodeType === 27 /* ParseNodeType.Index */ &&
2336
2336
  expression.items.length === 1 &&
2337
2337
  !expression.trailingComma &&
2338
2338
  expression.items[0].argumentCategory === 0 /* ArgumentCategory.Simple */) {
@@ -2357,7 +2357,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
2357
2357
  if (isOrIsNotOperator || equalsOrNotEqualsOperator) {
2358
2358
  // Look for "X is None", "X is not None", "X == None", "X != None".
2359
2359
  // These are commonly-used patterns used in control flow.
2360
- if (expression.rightExpression.nodeType === 11 /* ParseNodeType.Constant */ &&
2360
+ if (expression.rightExpression.nodeType === 14 /* ParseNodeType.Constant */ &&
2361
2361
  expression.rightExpression.constType === 26 /* KeywordType.None */) {
2362
2362
  return this._isNarrowingExpression(expression.leftExpression, expressionList, filterForNeverNarrowing,
2363
2363
  /* isComplexExpression */ true);
@@ -2456,7 +2456,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
2456
2456
  }
2457
2457
  break;
2458
2458
  }
2459
- case 24 /* ParseNodeType.Index */: {
2459
+ case 27 /* ParseNodeType.Index */: {
2460
2460
  this._createFlowAssignment(target, unbound);
2461
2461
  if (walkTargets) {
2462
2462
  this.walk(target);
@@ -2483,7 +2483,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
2483
2483
  }
2484
2484
  break;
2485
2485
  }
2486
- case 31 /* ParseNodeType.List */: {
2486
+ case 34 /* ParseNodeType.List */: {
2487
2487
  target.entries.forEach((entry) => {
2488
2488
  this._createAssignmentTargetFlowNodes(entry, walkTargets, unbound);
2489
2489
  });
@@ -2684,7 +2684,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
2684
2684
  });
2685
2685
  break;
2686
2686
  }
2687
- case 31 /* ParseNodeType.List */: {
2687
+ case 34 /* ParseNodeType.List */: {
2688
2688
  target.entries.forEach((expr) => {
2689
2689
  this._bindPossibleTupleNamedTarget(expr, addedSymbols);
2690
2690
  });
@@ -2831,7 +2831,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
2831
2831
  this._addInferredTypeAssignmentForVariable(target.expression, source);
2832
2832
  break;
2833
2833
  }
2834
- case 31 /* ParseNodeType.List */: {
2834
+ case 34 /* ParseNodeType.List */: {
2835
2835
  target.entries.forEach((entry) => {
2836
2836
  this._addInferredTypeAssignmentForVariable(entry, source);
2837
2837
  });
@@ -2905,14 +2905,14 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
2905
2905
  symbolWithScope.symbol.setIsInstanceMember();
2906
2906
  }
2907
2907
  // Look for an 'InitVar' either by itself or wrapped in an 'Annotated'.
2908
- if (typeAnnotation.nodeType === 24 /* ParseNodeType.Index */) {
2908
+ if (typeAnnotation.nodeType === 27 /* ParseNodeType.Index */) {
2909
2909
  if (this._isDataclassesAnnotation(typeAnnotation.baseExpression, 'InitVar')) {
2910
2910
  symbolWithScope.symbol.setIsInitVar();
2911
2911
  }
2912
2912
  else if (this._isTypingAnnotation(typeAnnotation.baseExpression, 'Annotated') &&
2913
2913
  typeAnnotation.items.length > 0) {
2914
2914
  const item0Expr = typeAnnotation.items[0].valueExpression;
2915
- if (item0Expr.nodeType === 24 /* ParseNodeType.Index */ &&
2915
+ if (item0Expr.nodeType === 27 /* ParseNodeType.Index */ &&
2916
2916
  this._isDataclassesAnnotation(item0Expr.baseExpression, 'InitVar')) {
2917
2917
  symbolWithScope.symbol.setIsInitVar();
2918
2918
  }
@@ -3031,7 +3031,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
3031
3031
  if (this._isTypingAnnotation(typeAnnotation, 'Final')) {
3032
3032
  isFinal = true;
3033
3033
  }
3034
- else if (typeAnnotation.nodeType === 24 /* ParseNodeType.Index */ && typeAnnotation.items.length === 1) {
3034
+ else if (typeAnnotation.nodeType === 27 /* ParseNodeType.Index */ && typeAnnotation.items.length === 1) {
3035
3035
  // Recursively call to see if the base expression is "Final".
3036
3036
  const finalInfo = this._isAnnotationFinal(typeAnnotation.baseExpression);
3037
3037
  if (finalInfo.isFinal &&
@@ -3056,7 +3056,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
3056
3056
  if (typeAnnotation.nodeType === 48 /* ParseNodeType.StringList */ && typeAnnotation.typeAnnotation) {
3057
3057
  typeAnnotation = typeAnnotation.typeAnnotation;
3058
3058
  }
3059
- if (typeAnnotation.nodeType === 24 /* ParseNodeType.Index */ &&
3059
+ if (typeAnnotation.nodeType === 27 /* ParseNodeType.Index */ &&
3060
3060
  typeAnnotation.items.length > 0 &&
3061
3061
  this._isTypingAnnotation(typeAnnotation.baseExpression, 'Annotated')) {
3062
3062
  typeAnnotation = typeAnnotation.items[0].valueExpression;
@@ -3065,7 +3065,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
3065
3065
  isClassVar = true;
3066
3066
  break;
3067
3067
  }
3068
- else if (typeAnnotation.nodeType === 24 /* ParseNodeType.Index */ && typeAnnotation.items.length === 1) {
3068
+ else if (typeAnnotation.nodeType === 27 /* ParseNodeType.Index */ && typeAnnotation.items.length === 1) {
3069
3069
  // Recursively call to see if the base expression is "ClassVar".
3070
3070
  const finalInfo = this._isAnnotationClassVar(typeAnnotation.baseExpression);
3071
3071
  if (finalInfo.isClassVar &&