@zzzen/pyright-internal 1.2.0-dev.20240505 → 1.2.0-dev.20240519

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 (82) hide show
  1. package/dist/analyzer/analyzerFileInfo.js +3 -2
  2. package/dist/analyzer/analyzerFileInfo.js.map +1 -1
  3. package/dist/analyzer/binder.js +6 -0
  4. package/dist/analyzer/binder.js.map +1 -1
  5. package/dist/analyzer/checker.js +21 -7
  6. package/dist/analyzer/checker.js.map +1 -1
  7. package/dist/analyzer/codeFlowEngine.js +23 -2
  8. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  9. package/dist/analyzer/constraintSolver.js +7 -16
  10. package/dist/analyzer/constraintSolver.js.map +1 -1
  11. package/dist/analyzer/dataClasses.js +29 -24
  12. package/dist/analyzer/dataClasses.js.map +1 -1
  13. package/dist/analyzer/declaration.d.ts +1 -0
  14. package/dist/analyzer/declaration.js.map +1 -1
  15. package/dist/analyzer/deprecatedSymbols.js +1 -0
  16. package/dist/analyzer/deprecatedSymbols.js.map +1 -1
  17. package/dist/analyzer/enums.d.ts +2 -5
  18. package/dist/analyzer/enums.js +97 -40
  19. package/dist/analyzer/enums.js.map +1 -1
  20. package/dist/analyzer/operations.js +11 -1
  21. package/dist/analyzer/operations.js.map +1 -1
  22. package/dist/analyzer/patternMatching.js +1 -1
  23. package/dist/analyzer/patternMatching.js.map +1 -1
  24. package/dist/analyzer/properties.js +3 -3
  25. package/dist/analyzer/properties.js.map +1 -1
  26. package/dist/analyzer/scope.d.ts +4 -0
  27. package/dist/analyzer/scope.js +6 -1
  28. package/dist/analyzer/scope.js.map +1 -1
  29. package/dist/analyzer/sourceFile.js +13 -5
  30. package/dist/analyzer/sourceFile.js.map +1 -1
  31. package/dist/analyzer/typeEvaluator.js +119 -159
  32. package/dist/analyzer/typeEvaluator.js.map +1 -1
  33. package/dist/analyzer/typeGuards.js +56 -26
  34. package/dist/analyzer/typeGuards.js.map +1 -1
  35. package/dist/analyzer/typeUtils.d.ts +1 -1
  36. package/dist/analyzer/typeUtils.js +11 -78
  37. package/dist/analyzer/typeUtils.js.map +1 -1
  38. package/dist/analyzer/types.d.ts +0 -1
  39. package/dist/analyzer/types.js +5 -0
  40. package/dist/analyzer/types.js.map +1 -1
  41. package/dist/common/pythonVersion.d.ts +1 -0
  42. package/dist/common/pythonVersion.js +2 -1
  43. package/dist/common/pythonVersion.js.map +1 -1
  44. package/dist/localization/localize.d.ts +6 -6
  45. package/dist/localization/localize.js +2 -2
  46. package/dist/localization/localize.js.map +1 -1
  47. package/dist/localization/package.nls.cs.json +0 -2
  48. package/dist/localization/package.nls.de.json +0 -2
  49. package/dist/localization/package.nls.en-us.json +3 -3
  50. package/dist/localization/package.nls.es.json +0 -2
  51. package/dist/localization/package.nls.fr.json +0 -2
  52. package/dist/localization/package.nls.it.json +0 -2
  53. package/dist/localization/package.nls.ja.json +0 -2
  54. package/dist/localization/package.nls.ko.json +1 -3
  55. package/dist/localization/package.nls.pl.json +0 -2
  56. package/dist/localization/package.nls.pt-br.json +0 -2
  57. package/dist/localization/package.nls.qps-ploc.json +0 -2
  58. package/dist/localization/package.nls.ru.json +0 -2
  59. package/dist/localization/package.nls.tr.json +0 -2
  60. package/dist/localization/package.nls.zh-cn.json +0 -2
  61. package/dist/localization/package.nls.zh-tw.json +0 -2
  62. package/dist/parser/parser.js +4 -3
  63. package/dist/parser/parser.js.map +1 -1
  64. package/dist/parser/tokenizerTypes.d.ts +1 -0
  65. package/dist/parser/tokenizerTypes.js +4 -0
  66. package/dist/parser/tokenizerTypes.js.map +1 -1
  67. package/dist/tests/completions.test.js +2 -2
  68. package/dist/tests/completions.test.js.map +1 -1
  69. package/dist/tests/typeEvaluator1.test.js +4 -0
  70. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  71. package/dist/tests/typeEvaluator2.test.js +8 -0
  72. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  73. package/dist/tests/typeEvaluator3.test.js +4 -0
  74. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  75. package/dist/tests/typeEvaluator4.test.js +6 -2
  76. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  77. package/dist/tests/typeEvaluator6.test.js +1 -1
  78. package/dist/tests/typeEvaluator7.test.js +1 -5
  79. package/dist/tests/typeEvaluator7.test.js.map +1 -1
  80. package/dist/tests/typeEvaluator8.test.js +4 -0
  81. package/dist/tests/typeEvaluator8.test.js.map +1 -1
  82. package/package.json +1 -1
@@ -1202,14 +1202,14 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
1202
1202
  }
1203
1203
  const exprTypeResult = this._evaluator.getTypeOfExpression(expression);
1204
1204
  let isExprFunction = true;
1205
- let isCoroutine = false;
1205
+ let isCoroutine = true;
1206
1206
  (0, typeUtils_1.doForEachSubtype)(exprTypeResult.type, (subtype) => {
1207
1207
  subtype = this._evaluator.makeTopLevelTypeVarsConcrete(subtype);
1208
1208
  if (!(0, types_1.isFunction)(subtype) && !(0, types_1.isOverloadedFunction)(subtype)) {
1209
1209
  isExprFunction = false;
1210
1210
  }
1211
- if ((0, types_1.isClassInstance)(subtype) && types_1.ClassType.isBuiltIn(subtype, 'Coroutine')) {
1212
- isCoroutine = true;
1211
+ if (!(0, types_1.isClassInstance)(subtype) || !types_1.ClassType.isBuiltIn(subtype, 'Coroutine')) {
1212
+ isCoroutine = false;
1213
1213
  }
1214
1214
  });
1215
1215
  if (isExprFunction) {
@@ -1681,6 +1681,15 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
1681
1681
  exemptBoundTypeVar = false;
1682
1682
  nameWalker.walk(node.returnTypeAnnotation);
1683
1683
  }
1684
+ if (node.functionAnnotationComment) {
1685
+ node.functionAnnotationComment.paramTypeAnnotations.forEach((expr) => {
1686
+ nameWalker.walk(expr);
1687
+ });
1688
+ if (node.functionAnnotationComment.returnTypeAnnotation) {
1689
+ exemptBoundTypeVar = false;
1690
+ nameWalker.walk(node.functionAnnotationComment.returnTypeAnnotation);
1691
+ }
1692
+ }
1684
1693
  localTypeVarUsage.forEach((usage) => {
1685
1694
  var _a;
1686
1695
  // Report error for local type variable that appears only once.
@@ -3194,7 +3203,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
3194
3203
  }
3195
3204
  }
3196
3205
  _conditionallyReportPrivateUsage(node) {
3197
- var _a;
3206
+ var _a, _b;
3198
3207
  if (this._fileInfo.diagnosticRuleSet.reportPrivateUsage === 'none') {
3199
3208
  return;
3200
3209
  }
@@ -3214,7 +3223,11 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
3214
3223
  if (!isPrivateName && !isProtectedName) {
3215
3224
  return;
3216
3225
  }
3217
- const declarations = this._evaluator.getDeclarationsForNameNode(node);
3226
+ // Get the declarations for this name node, but filter out
3227
+ // any variable declarations that are bound using nonlocal
3228
+ // or global explicit bindings.
3229
+ const declarations = (_b = this._evaluator
3230
+ .getDeclarationsForNameNode(node)) === null || _b === void 0 ? void 0 : _b.filter((decl) => decl.type !== 1 /* DeclarationType.Variable */ || !decl.isExplicitBinding);
3218
3231
  let primaryDeclaration = declarations && declarations.length > 0 ? declarations[declarations.length - 1] : undefined;
3219
3232
  if (!primaryDeclaration || primaryDeclaration.node === node) {
3220
3233
  return;
@@ -3531,9 +3544,10 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
3531
3544
  if (symbol.getTypedDeclarations().length > 0) {
3532
3545
  return;
3533
3546
  }
3534
- const symbolType = this._evaluator.getEffectiveTypeOfSymbol(symbol);
3547
+ const symbolType = (0, enums_1.transformTypeForEnumMember)(this._evaluator, classType, name);
3535
3548
  // Is this symbol a literal instance of the enum class?
3536
- if (!(0, types_1.isClassInstance)(symbolType) ||
3549
+ if (!symbolType ||
3550
+ !(0, types_1.isClassInstance)(symbolType) ||
3537
3551
  !types_1.ClassType.isSameGenericClass(symbolType, classType) ||
3538
3552
  !(symbolType.literalValue instanceof types_1.EnumLiteral)) {
3539
3553
  return;