@zzzen/pyright-internal 1.2.0-dev.20230611 → 1.2.0-dev.20230618

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 (58) hide show
  1. package/dist/analyzer/checker.js +11 -3
  2. package/dist/analyzer/checker.js.map +1 -1
  3. package/dist/analyzer/constraintSolver.js +4 -1
  4. package/dist/analyzer/constraintSolver.js.map +1 -1
  5. package/dist/analyzer/constructors.js +3 -2
  6. package/dist/analyzer/constructors.js.map +1 -1
  7. package/dist/analyzer/dataClasses.js +1 -1
  8. package/dist/analyzer/dataClasses.js.map +1 -1
  9. package/dist/analyzer/program.d.ts +2 -2
  10. package/dist/analyzer/program.js +2 -25
  11. package/dist/analyzer/program.js.map +1 -1
  12. package/dist/analyzer/protocols.d.ts +1 -1
  13. package/dist/analyzer/protocols.js +47 -26
  14. package/dist/analyzer/protocols.js.map +1 -1
  15. package/dist/analyzer/service.d.ts +2 -2
  16. package/dist/analyzer/service.js +2 -7
  17. package/dist/analyzer/service.js.map +1 -1
  18. package/dist/analyzer/typeEvaluator.js +216 -82
  19. package/dist/analyzer/typeEvaluator.js.map +1 -1
  20. package/dist/analyzer/typeEvaluatorTypes.d.ts +3 -2
  21. package/dist/analyzer/typeEvaluatorTypes.js +2 -0
  22. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  23. package/dist/analyzer/typeGuards.js +1 -1
  24. package/dist/analyzer/typeGuards.js.map +1 -1
  25. package/dist/analyzer/typeUtils.d.ts +10 -11
  26. package/dist/analyzer/typeUtils.js +57 -44
  27. package/dist/analyzer/typeUtils.js.map +1 -1
  28. package/dist/analyzer/types.d.ts +2 -0
  29. package/dist/analyzer/types.js +7 -3
  30. package/dist/analyzer/types.js.map +1 -1
  31. package/dist/common/extensibility.d.ts +6 -2
  32. package/dist/common/extensibility.js.map +1 -1
  33. package/dist/common/workspaceEditUtils.d.ts +3 -3
  34. package/dist/common/workspaceEditUtils.js +23 -13
  35. package/dist/common/workspaceEditUtils.js.map +1 -1
  36. package/dist/languageServerBase.d.ts +48 -0
  37. package/dist/languageServerBase.js +3 -3
  38. package/dist/languageServerBase.js.map +1 -1
  39. package/dist/languageService/completionProvider.js +2 -0
  40. package/dist/languageService/completionProvider.js.map +1 -1
  41. package/dist/localization/localize.d.ts +1 -0
  42. package/dist/localization/localize.js +1 -0
  43. package/dist/localization/localize.js.map +1 -1
  44. package/dist/localization/package.nls.en-us.json +1 -0
  45. package/dist/parser/parser.js +5 -2
  46. package/dist/parser/parser.js.map +1 -1
  47. package/dist/pyright.js +1 -1
  48. package/dist/pyright.js.map +1 -1
  49. package/dist/tests/typeEvaluator1.test.js +1 -1
  50. package/dist/tests/typeEvaluator2.test.js +17 -1
  51. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  52. package/dist/tests/typeEvaluator3.test.js +5 -1
  53. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  54. package/dist/tests/typeEvaluator4.test.js +1 -1
  55. package/dist/tests/typeEvaluator5.test.js +1 -1
  56. package/dist/tests/workspaceEditUtils.test.js +2 -3
  57. package/dist/tests/workspaceEditUtils.test.js.map +1 -1
  58. package/package.json +1 -1
@@ -3738,7 +3738,8 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
3738
3738
  }
3739
3739
  }
3740
3740
  if (overrideFunction) {
3741
- if (!this._evaluator.validateOverrideMethod(overriddenType, overrideFunction, diagAddendum,
3741
+ if (!this._evaluator.validateOverrideMethod(overriddenType, overrideFunction,
3742
+ /* baseClass */ undefined, diagAddendum,
3742
3743
  /* enforceParamNameMatch */ true)) {
3743
3744
  const decl = overrideFunction.details.declaration;
3744
3745
  if (decl && decl.type === 5 /* Function */) {
@@ -3826,6 +3827,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
3826
3827
  if (!mroBaseClass) {
3827
3828
  continue;
3828
3829
  }
3830
+ (0, debug_1.assert)((0, types_1.isClass)(mroBaseClass));
3829
3831
  const baseClassAndSymbol = (0, typeUtils_1.lookUpClassMember)(mroBaseClass, name, 0 /* Default */);
3830
3832
  if (!baseClassAndSymbol) {
3831
3833
  continue;
@@ -3945,7 +3947,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
3945
3947
  // Don't check certain magic functions or private symbols.
3946
3948
  if (!exemptMethods.some((exempt) => exempt === memberName) &&
3947
3949
  !SymbolNameUtils.isPrivateName(memberName)) {
3948
- if (!this._evaluator.validateOverrideMethod(baseType, overrideType, diagAddendum, enforceParamNameMatch)) {
3950
+ if (!this._evaluator.validateOverrideMethod(baseType, overrideType, childClassType, diagAddendum, enforceParamNameMatch)) {
3949
3951
  const decl = (0, types_1.isFunction)(overrideType) && overrideType.details.declaration
3950
3952
  ? overrideType.details.declaration
3951
3953
  : (0, symbolUtils_1.getLastTypedDeclaredForSymbol)(overrideSymbol);
@@ -4042,7 +4044,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
4042
4044
  else {
4043
4045
  const subclassMethodType = (0, typeUtils_1.partiallySpecializeType)(this._evaluator.getEffectiveTypeOfSymbol(subclassPropMethod), childClassType);
4044
4046
  if ((0, types_1.isFunction)(subclassMethodType)) {
4045
- if (!this._evaluator.validateOverrideMethod(baseClassMethodType, subclassMethodType, diagAddendum.createAddendum())) {
4047
+ if (!this._evaluator.validateOverrideMethod(baseClassMethodType, subclassMethodType, childClassType, diagAddendum.createAddendum())) {
4046
4048
  diagAddendum.addMessage(localize_1.Localizer.DiagnosticAddendum.propertyMethodIncompatible().format({
4047
4049
  name: methodName,
4048
4050
  }));
@@ -4331,6 +4333,12 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
4331
4333
  if ((0, types_1.isClassInstance)(paramType) && types_1.ClassType.isProtocolClass(paramType)) {
4332
4334
  return;
4333
4335
  }
4336
+ // If the method starts with a `*args: P.args`, skip the check.
4337
+ if (paramInfo.category === 1 /* ArgsList */ &&
4338
+ (0, types_1.isParamSpec)(paramInfo.type) &&
4339
+ paramInfo.type.paramSpecAccess === 'args') {
4340
+ return;
4341
+ }
4334
4342
  // Don't enforce this for an overloaded method because the "self" param
4335
4343
  // annotation can be used as a filter for the overload. This differs from
4336
4344
  // mypy, which enforces this check for overloads, but there are legitimate