@zzzen/pyright-internal 1.2.0-dev.20231008 → 1.2.0-dev.20231015
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/checker.js +27 -24
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.js +2 -2
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/constraintSolver.js +208 -151
- package/dist/analyzer/constraintSolver.js.map +1 -1
- package/dist/analyzer/decorators.js +3 -1
- package/dist/analyzer/decorators.js.map +1 -1
- package/dist/analyzer/parseTreeUtils.d.ts +1 -1
- package/dist/analyzer/program.js +7 -1
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/properties.d.ts +2 -2
- package/dist/analyzer/properties.js +4 -2
- package/dist/analyzer/properties.js.map +1 -1
- package/dist/analyzer/protocols.js +95 -148
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/service.js +13 -13
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/sourceFile.d.ts +3 -2
- package/dist/analyzer/sourceFile.js +21 -7
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/sourceFileInfo.d.ts +4 -4
- package/dist/analyzer/sourceFileInfo.js +2 -0
- package/dist/analyzer/sourceFileInfo.js.map +1 -1
- package/dist/analyzer/staticExpressions.js +2 -1
- package/dist/analyzer/staticExpressions.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +24 -22
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +3 -2
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.js +73 -13
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +4 -1
- package/dist/analyzer/typeUtils.js +81 -7
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typeVarContext.d.ts +4 -1
- package/dist/analyzer/typeVarContext.js +7 -2
- package/dist/analyzer/typeVarContext.js.map +1 -1
- package/dist/analyzer/types.d.ts +4 -2
- package/dist/analyzer/types.js +22 -14
- package/dist/analyzer/types.js.map +1 -1
- package/dist/backgroundThreadBase.js +5 -1
- package/dist/backgroundThreadBase.js.map +1 -1
- package/dist/common/configOptions.d.ts +2 -1
- package/dist/common/configOptions.js +9 -5
- package/dist/common/configOptions.js.map +1 -1
- package/dist/common/extensibility.d.ts +0 -2
- package/dist/common/extensibility.js.map +1 -1
- package/dist/common/fileSystem.d.ts +9 -4
- package/dist/common/fileSystem.js +8 -1
- package/dist/common/fileSystem.js.map +1 -1
- package/dist/common/pathUtils.d.ts +5 -4
- package/dist/common/pathUtils.js +13 -7
- package/dist/common/pathUtils.js.map +1 -1
- package/dist/common/realFileSystem.d.ts +7 -1
- package/dist/common/realFileSystem.js +24 -21
- package/dist/common/realFileSystem.js.map +1 -1
- package/dist/common/serviceProviderExtensions.d.ts +2 -1
- package/dist/common/serviceProviderExtensions.js +4 -0
- package/dist/common/serviceProviderExtensions.js.map +1 -1
- package/dist/languageServerBase.d.ts +4 -2
- package/dist/languageServerBase.js +3 -3
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/autoImporter.d.ts +1 -1
- package/dist/languageService/completionProvider.d.ts +2 -2
- package/dist/languageService/completionProvider.js +20 -23
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/navigationUtils.d.ts +1 -1
- package/dist/languageService/navigationUtils.js +2 -2
- package/dist/languageService/navigationUtils.js.map +1 -1
- package/dist/languageService/referencesProvider.d.ts +9 -2
- package/dist/languageService/referencesProvider.js +18 -12
- package/dist/languageService/referencesProvider.js.map +1 -1
- package/dist/localization/package.nls.cs.json +1 -0
- package/dist/localization/package.nls.de.json +1 -0
- package/dist/localization/package.nls.es.json +1 -0
- package/dist/localization/package.nls.fr.json +1 -0
- package/dist/localization/package.nls.it.json +1 -0
- package/dist/localization/package.nls.ja.json +1 -0
- package/dist/localization/package.nls.ko.json +1 -0
- package/dist/localization/package.nls.pl.json +1 -0
- package/dist/localization/package.nls.pt-br.json +1 -0
- package/dist/localization/package.nls.qps-ploc.json +1 -0
- package/dist/localization/package.nls.ru.json +1 -0
- package/dist/localization/package.nls.tr.json +1 -0
- package/dist/localization/package.nls.zh-cn.json +1 -0
- package/dist/localization/package.nls.zh-tw.json +1 -0
- package/dist/pyright.js +2 -1
- package/dist/pyright.js.map +1 -1
- package/dist/pyrightFileSystem.d.ts +0 -1
- package/dist/pyrightFileSystem.js +0 -3
- package/dist/pyrightFileSystem.js.map +1 -1
- package/dist/readonlyAugmentedFileSystem.d.ts +1 -4
- package/dist/readonlyAugmentedFileSystem.js +0 -10
- package/dist/readonlyAugmentedFileSystem.js.map +1 -1
- package/dist/server.js +2 -1
- package/dist/server.js.map +1 -1
- package/dist/tests/config.test.js +5 -3
- package/dist/tests/config.test.js.map +1 -1
- package/dist/tests/fourslash/completions.indexer.keys.getitem.fourslash.js +56 -10
- package/dist/tests/fourslash/completions.indexer.keys.getitem.fourslash.js.map +1 -1
- package/dist/tests/harness/fourslash/testState.d.ts +5 -2
- package/dist/tests/harness/fourslash/testState.js +13 -14
- package/dist/tests/harness/fourslash/testState.js.map +1 -1
- package/dist/tests/harness/vfs/filesystem.d.ts +2 -2
- package/dist/tests/importResolver.test.js +0 -9
- package/dist/tests/importResolver.test.js.map +1 -1
- package/dist/tests/pathUtils.test.js +2 -2
- package/dist/tests/pathUtils.test.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +4 -0
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +4 -0
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +5 -1
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +10 -2
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/package.json +1 -1
@@ -1284,7 +1284,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
1284
1284
|
128 /* SkipAttributeAccessOverride */, types_1.ClassType.cloneAsInstantiable(objectType));
|
1285
1285
|
}
|
1286
1286
|
}
|
1287
|
-
if (memberInfo) {
|
1287
|
+
if (memberInfo && !memberInfo.isSetTypeError) {
|
1288
1288
|
return {
|
1289
1289
|
type: memberInfo.type,
|
1290
1290
|
classType: memberInfo.classType,
|
@@ -1337,7 +1337,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
1337
1337
|
/* isAccessedThroughObject */ true, memberName, usage, metaclassDiag, memberAccessFlags, classType);
|
1338
1338
|
}
|
1339
1339
|
}
|
1340
|
-
if (memberInfo) {
|
1340
|
+
if (memberInfo && !memberInfo.isSetTypeError) {
|
1341
1341
|
return {
|
1342
1342
|
type: memberInfo.type,
|
1343
1343
|
isIncomplete: !!memberInfo.isTypeIncomplete,
|
@@ -3902,6 +3902,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
3902
3902
|
return undefined;
|
3903
3903
|
}
|
3904
3904
|
type = descriptorResult.type;
|
3905
|
+
let isSetTypeError = false;
|
3905
3906
|
if (usage.method === 'set' && usage.setType) {
|
3906
3907
|
// Verify that the assigned type is compatible.
|
3907
3908
|
if (!assignType(type, usage.setType.type, diag === null || diag === void 0 ? void 0 : diag.createAddendum())) {
|
@@ -3912,7 +3913,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
3912
3913
|
classType: printObjectTypeForClass(classType),
|
3913
3914
|
}));
|
3914
3915
|
}
|
3915
|
-
|
3916
|
+
isSetTypeError = true;
|
3916
3917
|
}
|
3917
3918
|
if ((0, types_1.isInstantiableClass)(memberInfo.classType) &&
|
3918
3919
|
types_1.ClassType.isFrozenDataClass(memberInfo.classType) &&
|
@@ -3920,13 +3921,14 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
3920
3921
|
diag === null || diag === void 0 ? void 0 : diag.addMessage(localize_1.Localizer.DiagnosticAddendum.dataClassFrozen().format({
|
3921
3922
|
name: printType(types_1.ClassType.cloneAsInstance(memberInfo.classType)),
|
3922
3923
|
}));
|
3923
|
-
|
3924
|
+
isSetTypeError = true;
|
3924
3925
|
}
|
3925
3926
|
}
|
3926
3927
|
return {
|
3927
3928
|
symbol: memberInfo.symbol,
|
3928
3929
|
type,
|
3929
3930
|
isTypeIncomplete,
|
3931
|
+
isSetTypeError,
|
3930
3932
|
isClassMember: !memberInfo.isInstanceMember,
|
3931
3933
|
isClassVar: memberInfo.isClassVar,
|
3932
3934
|
classType: memberInfo.classType,
|
@@ -3945,6 +3947,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
3945
3947
|
symbol: undefined,
|
3946
3948
|
type: generalAttrType.type,
|
3947
3949
|
isTypeIncomplete: false,
|
3950
|
+
isSetTypeError: false,
|
3948
3951
|
isClassMember: false,
|
3949
3952
|
isClassVar: false,
|
3950
3953
|
isAsymmetricAccessor: generalAttrType.isAsymmetricAccessor,
|
@@ -6197,17 +6200,6 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
6197
6200
|
// intended behavior according to PEP 484.
|
6198
6201
|
const matchResults = matchFunctionArgumentsToParameters(errorNode, argList, { type: overload, isIncomplete: typeResult.isIncomplete }, overloadIndex);
|
6199
6202
|
if (!matchResults.argumentErrors) {
|
6200
|
-
// If there is an expected return type, see if it's potentially compatible
|
6201
|
-
// with this overload's return type. If not, we'll de-emphasize this overload.
|
6202
|
-
if (inferenceContext === null || inferenceContext === void 0 ? void 0 : inferenceContext.expectedType) {
|
6203
|
-
const returnType = getFunctionEffectiveReturnType(matchResults.overload);
|
6204
|
-
if (!assignType((0, typeUtils_1.replaceTypeVarsWithAny)(inferenceContext.expectedType), (0, typeUtils_1.replaceTypeVarsWithAny)(returnType),
|
6205
|
-
/* diag */ undefined,
|
6206
|
-
/* destTypeVarContext */ undefined,
|
6207
|
-
/* srcTypeVarContext */ undefined, 8 /* SkipSolveTypeVars */)) {
|
6208
|
-
matchResults.relevance += -0.5;
|
6209
|
-
}
|
6210
|
-
}
|
6211
6203
|
filteredMatchResults.push(matchResults);
|
6212
6204
|
}
|
6213
6205
|
overloadIndex++;
|
@@ -9286,9 +9278,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
9286
9278
|
}
|
9287
9279
|
else if (mappingType && (0, types_1.isInstantiableClass)(mappingType)) {
|
9288
9280
|
const mappingTypeVarContext = new typeVarContext_1.TypeVarContext((0, typeUtils_1.getTypeVarScopeId)(mappingType));
|
9289
|
-
|
9290
|
-
mappingType = types_1.ClassType.cloneForSpecialization(mappingType, mappingType.details.typeParameters,
|
9291
|
-
/* isTypeArgumentExplicit */ true);
|
9281
|
+
mappingType = (0, typeUtils_1.selfSpecializeClass)(mappingType);
|
9292
9282
|
if (assignType(types_1.ClassType.cloneAsInstance(mappingType), unexpandedType,
|
9293
9283
|
/* diag */ undefined, mappingTypeVarContext,
|
9294
9284
|
/* srcTypeVarContext */ undefined, 128 /* RetainLiteralsForTypeVar */)) {
|
@@ -10823,7 +10813,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
10823
10813
|
const nameNode = node.leftExpression;
|
10824
10814
|
const assignedName = nameNode.value;
|
10825
10815
|
if (assignedName === 'Any') {
|
10826
|
-
return types_1.AnyType.
|
10816
|
+
return types_1.AnyType.createSpecialForm();
|
10827
10817
|
}
|
10828
10818
|
const specialTypes = new Map([
|
10829
10819
|
['overload', { alias: '', module: 'builtins' }],
|
@@ -11191,6 +11181,11 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
11191
11181
|
if ((0, types_1.isUnion)(argType)) {
|
11192
11182
|
argType = (0, types_1.removeUnbound)(argType);
|
11193
11183
|
}
|
11184
|
+
// Any is allowed as a base class. Remove its "special form" flag to avoid
|
11185
|
+
// false positive errors.
|
11186
|
+
if ((0, types_1.isAny)(argType) && types_1.TypeBase.isSpecialForm(argType)) {
|
11187
|
+
argType = types_1.AnyType.create();
|
11188
|
+
}
|
11194
11189
|
if (!(0, types_1.isAnyOrUnknown)(argType) && !(0, types_1.isUnbound)(argType)) {
|
11195
11190
|
if ((0, typeUtils_1.isMetaclassInstance)(argType)) {
|
11196
11191
|
(0, debug_1.assert)((0, types_1.isClassInstance)(argType));
|
@@ -15495,6 +15490,12 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
15495
15490
|
};
|
15496
15491
|
}
|
15497
15492
|
}
|
15493
|
+
else if ((0, types_1.isAnyOrUnknown)(member.classType)) {
|
15494
|
+
return {
|
15495
|
+
type: member.classType,
|
15496
|
+
isIncomplete: false,
|
15497
|
+
};
|
15498
|
+
}
|
15498
15499
|
return undefined;
|
15499
15500
|
}
|
15500
15501
|
function assignClass(destType, srcType, diag, destTypeVarContext, srcTypeVarContext, flags, recursionCount, reportErrorsUsingObjType) {
|
@@ -16167,7 +16168,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
16167
16168
|
if ((0, types_1.isAnyOrUnknown)(destType)) {
|
16168
16169
|
return true;
|
16169
16170
|
}
|
16170
|
-
if ((0, types_1.isAnyOrUnknown)(srcType)) {
|
16171
|
+
if ((0, types_1.isAnyOrUnknown)(srcType) && !types_1.TypeBase.isSpecialForm(srcType)) {
|
16171
16172
|
const targetTypeVarContext = (flags & 2 /* ReverseTypeVarMatching */) === 0 ? destTypeVarContext : srcTypeVarContext;
|
16172
16173
|
if (targetTypeVarContext) {
|
16173
16174
|
// If it's an ellipsis type, convert it to a regular "Any"
|
@@ -16393,7 +16394,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
16393
16394
|
}
|
16394
16395
|
}
|
16395
16396
|
}
|
16396
|
-
else if ((0, types_1.isAnyOrUnknown)(concreteSrcType)) {
|
16397
|
+
else if ((0, types_1.isAnyOrUnknown)(concreteSrcType) && !types_1.TypeBase.isSpecialForm(concreteSrcType)) {
|
16397
16398
|
return (flags & 16 /* OverloadOverlapCheck */) === 0;
|
16398
16399
|
}
|
16399
16400
|
else if ((0, types_1.isUnion)(concreteSrcType)) {
|
@@ -17379,7 +17380,8 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
17379
17380
|
category: p.category,
|
17380
17381
|
name: p.name,
|
17381
17382
|
isNameSynthesized: p.isNameSynthesized,
|
17382
|
-
hasDefault:
|
17383
|
+
hasDefault: p.hasDefault,
|
17384
|
+
hasDeclaredType: p.hasDeclaredType,
|
17383
17385
|
defaultValueExpression: p.defaultValueExpression,
|
17384
17386
|
type: types_1.FunctionType.getEffectiveParameterType(effectiveSrcType, index),
|
17385
17387
|
});
|