@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.
- package/dist/analyzer/binder.js +3 -0
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/checker.d.ts +4 -1
- package/dist/analyzer/checker.js +146 -9
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.js +7 -0
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/commentUtils.js +7 -0
- package/dist/analyzer/commentUtils.js.map +1 -1
- package/dist/analyzer/constraintSolver.js +11 -0
- package/dist/analyzer/constraintSolver.js.map +1 -1
- package/dist/analyzer/constructors.js +2 -1
- package/dist/analyzer/constructors.js.map +1 -1
- package/dist/analyzer/dataClasses.js +57 -46
- package/dist/analyzer/dataClasses.js.map +1 -1
- package/dist/analyzer/operations.js +16 -14
- package/dist/analyzer/operations.js.map +1 -1
- package/dist/analyzer/protocols.js +27 -13
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +126 -129
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +1 -1
- package/dist/analyzer/typeEvaluatorTypes.js +1 -1
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +1 -1
- package/dist/analyzer/typeUtils.js +16 -12
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typeVarContext.d.ts +2 -0
- package/dist/analyzer/typeVarContext.js +27 -0
- package/dist/analyzer/typeVarContext.js.map +1 -1
- package/dist/analyzer/typedDicts.js +2 -32
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/types.d.ts +3 -8
- package/dist/analyzer/types.js +9 -16
- package/dist/analyzer/types.js.map +1 -1
- package/dist/commands/commandController.js +1 -2
- package/dist/commands/commandController.js.map +1 -1
- package/dist/commands/commands.d.ts +0 -1
- package/dist/commands/commands.js +0 -1
- package/dist/commands/commands.js.map +1 -1
- package/dist/common/configOptions.d.ts +1 -0
- package/dist/common/configOptions.js +91 -3
- package/dist/common/configOptions.js.map +1 -1
- package/dist/common/diagnostic.d.ts +0 -4
- package/dist/common/diagnostic.js.map +1 -1
- package/dist/languageService/codeActionProvider.js +0 -14
- package/dist/languageService/codeActionProvider.js.map +1 -1
- package/dist/languageService/quickActions.d.ts +1 -2
- package/dist/languageService/quickActions.js +0 -80
- package/dist/languageService/quickActions.js.map +1 -1
- package/dist/localization/localize.d.ts +12 -9
- package/dist/localization/localize.js +6 -4
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.cs.json +0 -4
- package/dist/localization/package.nls.de.json +0 -4
- package/dist/localization/package.nls.en-us.json +7 -5
- package/dist/localization/package.nls.es.json +2 -6
- package/dist/localization/package.nls.fr.json +0 -4
- package/dist/localization/package.nls.it.json +0 -4
- package/dist/localization/package.nls.ja.json +0 -4
- package/dist/localization/package.nls.ko.json +0 -4
- package/dist/localization/package.nls.pl.json +0 -4
- package/dist/localization/package.nls.pt-br.json +0 -4
- package/dist/localization/package.nls.qps-ploc.json +0 -4
- package/dist/localization/package.nls.ru.json +0 -4
- package/dist/localization/package.nls.tr.json +0 -4
- package/dist/localization/package.nls.zh-cn.json +0 -4
- package/dist/localization/package.nls.zh-tw.json +0 -4
- package/dist/pyrightFileSystem.js +1 -1
- package/dist/pyrightFileSystem.js.map +1 -1
- package/dist/readonlyAugmentedFileSystem.d.ts +1 -1
- package/dist/readonlyAugmentedFileSystem.js +15 -5
- package/dist/readonlyAugmentedFileSystem.js.map +1 -1
- package/dist/server.js +1 -1
- package/dist/server.js.map +1 -1
- package/dist/tests/checker.test.js +8 -0
- package/dist/tests/checker.test.js.map +1 -1
- package/dist/tests/fourslash/fourslash.d.ts +1 -2
- package/dist/tests/harness/fourslash/testState.Consts.d.ts +1 -2
- package/dist/tests/harness/fourslash/testState.Consts.js +0 -1
- package/dist/tests/harness/fourslash/testState.Consts.js.map +1 -1
- package/dist/tests/harness/fourslash/testState.js +1 -1
- package/dist/tests/harness/fourslash/testState.js.map +1 -1
- package/dist/tests/pyrightFileSystem.test.js +48 -1
- package/dist/tests/pyrightFileSystem.test.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +8 -5
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +3 -3
- package/dist/tests/typeEvaluator3.test.js +12 -9
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +6 -2
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/dist/tests/typeEvaluator5.test.js +8 -4
- package/dist/tests/typeEvaluator5.test.js.map +1 -1
- 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
|
-
|
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["
|
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,
|
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,
|
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,
|
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,
|
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 (
|
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
|
-
|
2025
|
-
|
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 (!
|
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,
|
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,
|
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,
|
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,
|
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 &&
|
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;
|