@zzzen/pyright-internal 1.2.0-dev.20231015 → 1.2.0-dev.20231022

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 (81) hide show
  1. package/dist/analyzer/checker.js +6 -13
  2. package/dist/analyzer/checker.js.map +1 -1
  3. package/dist/analyzer/constraintSolver.js +65 -28
  4. package/dist/analyzer/constraintSolver.js.map +1 -1
  5. package/dist/analyzer/constructors.js +3 -4
  6. package/dist/analyzer/constructors.js.map +1 -1
  7. package/dist/analyzer/patternMatching.js +4 -0
  8. package/dist/analyzer/patternMatching.js.map +1 -1
  9. package/dist/analyzer/properties.js +6 -2
  10. package/dist/analyzer/properties.js.map +1 -1
  11. package/dist/analyzer/protocols.js +28 -30
  12. package/dist/analyzer/protocols.js.map +1 -1
  13. package/dist/analyzer/sourceFile.js +10 -4
  14. package/dist/analyzer/sourceFile.js.map +1 -1
  15. package/dist/analyzer/typeEvaluator.js +114 -101
  16. package/dist/analyzer/typeEvaluator.js.map +1 -1
  17. package/dist/analyzer/typeEvaluatorTypes.d.ts +1 -1
  18. package/dist/analyzer/typeGuards.js +28 -20
  19. package/dist/analyzer/typeGuards.js.map +1 -1
  20. package/dist/analyzer/typePrinter.js +4 -1
  21. package/dist/analyzer/typePrinter.js.map +1 -1
  22. package/dist/analyzer/typeUtils.d.ts +9 -1
  23. package/dist/analyzer/typeUtils.js +51 -46
  24. package/dist/analyzer/typeUtils.js.map +1 -1
  25. package/dist/analyzer/typedDicts.js +99 -27
  26. package/dist/analyzer/typedDicts.js.map +1 -1
  27. package/dist/analyzer/types.d.ts +2 -0
  28. package/dist/analyzer/types.js +27 -3
  29. package/dist/analyzer/types.js.map +1 -1
  30. package/dist/common/pathUtils.d.ts +3 -1
  31. package/dist/common/pathUtils.js +78 -27
  32. package/dist/common/pathUtils.js.map +1 -1
  33. package/dist/common/realFileSystem.js +11 -1
  34. package/dist/common/realFileSystem.js.map +1 -1
  35. package/dist/common/serviceProviderExtensions.d.ts +1 -3
  36. package/dist/common/serviceProviderExtensions.js +0 -7
  37. package/dist/common/serviceProviderExtensions.js.map +1 -1
  38. package/dist/common/uriParser.d.ts +10 -1
  39. package/dist/common/uriParser.js.map +1 -1
  40. package/dist/languageServerBase.d.ts +0 -2
  41. package/dist/languageServerBase.js +0 -14
  42. package/dist/languageServerBase.js.map +1 -1
  43. package/dist/languageService/hoverProvider.d.ts +6 -2
  44. package/dist/languageService/hoverProvider.js +33 -65
  45. package/dist/languageService/hoverProvider.js.map +1 -1
  46. package/dist/languageService/referencesProvider.js +1 -0
  47. package/dist/languageService/referencesProvider.js.map +1 -1
  48. package/dist/languageService/tooltipUtils.js +1 -3
  49. package/dist/languageService/tooltipUtils.js.map +1 -1
  50. package/dist/localization/localize.d.ts +4 -3
  51. package/dist/localization/localize.js +1 -1
  52. package/dist/localization/localize.js.map +1 -1
  53. package/dist/localization/package.nls.cs.json +6 -1
  54. package/dist/localization/package.nls.de.json +6 -1
  55. package/dist/localization/package.nls.en-us.json +1 -1
  56. package/dist/localization/package.nls.es.json +6 -1
  57. package/dist/localization/package.nls.fr.json +6 -1
  58. package/dist/localization/package.nls.it.json +6 -1
  59. package/dist/localization/package.nls.ja.json +6 -1
  60. package/dist/localization/package.nls.ko.json +6 -1
  61. package/dist/localization/package.nls.pl.json +6 -1
  62. package/dist/localization/package.nls.pt-br.json +6 -1
  63. package/dist/localization/package.nls.qps-ploc.json +6 -1
  64. package/dist/localization/package.nls.ru.json +6 -1
  65. package/dist/localization/package.nls.tr.json +6 -1
  66. package/dist/localization/package.nls.zh-cn.json +6 -1
  67. package/dist/localization/package.nls.zh-tw.json +6 -1
  68. package/dist/pyrightFileSystem.d.ts +1 -15
  69. package/dist/pyrightFileSystem.js +1 -57
  70. package/dist/pyrightFileSystem.js.map +1 -1
  71. package/dist/tests/harness/vfs/filesystem.js +4 -0
  72. package/dist/tests/harness/vfs/filesystem.js.map +1 -1
  73. package/dist/tests/harness/vfs/pathValidation.js +10 -1
  74. package/dist/tests/harness/vfs/pathValidation.js.map +1 -1
  75. package/dist/tests/pyrightFileSystem.test.js +0 -20
  76. package/dist/tests/pyrightFileSystem.test.js.map +1 -1
  77. package/dist/tests/typeEvaluator2.test.js +10 -2
  78. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  79. package/dist/tests/typeEvaluator5.test.js +7 -1
  80. package/dist/tests/typeEvaluator5.test.js.map +1 -1
  81. package/package.json +1 -1
@@ -2646,12 +2646,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
2646
2646
  }
2647
2647
  break;
2648
2648
  case 3 /* None */:
2649
- if (!isInstanceCheck) {
2650
- isSupported = false;
2651
- }
2652
- else {
2653
- isSupported = types_1.TypeBase.isInstantiable(subtype);
2654
- }
2649
+ isSupported = types_1.TypeBase.isInstantiable(subtype);
2655
2650
  break;
2656
2651
  case 5 /* Function */:
2657
2652
  if (!types_1.TypeBase.isInstantiable(subtype) || subtype.isCallableWithTypeArgs) {
@@ -3635,8 +3630,6 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
3635
3630
  }
3636
3631
  newMemberType = this._evaluator.bindFunctionToClassOrObject(classType, newMemberType,
3637
3632
  /* memberClass */ undefined,
3638
- /* errorNode */ undefined,
3639
- /* recursionCount */ undefined,
3640
3633
  /* treatConstructorAsClassMember */ true);
3641
3634
  if (!newMemberType) {
3642
3635
  return;
@@ -3746,10 +3739,6 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
3746
3739
  if (matchingMroClass && (0, types_1.isInstantiableClass)(matchingMroClass)) {
3747
3740
  const matchingMroObject = types_1.ClassType.cloneAsInstance(matchingMroClass);
3748
3741
  const baseClassMroObject = types_1.ClassType.cloneAsInstance(specializedBaseClassMroClass);
3749
- // If the types match exactly, we can shortcut the remainder of the MRO chain.
3750
- // if (isTypeSame(matchingMroObject, baseClassMroObject)) {
3751
- // break;
3752
- // }
3753
3742
  if (!this._evaluator.assignType(matchingMroObject, baseClassMroObject)) {
3754
3743
  const diag = new diagnostic_1.DiagnosticAddendum();
3755
3744
  const baseClassObject = (0, typeUtils_1.convertToInstance)(baseClass);
@@ -4086,8 +4075,12 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
4086
4075
  // false positives.
4087
4076
  const enforceParamNameMatch = !SymbolNameUtils.isDunderName(memberName);
4088
4077
  // Don't check certain magic functions or private symbols.
4078
+ // Also, skip this check if the class is a TypedDict. The methods for a TypedDict
4079
+ // are synthesized, and they can result in many overloads. We assume they
4080
+ // are correct and will not produce any errors.
4089
4081
  if (!exemptMethods.some((exempt) => exempt === memberName) &&
4090
- !SymbolNameUtils.isPrivateName(memberName)) {
4082
+ !SymbolNameUtils.isPrivateName(memberName) &&
4083
+ !types_1.ClassType.isTypedDictClass(childClassType)) {
4091
4084
  if (!this._evaluator.validateOverrideMethod(baseType, overrideType, childClassType, diagAddendum, enforceParamNameMatch)) {
4092
4085
  const decl = (0, types_1.isFunction)(overrideType) && overrideType.details.declaration
4093
4086
  ? overrideType.details.declaration