@zzzen/pyright-internal 1.2.0-dev.20231126 → 1.2.0-dev.20231203

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 (95) hide show
  1. package/dist/analyzer/binder.js +3 -0
  2. package/dist/analyzer/binder.js.map +1 -1
  3. package/dist/analyzer/checker.d.ts +4 -1
  4. package/dist/analyzer/checker.js +146 -9
  5. package/dist/analyzer/checker.js.map +1 -1
  6. package/dist/analyzer/codeFlowEngine.js +7 -0
  7. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  8. package/dist/analyzer/commentUtils.js +7 -0
  9. package/dist/analyzer/commentUtils.js.map +1 -1
  10. package/dist/analyzer/constraintSolver.js +11 -0
  11. package/dist/analyzer/constraintSolver.js.map +1 -1
  12. package/dist/analyzer/constructors.js +2 -1
  13. package/dist/analyzer/constructors.js.map +1 -1
  14. package/dist/analyzer/dataClasses.js +57 -46
  15. package/dist/analyzer/dataClasses.js.map +1 -1
  16. package/dist/analyzer/operations.js +16 -14
  17. package/dist/analyzer/operations.js.map +1 -1
  18. package/dist/analyzer/protocols.js +27 -13
  19. package/dist/analyzer/protocols.js.map +1 -1
  20. package/dist/analyzer/typeEvaluator.js +126 -129
  21. package/dist/analyzer/typeEvaluator.js.map +1 -1
  22. package/dist/analyzer/typeEvaluatorTypes.d.ts +1 -1
  23. package/dist/analyzer/typeEvaluatorTypes.js +1 -1
  24. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  25. package/dist/analyzer/typeUtils.d.ts +1 -1
  26. package/dist/analyzer/typeUtils.js +16 -12
  27. package/dist/analyzer/typeUtils.js.map +1 -1
  28. package/dist/analyzer/typeVarContext.d.ts +2 -0
  29. package/dist/analyzer/typeVarContext.js +27 -0
  30. package/dist/analyzer/typeVarContext.js.map +1 -1
  31. package/dist/analyzer/typedDicts.js +2 -32
  32. package/dist/analyzer/typedDicts.js.map +1 -1
  33. package/dist/analyzer/types.d.ts +3 -8
  34. package/dist/analyzer/types.js +9 -16
  35. package/dist/analyzer/types.js.map +1 -1
  36. package/dist/commands/commandController.js +1 -2
  37. package/dist/commands/commandController.js.map +1 -1
  38. package/dist/commands/commands.d.ts +0 -1
  39. package/dist/commands/commands.js +0 -1
  40. package/dist/commands/commands.js.map +1 -1
  41. package/dist/common/configOptions.d.ts +1 -0
  42. package/dist/common/configOptions.js +91 -3
  43. package/dist/common/configOptions.js.map +1 -1
  44. package/dist/common/diagnostic.d.ts +0 -4
  45. package/dist/common/diagnostic.js.map +1 -1
  46. package/dist/languageService/codeActionProvider.js +0 -14
  47. package/dist/languageService/codeActionProvider.js.map +1 -1
  48. package/dist/languageService/quickActions.d.ts +1 -2
  49. package/dist/languageService/quickActions.js +0 -80
  50. package/dist/languageService/quickActions.js.map +1 -1
  51. package/dist/localization/localize.d.ts +12 -9
  52. package/dist/localization/localize.js +6 -4
  53. package/dist/localization/localize.js.map +1 -1
  54. package/dist/localization/package.nls.cs.json +0 -4
  55. package/dist/localization/package.nls.de.json +0 -4
  56. package/dist/localization/package.nls.en-us.json +7 -5
  57. package/dist/localization/package.nls.es.json +2 -6
  58. package/dist/localization/package.nls.fr.json +0 -4
  59. package/dist/localization/package.nls.it.json +0 -4
  60. package/dist/localization/package.nls.ja.json +0 -4
  61. package/dist/localization/package.nls.ko.json +0 -4
  62. package/dist/localization/package.nls.pl.json +0 -4
  63. package/dist/localization/package.nls.pt-br.json +0 -4
  64. package/dist/localization/package.nls.qps-ploc.json +0 -4
  65. package/dist/localization/package.nls.ru.json +0 -4
  66. package/dist/localization/package.nls.tr.json +0 -4
  67. package/dist/localization/package.nls.zh-cn.json +0 -4
  68. package/dist/localization/package.nls.zh-tw.json +0 -4
  69. package/dist/pyrightFileSystem.js +1 -1
  70. package/dist/pyrightFileSystem.js.map +1 -1
  71. package/dist/readonlyAugmentedFileSystem.d.ts +1 -1
  72. package/dist/readonlyAugmentedFileSystem.js +15 -5
  73. package/dist/readonlyAugmentedFileSystem.js.map +1 -1
  74. package/dist/server.js +1 -1
  75. package/dist/server.js.map +1 -1
  76. package/dist/tests/checker.test.js +8 -0
  77. package/dist/tests/checker.test.js.map +1 -1
  78. package/dist/tests/fourslash/fourslash.d.ts +1 -2
  79. package/dist/tests/harness/fourslash/testState.Consts.d.ts +1 -2
  80. package/dist/tests/harness/fourslash/testState.Consts.js +0 -1
  81. package/dist/tests/harness/fourslash/testState.Consts.js.map +1 -1
  82. package/dist/tests/harness/fourslash/testState.js +1 -1
  83. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  84. package/dist/tests/pyrightFileSystem.test.js +48 -1
  85. package/dist/tests/pyrightFileSystem.test.js.map +1 -1
  86. package/dist/tests/typeEvaluator1.test.js +8 -5
  87. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  88. package/dist/tests/typeEvaluator2.test.js +3 -3
  89. package/dist/tests/typeEvaluator3.test.js +12 -9
  90. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  91. package/dist/tests/typeEvaluator4.test.js +6 -2
  92. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  93. package/dist/tests/typeEvaluator5.test.js +8 -4
  94. package/dist/tests/typeEvaluator5.test.js.map +1 -1
  95. package/package.json +1 -1
@@ -40,7 +40,7 @@ export declare const enum EvaluatorFlags {
40
40
  AllowUnpackedTupleOrTypeVarTuple = 2097152,
41
41
  InterpreterParsesStringLiteral = 4194304,
42
42
  AllowUnpackedTypedDict = 8388608,
43
- DisallowPep695TypeAlias = 16777216,
43
+ TreatPep695TypeAliasAsObject = 16777216,
44
44
  SkipConvertParamSpecToRuntimeObject = 33554432,
45
45
  DisallowNonTypeSpecialForms = 67108864,
46
46
  CallBaseDefaults = 16777218,
@@ -77,7 +77,7 @@ var EvaluatorFlags;
77
77
  // Allow Unpack annotation for TypedDict.
78
78
  EvaluatorFlags[EvaluatorFlags["AllowUnpackedTypedDict"] = 8388608] = "AllowUnpackedTypedDict";
79
79
  // Disallow a type alias defined with a "type" statement.
80
- EvaluatorFlags[EvaluatorFlags["DisallowPep695TypeAlias"] = 16777216] = "DisallowPep695TypeAlias";
80
+ EvaluatorFlags[EvaluatorFlags["TreatPep695TypeAliasAsObject"] = 16777216] = "TreatPep695TypeAliasAsObject";
81
81
  // If evaluation is a TypeVarType that is a ParamSpec, do
82
82
  // not convert it to its corresponding ParamSpec runtime object.
83
83
  EvaluatorFlags[EvaluatorFlags["SkipConvertParamSpecToRuntimeObject"] = 33554432] = "SkipConvertParamSpecToRuntimeObject";
@@ -1 +1 @@
1
- {"version":3,"file":"typeEvaluatorTypes.js","sourceRoot":"","sources":["../../../src/analyzer/typeEvaluatorTypes.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AA8CH,gEAAgE;AAChE,kDAAkD;AACrC,QAAA,0BAA0B,GAAG,EAAE,CAAC;AAE7C,IAAkB,cAyGjB;AAzGD,WAAkB,cAAc;IAC5B,mDAAQ,CAAA;IAER,uDAAuD;IACvD,mFAA6B,CAAA;IAE7B,0DAA0D;IAC1D,gEAAgE;IAChE,SAAS;IACT,yEAAwB,CAAA;IAExB,yDAAyD;IACzD,uFAA+B,CAAA;IAE/B,kCAAkC;IAClC,iGAAoC,CAAA;IAEpC,0CAA0C;IAC1C,sEAAsB,CAAA;IAEtB,6CAA6C;IAC7C,8EAA0B,CAAA;IAE1B,gDAAgD;IAChD,oFAA6B,CAAA;IAE7B,2DAA2D;IAC3D,4BAA4B;IAC5B,+FAAkC,CAAA;IAElC,gEAAgE;IAChE,6DAA6D;IAC7D,qBAAqB;IACrB,2FAAgC,CAAA;IAEhC,qEAAqE;IACrE,qFAA6B,CAAA;IAE7B,2DAA2D;IAC3D,gDAAgD;IAChD,wFAA+B,CAAA;IAE/B,8DAA8D;IAC9D,0BAA0B;IAC1B,oGAAqC,CAAA;IAErC,oEAAoE;IACpE,0BAA0B;IAC1B,oGAAqC,CAAA;IAErC,yDAAyD;IACzD,2DAA2D;IAC3D,mCAAmC;IACnC,gHAA2C,CAAA;IAE3C,yDAAyD;IACzD,6DAA6D;IAC7D,uDAAuD;IACvD,iHAA2C,CAAA;IAE3C,mDAAmD;IACnD,2FAAgC,CAAA;IAEhC,6CAA6C;IAC7C,gFAA0B,CAAA;IAE1B,mEAAmE;IACnE,wFAA8B,CAAA;IAE9B,iEAAiE;IACjE,iCAAiC;IACjC,4FAAgC,CAAA;IAEhC,wDAAwD;IACxD,2EAAuB,CAAA;IAEvB,uDAAuD;IACvD,iHAA0C,CAAA;IAE1C,6DAA6D;IAC7D,2DAA2D;IAC3D,oDAAoD;IACpD,6GAAwC,CAAA;IAExC,yCAAyC;IACzC,6FAAgC,CAAA;IAEhC,yDAAyD;IACzD,gGAAiC,CAAA;IAEjC,yDAAyD;IACzD,gEAAgE;IAChE,wHAA6C,CAAA;IAE7C,0DAA0D;IAC1D,wGAAqC,CAAA;IAErC,6DAA6D;IAC7D,kFAA4D,CAAA;IAE5D,sEAAsE;IACtE,6EAAmC,CAAA;IAEnC,sEAAsE;IACtE,kGAAoE,CAAA;AACxE,CAAC,EAzGiB,cAAc,8BAAd,cAAc,QAyG/B"}
1
+ {"version":3,"file":"typeEvaluatorTypes.js","sourceRoot":"","sources":["../../../src/analyzer/typeEvaluatorTypes.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AA8CH,gEAAgE;AAChE,kDAAkD;AACrC,QAAA,0BAA0B,GAAG,EAAE,CAAC;AAE7C,IAAkB,cAyGjB;AAzGD,WAAkB,cAAc;IAC5B,mDAAQ,CAAA;IAER,uDAAuD;IACvD,mFAA6B,CAAA;IAE7B,0DAA0D;IAC1D,gEAAgE;IAChE,SAAS;IACT,yEAAwB,CAAA;IAExB,yDAAyD;IACzD,uFAA+B,CAAA;IAE/B,kCAAkC;IAClC,iGAAoC,CAAA;IAEpC,0CAA0C;IAC1C,sEAAsB,CAAA;IAEtB,6CAA6C;IAC7C,8EAA0B,CAAA;IAE1B,gDAAgD;IAChD,oFAA6B,CAAA;IAE7B,2DAA2D;IAC3D,4BAA4B;IAC5B,+FAAkC,CAAA;IAElC,gEAAgE;IAChE,6DAA6D;IAC7D,qBAAqB;IACrB,2FAAgC,CAAA;IAEhC,qEAAqE;IACrE,qFAA6B,CAAA;IAE7B,2DAA2D;IAC3D,gDAAgD;IAChD,wFAA+B,CAAA;IAE/B,8DAA8D;IAC9D,0BAA0B;IAC1B,oGAAqC,CAAA;IAErC,oEAAoE;IACpE,0BAA0B;IAC1B,oGAAqC,CAAA;IAErC,yDAAyD;IACzD,2DAA2D;IAC3D,mCAAmC;IACnC,gHAA2C,CAAA;IAE3C,yDAAyD;IACzD,6DAA6D;IAC7D,uDAAuD;IACvD,iHAA2C,CAAA;IAE3C,mDAAmD;IACnD,2FAAgC,CAAA;IAEhC,6CAA6C;IAC7C,gFAA0B,CAAA;IAE1B,mEAAmE;IACnE,wFAA8B,CAAA;IAE9B,iEAAiE;IACjE,iCAAiC;IACjC,4FAAgC,CAAA;IAEhC,wDAAwD;IACxD,2EAAuB,CAAA;IAEvB,uDAAuD;IACvD,iHAA0C,CAAA;IAE1C,6DAA6D;IAC7D,2DAA2D;IAC3D,oDAAoD;IACpD,6GAAwC,CAAA;IAExC,yCAAyC;IACzC,6FAAgC,CAAA;IAEhC,yDAAyD;IACzD,0GAAsC,CAAA;IAEtC,yDAAyD;IACzD,gEAAgE;IAChE,wHAA6C,CAAA;IAE7C,0DAA0D;IAC1D,wGAAqC,CAAA;IAErC,6DAA6D;IAC7D,kFAAiE,CAAA;IAEjE,sEAAsE;IACtE,6EAAmC,CAAA;IAEnC,sEAAsE;IACtE,kGAAyE,CAAA;AAC7E,CAAC,EAzGiB,cAAc,8BAAd,cAAc,QAyG/B"}
@@ -161,7 +161,7 @@ export declare function getMembersForClass(classType: ClassType, symbolTable: Sy
161
161
  export declare function getMembersForModule(moduleType: ModuleType, symbolTable: SymbolTable): void;
162
162
  export declare function containsAnyRecursive(type: Type): boolean;
163
163
  export declare function containsAnyOrUnknown(type: Type, recurse: boolean): AnyType | UnknownType | undefined;
164
- export declare function isPartlyUnknown(type: Type, allowUnknownTypeArgsForClasses?: boolean, recursionCount?: number): boolean;
164
+ export declare function isPartlyUnknown(type: Type, recursionCount?: number): boolean;
165
165
  export declare function explodeGenericClass(classType: ClassType): Type;
166
166
  export declare function combineSameSizedTuples(type: Type, tupleType: Type | undefined): Type;
167
167
  export declare function specializeTupleClass(classType: ClassType, typeArgs: TupleTypeArgument[], isTypeArgumentExplicit?: boolean, isUnpackedTuple?: boolean): ClassType;
@@ -1998,7 +1998,7 @@ exports.containsAnyOrUnknown = containsAnyOrUnknown;
1998
1998
  // This function does not use the TypeWalker because it is called very frequently,
1999
1999
  // and allocating a memory walker object for every call significantly increases
2000
2000
  // peak memory usage.
2001
- function isPartlyUnknown(type, allowUnknownTypeArgsForClasses = false, recursionCount = 0) {
2001
+ function isPartlyUnknown(type, recursionCount = 0) {
2002
2002
  var _a, _b;
2003
2003
  if (recursionCount > types_1.maxTypeRecursionCount) {
2004
2004
  return false;
@@ -2010,25 +2010,27 @@ function isPartlyUnknown(type, allowUnknownTypeArgsForClasses = false, recursion
2010
2010
  // If this is a generic type alias, see if any of its type arguments
2011
2011
  // are either unspecified or are partially known.
2012
2012
  if ((_a = type.typeAliasInfo) === null || _a === void 0 ? void 0 : _a.typeArguments) {
2013
- if (type.typeAliasInfo.typeArguments.some((typeArg) => isPartlyUnknown(typeArg, allowUnknownTypeArgsForClasses, recursionCount))) {
2013
+ if (type.typeAliasInfo.typeArguments.some((typeArg) => isPartlyUnknown(typeArg, recursionCount))) {
2014
2014
  return true;
2015
2015
  }
2016
2016
  }
2017
2017
  // See if a union contains an unknown type.
2018
2018
  if ((0, types_1.isUnion)(type)) {
2019
- return ((0, types_1.findSubtype)(type, (subtype) => isPartlyUnknown(subtype, allowUnknownTypeArgsForClasses, recursionCount)) !==
2020
- undefined);
2019
+ return (0, types_1.findSubtype)(type, (subtype) => isPartlyUnknown(subtype, recursionCount)) !== undefined;
2021
2020
  }
2022
2021
  // See if an object or class has an unknown type argument.
2023
2022
  if ((0, types_1.isClass)(type)) {
2024
- if (types_1.TypeBase.isInstance(type)) {
2025
- allowUnknownTypeArgsForClasses = false;
2023
+ // If this is a reference to the class itself, as opposed to a reference
2024
+ // to a type that represents the class and its subclasses, don't flag
2025
+ // the type as partially unknown.
2026
+ if (!type.includeSubclasses) {
2027
+ return false;
2026
2028
  }
2027
- if (!allowUnknownTypeArgsForClasses && !types_1.ClassType.isPseudoGenericClass(type)) {
2029
+ if (!types_1.ClassType.isPseudoGenericClass(type)) {
2028
2030
  const typeArgs = ((_b = type.tupleTypeArguments) === null || _b === void 0 ? void 0 : _b.map((t) => t.type)) || type.typeArguments;
2029
2031
  if (typeArgs) {
2030
2032
  for (const argType of typeArgs) {
2031
- if (isPartlyUnknown(argType, allowUnknownTypeArgsForClasses, recursionCount)) {
2033
+ if (isPartlyUnknown(argType, recursionCount)) {
2032
2034
  return true;
2033
2035
  }
2034
2036
  }
@@ -2039,7 +2041,7 @@ function isPartlyUnknown(type, allowUnknownTypeArgsForClasses = false, recursion
2039
2041
  // See if a function has an unknown type.
2040
2042
  if ((0, types_1.isOverloadedFunction)(type)) {
2041
2043
  return types_1.OverloadedFunctionType.getOverloads(type).some((overload) => {
2042
- return isPartlyUnknown(overload, /* allowUnknownTypeArgsForClasses */ false, recursionCount);
2044
+ return isPartlyUnknown(overload, recursionCount);
2043
2045
  });
2044
2046
  }
2045
2047
  if ((0, types_1.isFunction)(type)) {
@@ -2047,14 +2049,14 @@ function isPartlyUnknown(type, allowUnknownTypeArgsForClasses = false, recursion
2047
2049
  // Ignore parameters such as "*" that have no name.
2048
2050
  if (type.details.parameters[i].name) {
2049
2051
  const paramType = types_1.FunctionType.getEffectiveParameterType(type, i);
2050
- if (isPartlyUnknown(paramType, /* allowUnknownTypeArgsForClasses */ false, recursionCount)) {
2052
+ if (isPartlyUnknown(paramType, recursionCount)) {
2051
2053
  return true;
2052
2054
  }
2053
2055
  }
2054
2056
  }
2055
2057
  if (type.details.declaredReturnType &&
2056
2058
  !types_1.FunctionType.isParamSpecValue(type) &&
2057
- isPartlyUnknown(type.details.declaredReturnType, /* allowUnknownTypeArgsForClasses */ false, recursionCount)) {
2059
+ isPartlyUnknown(type.details.declaredReturnType, recursionCount)) {
2058
2060
  return true;
2059
2061
  }
2060
2062
  return false;
@@ -2812,7 +2814,9 @@ class TypeVarTransformer {
2812
2814
  transformTypeVarsInClassType(classType, recursionCount) {
2813
2815
  const typeParams = types_1.ClassType.getTypeParameters(classType);
2814
2816
  // Handle the common case where the class has no type parameters.
2815
- if (typeParams.length === 0 && !types_1.ClassType.isSpecialBuiltIn(classType)) {
2817
+ if (typeParams.length === 0 &&
2818
+ !types_1.ClassType.isSpecialBuiltIn(classType) &&
2819
+ !types_1.ClassType.isBuiltIn(classType, 'type')) {
2816
2820
  return classType;
2817
2821
  }
2818
2822
  let newTypeArgs;