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

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 (86) hide show
  1. package/dist/analyzer/backgroundAnalysisProgram.d.ts +1 -0
  2. package/dist/analyzer/backgroundAnalysisProgram.js +3 -0
  3. package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
  4. package/dist/analyzer/binder.js +7 -1
  5. package/dist/analyzer/binder.js.map +1 -1
  6. package/dist/analyzer/checker.d.ts +1 -1
  7. package/dist/analyzer/checker.js +29 -24
  8. package/dist/analyzer/checker.js.map +1 -1
  9. package/dist/analyzer/enums.js +140 -126
  10. package/dist/analyzer/enums.js.map +1 -1
  11. package/dist/analyzer/importResolver.d.ts +3 -2
  12. package/dist/analyzer/importResolver.js +80 -79
  13. package/dist/analyzer/importResolver.js.map +1 -1
  14. package/dist/analyzer/pythonPathUtils.d.ts +2 -0
  15. package/dist/analyzer/pythonPathUtils.js +20 -11
  16. package/dist/analyzer/pythonPathUtils.js.map +1 -1
  17. package/dist/analyzer/service.js +2 -5
  18. package/dist/analyzer/service.js.map +1 -1
  19. package/dist/analyzer/typeEvaluator.js +4 -5
  20. package/dist/analyzer/typeEvaluator.js.map +1 -1
  21. package/dist/analyzer/typeGuards.js +10 -7
  22. package/dist/analyzer/typeGuards.js.map +1 -1
  23. package/dist/backgroundAnalysis.js +2 -0
  24. package/dist/backgroundAnalysis.js.map +1 -1
  25. package/dist/backgroundThreadBase.d.ts +1 -0
  26. package/dist/backgroundThreadBase.js +5 -8
  27. package/dist/backgroundThreadBase.js.map +1 -1
  28. package/dist/common/languageServerInterface.d.ts +1 -1
  29. package/dist/common/realFileSystem.d.ts +1 -1
  30. package/dist/common/realFileSystem.js +10 -2
  31. package/dist/common/realFileSystem.js.map +1 -1
  32. package/dist/common/serviceProvider.d.ts +1 -0
  33. package/dist/common/serviceProvider.js +8 -0
  34. package/dist/common/serviceProvider.js.map +1 -1
  35. package/dist/languageServerBase.d.ts +3 -3
  36. package/dist/languageServerBase.js +7 -4
  37. package/dist/languageServerBase.js.map +1 -1
  38. package/dist/languageService/analyzerServiceExecutor.js +4 -1
  39. package/dist/languageService/analyzerServiceExecutor.js.map +1 -1
  40. package/dist/localization/localize.d.ts +4 -7
  41. package/dist/localization/localize.js +4 -2
  42. package/dist/localization/localize.js.map +1 -1
  43. package/dist/localization/package.nls.cs.json +0 -2
  44. package/dist/localization/package.nls.de.json +0 -2
  45. package/dist/localization/package.nls.en-us.json +12 -4
  46. package/dist/localization/package.nls.es.json +0 -2
  47. package/dist/localization/package.nls.fr.json +0 -2
  48. package/dist/localization/package.nls.it.json +0 -2
  49. package/dist/localization/package.nls.ja.json +0 -2
  50. package/dist/localization/package.nls.ko.json +0 -2
  51. package/dist/localization/package.nls.pl.json +0 -2
  52. package/dist/localization/package.nls.pt-br.json +0 -2
  53. package/dist/localization/package.nls.qps-ploc.json +0 -2
  54. package/dist/localization/package.nls.ru.json +0 -2
  55. package/dist/localization/package.nls.tr.json +0 -2
  56. package/dist/localization/package.nls.zh-cn.json +0 -2
  57. package/dist/localization/package.nls.zh-tw.json +0 -2
  58. package/dist/pyright.js +11 -4
  59. package/dist/pyright.js.map +1 -1
  60. package/dist/server.d.ts +2 -1
  61. package/dist/server.js +1 -1
  62. package/dist/server.js.map +1 -1
  63. package/dist/tests/config.test.js +451 -427
  64. package/dist/tests/config.test.js.map +1 -1
  65. package/dist/tests/harness/fourslash/testState.d.ts +3 -1
  66. package/dist/tests/harness/fourslash/testState.js +23 -23
  67. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  68. package/dist/tests/importResolver.test.js +537 -527
  69. package/dist/tests/importResolver.test.js.map +1 -1
  70. package/dist/tests/sourceFile.test.js +1 -0
  71. package/dist/tests/sourceFile.test.js.map +1 -1
  72. package/dist/tests/testUtils.js +1 -0
  73. package/dist/tests/testUtils.js.map +1 -1
  74. package/dist/tests/typeEvaluator1.test.js +1 -1
  75. package/dist/tests/typeEvaluator3.test.js +4 -0
  76. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  77. package/dist/tests/typeEvaluator5.test.js +1 -1
  78. package/dist/tests/typeEvaluator6.test.js +4 -0
  79. package/dist/tests/typeEvaluator6.test.js.map +1 -1
  80. package/dist/tests/uri.test.js +3 -0
  81. package/dist/tests/uri.test.js.map +1 -1
  82. package/dist/tests/zipfs.test.js +2 -0
  83. package/dist/tests/zipfs.test.js.map +1 -1
  84. package/dist/workspaceFactory.d.ts +2 -1
  85. package/dist/workspaceFactory.js.map +1 -1
  86. package/package.json +1 -1
@@ -4309,7 +4309,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
4309
4309
  }
4310
4310
  const overloads = types_1.OverloadedType.getOverloads(typeOfSymbol);
4311
4311
  const implementation = types_1.OverloadedType.getImplementation(typeOfSymbol);
4312
- this._validateOverloadFinalConsistency(overloads, implementation);
4312
+ this._validateOverloadFinalOverride(overloads, implementation);
4313
4313
  this._validateOverloadAbstractConsistency(overloads, implementation);
4314
4314
  });
4315
4315
  }
@@ -4345,33 +4345,31 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
4345
4345
  }
4346
4346
  });
4347
4347
  }
4348
- _validateOverloadFinalConsistency(overloads, implementation) {
4349
- // If there's an implementation, it will determine whether the
4350
- // function is @final.
4351
- if (implementation && (0, types_1.isFunction)(implementation)) {
4352
- // If one or more of the overloads is marked @final but the
4353
- // implementation is not, report an error.
4354
- if (!types_1.FunctionType.isFinal(implementation)) {
4355
- overloads.forEach((overload) => {
4356
- if (types_1.FunctionType.isFinal(overload) && overload.shared.declaration?.node) {
4357
- this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportInconsistentOverload, localize_1.LocMessage.overloadFinalInconsistencyImpl().format({
4358
- name: overload.shared.name,
4359
- }), (0, declarationUtils_1.getNameNodeForDeclaration)(overload.shared.declaration) ?? overload.shared.declaration.node);
4360
- }
4361
- });
4362
- }
4363
- return;
4364
- }
4365
- if (overloads.length > 0 && !types_1.FunctionType.isFinal(overloads[0])) {
4366
- overloads.slice(1).forEach((overload, index) => {
4348
+ _validateOverloadFinalOverride(overloads, implementation) {
4349
+ // If there's an implementation, the overloads are not allowed to be marked final or override.
4350
+ if (implementation) {
4351
+ overloads.forEach((overload) => {
4367
4352
  if (types_1.FunctionType.isFinal(overload) && overload.shared.declaration?.node) {
4368
- this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportInconsistentOverload, localize_1.LocMessage.overloadFinalInconsistencyNoImpl().format({
4369
- name: overload.shared.name,
4370
- index: index + 2,
4371
- }), (0, declarationUtils_1.getNameNodeForDeclaration)(overload.shared.declaration) ?? overload.shared.declaration.node);
4353
+ this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportInconsistentOverload, localize_1.LocMessage.overloadFinalImpl(), (0, declarationUtils_1.getNameNodeForDeclaration)(overload.shared.declaration) ?? overload.shared.declaration.node);
4354
+ }
4355
+ if (types_1.FunctionType.isOverridden(overload) && overload.shared.declaration?.node) {
4356
+ this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportInconsistentOverload, localize_1.LocMessage.overloadOverrideImpl(), (0, declarationUtils_1.getNameNodeForDeclaration)(overload.shared.declaration) ?? overload.shared.declaration.node);
4372
4357
  }
4373
4358
  });
4359
+ return;
4374
4360
  }
4361
+ // If there's not an implementation, only the first overload can be marked final.
4362
+ if (overloads.length === 0) {
4363
+ return;
4364
+ }
4365
+ overloads.slice(1).forEach((overload, index) => {
4366
+ if (types_1.FunctionType.isFinal(overload) && overload.shared.declaration?.node) {
4367
+ this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportInconsistentOverload, localize_1.LocMessage.overloadFinalNoImpl(), (0, declarationUtils_1.getNameNodeForDeclaration)(overload.shared.declaration) ?? overload.shared.declaration.node);
4368
+ }
4369
+ if (types_1.FunctionType.isOverridden(overload) && overload.shared.declaration?.node) {
4370
+ this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportInconsistentOverload, localize_1.LocMessage.overloadOverrideNoImpl(), (0, declarationUtils_1.getNameNodeForDeclaration)(overload.shared.declaration) ?? overload.shared.declaration.node);
4371
+ }
4372
+ });
4375
4373
  }
4376
4374
  // For a TypedDict class that derives from another TypedDict class
4377
4375
  // that is closed, verify that any new keys are compatible with the
@@ -4562,6 +4560,13 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
4562
4560
  if (impl && (0, types_1.isFunction)(impl)) {
4563
4561
  overrideFunction = impl;
4564
4562
  }
4563
+ // If there is no implementation present, use the first overload.
4564
+ if (!impl) {
4565
+ const overloads = types_1.OverloadedType.getOverloads(overrideType);
4566
+ if (overloads.length > 0) {
4567
+ overrideFunction = overloads[0];
4568
+ }
4569
+ }
4565
4570
  }
4566
4571
  else if ((0, types_1.isClassInstance)(overrideType) && types_1.ClassType.isPropertyClass(overrideType)) {
4567
4572
  if (overrideType.priv.fgetInfo) {