@zzzen/pyright-internal 1.2.0-dev.20250126 → 1.2.0-dev.20250209

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 (67) hide show
  1. package/dist/analyzer/binder.js +18 -11
  2. package/dist/analyzer/binder.js.map +1 -1
  3. package/dist/analyzer/checker.d.ts +1 -0
  4. package/dist/analyzer/checker.js +23 -5
  5. package/dist/analyzer/checker.js.map +1 -1
  6. package/dist/analyzer/codeFlowEngine.js +2 -2
  7. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  8. package/dist/analyzer/dataClasses.js +4 -4
  9. package/dist/analyzer/dataClasses.js.map +1 -1
  10. package/dist/analyzer/parameterUtils.d.ts +4 -1
  11. package/dist/analyzer/parameterUtils.js +7 -3
  12. package/dist/analyzer/parameterUtils.js.map +1 -1
  13. package/dist/analyzer/parseTreeUtils.d.ts +1 -0
  14. package/dist/analyzer/parseTreeUtils.js +14 -0
  15. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  16. package/dist/analyzer/tuples.d.ts +1 -0
  17. package/dist/analyzer/tuples.js +34 -0
  18. package/dist/analyzer/tuples.js.map +1 -1
  19. package/dist/analyzer/typeEvaluator.js +193 -120
  20. package/dist/analyzer/typeEvaluator.js.map +1 -1
  21. package/dist/analyzer/typeUtils.d.ts +2 -1
  22. package/dist/analyzer/typeUtils.js +8 -2
  23. package/dist/analyzer/typeUtils.js.map +1 -1
  24. package/dist/analyzer/typedDicts.js +25 -10
  25. package/dist/analyzer/typedDicts.js.map +1 -1
  26. package/dist/common/envVarUtils.js +4 -0
  27. package/dist/common/envVarUtils.js.map +1 -1
  28. package/dist/localization/localize.d.ts +4 -1
  29. package/dist/localization/localize.js +2 -1
  30. package/dist/localization/localize.js.map +1 -1
  31. package/dist/localization/package.nls.cs.json +8 -4
  32. package/dist/localization/package.nls.de.json +8 -4
  33. package/dist/localization/package.nls.en-us.json +7 -3
  34. package/dist/localization/package.nls.es.json +8 -4
  35. package/dist/localization/package.nls.fr.json +8 -4
  36. package/dist/localization/package.nls.it.json +8 -4
  37. package/dist/localization/package.nls.ja.json +8 -4
  38. package/dist/localization/package.nls.ko.json +8 -4
  39. package/dist/localization/package.nls.pl.json +8 -4
  40. package/dist/localization/package.nls.pt-br.json +8 -4
  41. package/dist/localization/package.nls.qps-ploc.json +4 -0
  42. package/dist/localization/package.nls.ru.json +8 -4
  43. package/dist/localization/package.nls.tr.json +8 -4
  44. package/dist/localization/package.nls.zh-cn.json +8 -4
  45. package/dist/localization/package.nls.zh-tw.json +8 -4
  46. package/dist/parser/parser.js +6 -3
  47. package/dist/parser/parser.js.map +1 -1
  48. package/dist/parser/tokenizer.js +9 -7
  49. package/dist/parser/tokenizer.js.map +1 -1
  50. package/dist/tests/fourslash/completions.vardecls.fourslash.js +2 -1
  51. package/dist/tests/fourslash/completions.vardecls.fourslash.js.map +1 -1
  52. package/dist/tests/fourslash/hover.async.fourslash.js +1 -1
  53. package/dist/tests/fourslash/hover.async.fourslash.js.map +1 -1
  54. package/dist/tests/harness/fourslash/fourSlashTypes.d.ts +2 -1
  55. package/dist/tests/harness/fourslash/fourSlashTypes.js +2 -0
  56. package/dist/tests/harness/fourslash/fourSlashTypes.js.map +1 -1
  57. package/dist/tests/harness/fourslash/testState.js +7 -0
  58. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  59. package/dist/tests/typeEvaluator1.test.js +1 -1
  60. package/dist/tests/typeEvaluator2.test.js +1 -1
  61. package/dist/tests/typeEvaluator4.test.js +7 -3
  62. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  63. package/dist/tests/typeEvaluator5.test.js +3 -3
  64. package/dist/tests/typeEvaluator6.test.js +2 -2
  65. package/dist/tests/typeEvaluator7.test.js +5 -1
  66. package/dist/tests/typeEvaluator7.test.js.map +1 -1
  67. package/package.json +1 -1
@@ -62,7 +62,7 @@ const symbolNameUtils_1 = require("./symbolNameUtils");
62
62
  // amount to the complexity factor. Without this, the complexity
63
63
  // calculation fails to take into account large numbers of non-cyclical
64
64
  // flow nodes. This number is somewhat arbitrary and is tuned empirically.
65
- const flowNodeComplexityContribution = 0.05;
65
+ const flowNodeComplexityContribution = 0.025;
66
66
  class Binder extends parseTreeWalker_1.ParseTreeWalker {
67
67
  constructor(fileInfo, _moduleSymbolOnly = false) {
68
68
  super();
@@ -729,6 +729,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
729
729
  this.walk(node.d.rightExpr);
730
730
  this._bindPossibleTupleNamedTarget(node.d.destExpr);
731
731
  this._createAssignmentTargetFlowNodes(node.d.destExpr, /* walkTargets */ false, /* unbound */ false);
732
+ this._addInferredTypeAssignmentForVariable(node.d.destExpr, node.d.rightExpr);
732
733
  // Is this an assignment to dunder all of the form
733
734
  // __all__ += <expression>?
734
735
  if (node.d.operator === 1 /* OperatorType.AddEqual */ &&
@@ -3191,17 +3192,23 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
3191
3192
  // a decorator that tells us otherwise.
3192
3193
  isInstanceMember = true;
3193
3194
  for (const decorator of methodNode.d.decorators) {
3195
+ let decoratorName;
3194
3196
  if (decorator.d.expr.nodeType === 38 /* ParseNodeType.Name */) {
3195
- const decoratorName = decorator.d.expr.d.value;
3196
- if (decoratorName === 'staticmethod') {
3197
- // A static method doesn't have a "self" or "cls" parameter.
3198
- return undefined;
3199
- }
3200
- else if (decoratorName === 'classmethod') {
3201
- // A classmethod implies that the first parameter is "cls".
3202
- isInstanceMember = false;
3203
- break;
3204
- }
3197
+ decoratorName = decorator.d.expr.d.value;
3198
+ }
3199
+ else if (decorator.d.expr.nodeType === 35 /* ParseNodeType.MemberAccess */ &&
3200
+ decorator.d.expr.d.leftExpr.nodeType === 38 /* ParseNodeType.Name */ &&
3201
+ decorator.d.expr.d.leftExpr.d.value === 'builtins') {
3202
+ decoratorName = decorator.d.expr.d.member.d.value;
3203
+ }
3204
+ if (decoratorName === 'staticmethod') {
3205
+ // A static method doesn't have a "self" or "cls" parameter.
3206
+ return undefined;
3207
+ }
3208
+ else if (decoratorName === 'classmethod') {
3209
+ // A classmethod implies that the first parameter is "cls".
3210
+ isInstanceMember = false;
3211
+ break;
3205
3212
  }
3206
3213
  }
3207
3214
  }