@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
@@ -509,11 +509,11 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
509
509
  this._validateIllegalDefaultParamInitializer(node);
510
510
  return true;
511
511
  }
512
- visitListComprehension(node) {
512
+ visitComprehension(node) {
513
513
  this._scopedNodes.push(node);
514
514
  return true;
515
515
  }
516
- visitListComprehensionIf(node) {
516
+ visitComprehensionIf(node) {
517
517
  this._validateConditionalIsBool(node.testExpression);
518
518
  this._reportUnnecessaryConditionExpression(node.testExpression);
519
519
  return true;
@@ -861,7 +861,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
861
861
  if (this._fileInfo.executionEnvironment.pythonVersion.isLessThan(pythonVersion_1.pythonVersion3_12)) {
862
862
  let curNode = node;
863
863
  while (curNode) {
864
- if (curNode.nodeType === 27 /* ParseNodeType.FormatString */) {
864
+ if (curNode.nodeType === 30 /* ParseNodeType.FormatString */) {
865
865
  fStringContainers.push(curNode);
866
866
  }
867
867
  curNode = curNode.parent;
@@ -1024,7 +1024,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
1024
1024
  break;
1025
1025
  }
1026
1026
  let isImportFromTyping = false;
1027
- if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 22 /* ParseNodeType.ImportFrom */) {
1027
+ if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 25 /* ParseNodeType.ImportFrom */) {
1028
1028
  if (node.parent.module.leadingDots === 0 && node.parent.module.nameParts.length === 1) {
1029
1029
  if (node.parent.module.nameParts[0].value === 'typing') {
1030
1030
  isImportFromTyping = true;
@@ -1066,7 +1066,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
1066
1066
  break;
1067
1067
  }
1068
1068
  }
1069
- else if (typeVarScopeNode.nodeType === 28 /* ParseNodeType.Function */) {
1069
+ else if (typeVarScopeNode.nodeType === 31 /* ParseNodeType.Function */) {
1070
1070
  const functionType = (_d = this._evaluator.getTypeOfFunction(typeVarScopeNode)) === null || _d === void 0 ? void 0 : _d.functionType;
1071
1071
  if (functionType === null || functionType === void 0 ? void 0 : functionType.details.typeParameters.some((param) => param.details.name === node.name.value)) {
1072
1072
  foundDuplicate = true;
@@ -1228,7 +1228,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
1228
1228
  55 /* ParseNodeType.UnaryOperation */,
1229
1229
  7 /* ParseNodeType.BinaryOperation */,
1230
1230
  40 /* ParseNodeType.Number */,
1231
- 11 /* ParseNodeType.Constant */,
1231
+ 14 /* ParseNodeType.Constant */,
1232
1232
  38 /* ParseNodeType.Name */,
1233
1233
  52 /* ParseNodeType.Tuple */,
1234
1234
  ];
@@ -1236,11 +1236,11 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
1236
1236
  if (simpleExpressionTypes.some((nodeType) => nodeType === node.nodeType)) {
1237
1237
  reportAsUnused = true;
1238
1238
  }
1239
- else if (node.nodeType === 31 /* ParseNodeType.List */ ||
1239
+ else if (node.nodeType === 34 /* ParseNodeType.List */ ||
1240
1240
  node.nodeType === 45 /* ParseNodeType.Set */ ||
1241
- node.nodeType === 15 /* ParseNodeType.Dictionary */) {
1241
+ node.nodeType === 18 /* ParseNodeType.Dictionary */) {
1242
1242
  // Exclude comprehensions.
1243
- if (!node.entries.some((entry) => entry.nodeType === 32 /* ParseNodeType.ListComprehension */)) {
1243
+ if (!node.entries.some((entry) => entry.nodeType === 11 /* ParseNodeType.Comprehension */)) {
1244
1244
  reportAsUnused = true;
1245
1245
  }
1246
1246
  }
@@ -1605,7 +1605,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
1605
1605
  }
1606
1606
  }
1607
1607
  const existingEntry = localTypeVarUsage.get(nameType.details.name);
1608
- const isParamTypeWithEllipsisUsage = ((_a = curParamNode === null || curParamNode === void 0 ? void 0 : curParamNode.defaultValue) === null || _a === void 0 ? void 0 : _a.nodeType) === 18 /* ParseNodeType.Ellipsis */;
1608
+ const isParamTypeWithEllipsisUsage = ((_a = curParamNode === null || curParamNode === void 0 ? void 0 : curParamNode.defaultValue) === null || _a === void 0 ? void 0 : _a.nodeType) === 21 /* ParseNodeType.Ellipsis */;
1609
1609
  if (!existingEntry) {
1610
1610
  localTypeVarUsage.set(nameType.details.name, {
1611
1611
  nodes: [nameNode],
@@ -1637,7 +1637,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
1637
1637
  // this constructor method?
1638
1638
  if (constructorClass && nameType.scopeId === constructorClass.details.typeVarScopeId) {
1639
1639
  const existingEntry = classTypeVarUsage.get(nameType.details.name);
1640
- const isParamTypeWithEllipsisUsage = ((_d = curParamNode === null || curParamNode === void 0 ? void 0 : curParamNode.defaultValue) === null || _d === void 0 ? void 0 : _d.nodeType) === 18 /* ParseNodeType.Ellipsis */;
1640
+ const isParamTypeWithEllipsisUsage = ((_d = curParamNode === null || curParamNode === void 0 ? void 0 : curParamNode.defaultValue) === null || _d === void 0 ? void 0 : _d.nodeType) === 21 /* ParseNodeType.Ellipsis */;
1641
1641
  const isExempt = !!nameType.details.isDefaultExplicit;
1642
1642
  if (!existingEntry) {
1643
1643
  classTypeVarUsage.set(nameType.details.name, {
@@ -1901,15 +1901,15 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
1901
1901
  }
1902
1902
  _validateStubStatement(statement) {
1903
1903
  switch (statement.nodeType) {
1904
- case 19 /* ParseNodeType.If */:
1905
- case 28 /* ParseNodeType.Function */:
1904
+ case 22 /* ParseNodeType.If */:
1905
+ case 31 /* ParseNodeType.Function */:
1906
1906
  case 10 /* ParseNodeType.Class */:
1907
1907
  case 0 /* ParseNodeType.Error */: {
1908
1908
  // These are allowed in a stub file.
1909
1909
  break;
1910
1910
  }
1911
1911
  case 57 /* ParseNodeType.While */:
1912
- case 26 /* ParseNodeType.For */:
1912
+ case 29 /* ParseNodeType.For */:
1913
1913
  case 53 /* ParseNodeType.Try */:
1914
1914
  case 58 /* ParseNodeType.With */: {
1915
1915
  // These are not allowed.
@@ -1924,15 +1924,15 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
1924
1924
  case 4 /* ParseNodeType.AssignmentExpression */:
1925
1925
  case 6 /* ParseNodeType.Await */:
1926
1926
  case 7 /* ParseNodeType.BinaryOperation */:
1927
- case 11 /* ParseNodeType.Constant */:
1928
- case 14 /* ParseNodeType.Del */:
1929
- case 15 /* ParseNodeType.Dictionary */:
1930
- case 24 /* ParseNodeType.Index */:
1931
- case 26 /* ParseNodeType.For */:
1932
- case 27 /* ParseNodeType.FormatString */:
1933
- case 29 /* ParseNodeType.Global */:
1934
- case 30 /* ParseNodeType.Lambda */:
1935
- case 31 /* ParseNodeType.List */:
1927
+ case 14 /* ParseNodeType.Constant */:
1928
+ case 17 /* ParseNodeType.Del */:
1929
+ case 18 /* ParseNodeType.Dictionary */:
1930
+ case 27 /* ParseNodeType.Index */:
1931
+ case 29 /* ParseNodeType.For */:
1932
+ case 30 /* ParseNodeType.FormatString */:
1933
+ case 32 /* ParseNodeType.Global */:
1934
+ case 33 /* ParseNodeType.Lambda */:
1935
+ case 34 /* ParseNodeType.List */:
1936
1936
  case 35 /* ParseNodeType.MemberAccess */:
1937
1937
  case 38 /* ParseNodeType.Name */:
1938
1938
  case 39 /* ParseNodeType.Nonlocal */:
@@ -2175,7 +2175,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
2175
2175
  // the assignment is within an `__init__` method, so ignore class
2176
2176
  // scopes here.
2177
2177
  const classOrFunc = ParseTreeUtils.getEnclosingClassOrFunction(decl.node);
2178
- if ((classOrFunc === null || classOrFunc === void 0 ? void 0 : classOrFunc.nodeType) === 28 /* ParseNodeType.Function */) {
2178
+ if ((classOrFunc === null || classOrFunc === void 0 ? void 0 : classOrFunc.nodeType) === 31 /* ParseNodeType.Function */) {
2179
2179
  exemptAssignment = true;
2180
2180
  }
2181
2181
  }
@@ -2454,7 +2454,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
2454
2454
  case 8 /* DeclarationType.Alias */:
2455
2455
  diagnosticLevel = this._fileInfo.diagnosticRuleSet.reportUnusedImport;
2456
2456
  rule = diagnosticRules_1.DiagnosticRule.reportUnusedImport;
2457
- if (decl.node.nodeType === 21 /* ParseNodeType.ImportAs */) {
2457
+ if (decl.node.nodeType === 24 /* ParseNodeType.ImportAs */) {
2458
2458
  if (decl.node.alias) {
2459
2459
  // For statements of the form "import x as x", don't mark "x" as unaccessed
2460
2460
  // because it's assumed to be re-exported.
@@ -2476,7 +2476,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
2476
2476
  }
2477
2477
  }
2478
2478
  }
2479
- else if (decl.node.nodeType === 23 /* ParseNodeType.ImportFromAs */) {
2479
+ else if (decl.node.nodeType === 26 /* ParseNodeType.ImportFromAs */) {
2480
2480
  const importFrom = decl.node.parent;
2481
2481
  // For statements of the form "from y import x as x", don't mark "x" as
2482
2482
  // unaccessed because it's assumed to be re-exported.
@@ -2908,7 +2908,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
2908
2908
  _isSymbolPrivate(nameValue, scopeType) {
2909
2909
  // All variables within the scope of a function or a list
2910
2910
  // comprehension are considered private.
2911
- if (scopeType === 2 /* ScopeType.Function */ || scopeType === 1 /* ScopeType.ListComprehension */) {
2911
+ if (scopeType === 2 /* ScopeType.Function */ || scopeType === 1 /* ScopeType.Comprehension */) {
2912
2912
  return true;
2913
2913
  }
2914
2914
  // See if the symbol is private.
@@ -2966,7 +2966,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
2966
2966
  let deprecatedMessage;
2967
2967
  function getDeprecatedMessageForFunction(functionType) {
2968
2968
  if (functionType.details.declaration &&
2969
- functionType.details.declaration.node.nodeType === 28 /* ParseNodeType.Function */) {
2969
+ functionType.details.declaration.node.nodeType === 31 /* ParseNodeType.Function */) {
2970
2970
  const containingClass = ParseTreeUtils.getEnclosingClass(functionType.details.declaration.node,
2971
2971
  /* stopAtFunction */ true);
2972
2972
  if (containingClass) {
@@ -3155,8 +3155,8 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
3155
3155
  return;
3156
3156
  }
3157
3157
  // Skip this check for relative imports.
3158
- const nodeModule = node.nodeType === 23 /* ParseNodeType.ImportFromAs */
3159
- ? ((_a = node.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 22 /* ParseNodeType.ImportFrom */
3158
+ const nodeModule = node.nodeType === 26 /* ParseNodeType.ImportFromAs */
3159
+ ? ((_a = node.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 25 /* ParseNodeType.ImportFrom */
3160
3160
  ? (_b = node.parent) === null || _b === void 0 ? void 0 : _b.module
3161
3161
  : undefined
3162
3162
  : node.module;
@@ -3164,9 +3164,9 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
3164
3164
  return;
3165
3165
  }
3166
3166
  // Otherwise use the name to determine if a match for a stdlib module.
3167
- const namePartNodes = node.nodeType === 21 /* ParseNodeType.ImportAs */
3167
+ const namePartNodes = node.nodeType === 24 /* ParseNodeType.ImportAs */
3168
3168
  ? node.module.nameParts
3169
- : node.nodeType === 23 /* ParseNodeType.ImportFromAs */
3169
+ : node.nodeType === 26 /* ParseNodeType.ImportFromAs */
3170
3170
  ? [node.name]
3171
3171
  : node.module.nameParts;
3172
3172
  const nameParts = namePartNodes.map((n) => n.value);
@@ -3321,7 +3321,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
3321
3321
  if (statement.nodeType === 47 /* ParseNodeType.StatementList */) {
3322
3322
  for (const substatement of statement.statements) {
3323
3323
  if (substatement.nodeType !== 54 /* ParseNodeType.TypeAnnotation */ &&
3324
- substatement.nodeType !== 18 /* ParseNodeType.Ellipsis */ &&
3324
+ substatement.nodeType !== 21 /* ParseNodeType.Ellipsis */ &&
3325
3325
  substatement.nodeType !== 48 /* ParseNodeType.StringList */ &&
3326
3326
  substatement.nodeType !== 42 /* ParseNodeType.Pass */) {
3327
3327
  emitBadStatementError(substatement);
@@ -3997,7 +3997,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
3997
3997
  const newDecl = newMemberType.details.declaration;
3998
3998
  if (initDecl && newDecl) {
3999
3999
  const mainDecl = displayOnInit ? initDecl : newDecl;
4000
- const mainDeclNode = mainDecl.node.nodeType === 28 /* ParseNodeType.Function */ ? mainDecl.node.name : mainDecl.node;
4000
+ const mainDeclNode = mainDecl.node.nodeType === 31 /* ParseNodeType.Function */ ? mainDecl.node.name : mainDecl.node;
4001
4001
  const diagAddendum = new diagnostic_1.DiagnosticAddendum();
4002
4002
  const initSignature = this._evaluator.printType(initMemberType);
4003
4003
  const newSignature = this._evaluator.printType(newMemberType);
@@ -5178,7 +5178,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
5178
5178
  const importStatements = (0, importStatementUtils_1.getTopLevelImports)(this._moduleNode);
5179
5179
  const importModuleMap = new Map();
5180
5180
  importStatements.orderedImports.forEach((importStatement) => {
5181
- if (importStatement.node.nodeType === 22 /* ParseNodeType.ImportFrom */) {
5181
+ if (importStatement.node.nodeType === 25 /* ParseNodeType.ImportFrom */) {
5182
5182
  const symbolMap = new Map();
5183
5183
  importStatement.node.imports.forEach((importFromAs) => {
5184
5184
  // Ignore duplicates if they're aliased.