@zzzen/pyright-internal 1.2.0-dev.20230319 → 1.2.0-dev.20230402
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/cacheManager.js +1 -1
- package/dist/analyzer/checker.js +52 -26
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/constraintSolver.js +4 -1
- package/dist/analyzer/constraintSolver.js.map +1 -1
- package/dist/analyzer/constructorTransform.js +4 -3
- package/dist/analyzer/constructorTransform.js.map +1 -1
- package/dist/analyzer/dataClasses.js +10 -0
- package/dist/analyzer/dataClasses.js.map +1 -1
- package/dist/analyzer/declarationUtils.d.ts +8 -0
- package/dist/analyzer/declarationUtils.js +147 -1
- package/dist/analyzer/declarationUtils.js.map +1 -1
- package/dist/analyzer/importStatementUtils.js +1 -1
- package/dist/analyzer/parameterUtils.d.ts +25 -1
- package/dist/analyzer/parameterUtils.js +182 -1
- package/dist/analyzer/parameterUtils.js.map +1 -1
- package/dist/analyzer/patternMatching.js +55 -5
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.js +40 -26
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/properties.js +13 -13
- package/dist/analyzer/properties.js.map +1 -1
- package/dist/analyzer/protocols.js +21 -5
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/pythonPathUtils.js +1 -1
- package/dist/analyzer/regions.js +4 -4
- package/dist/analyzer/regions.js.map +1 -1
- package/dist/analyzer/service.js +16 -22
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/sourceFile.js +1 -1
- package/dist/analyzer/sourceFileInfoUtils.js +1 -1
- package/dist/analyzer/sourceMapper.js +1 -1
- package/dist/analyzer/sourceMapperUtils.d.ts +0 -8
- package/dist/analyzer/sourceMapperUtils.js +18 -25
- package/dist/analyzer/sourceMapperUtils.js.map +1 -1
- package/dist/analyzer/staticExpressions.js +2 -2
- package/dist/analyzer/symbolUtils.js +1 -1
- package/dist/analyzer/testWalker.js +3 -0
- package/dist/analyzer/testWalker.js.map +1 -1
- package/dist/analyzer/tracePrinter.js +1 -1
- package/dist/analyzer/typeEvaluator.js +187 -87
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +3 -3
- package/dist/analyzer/typeEvaluatorTypes.js +0 -1
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeEvaluatorWithTracker.js +3 -5
- package/dist/analyzer/typeEvaluatorWithTracker.js.map +1 -1
- package/dist/analyzer/typeGuards.js +182 -159
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +2 -25
- package/dist/analyzer/typeUtils.js +59 -188
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typeVarContext.js +6 -2
- package/dist/analyzer/typeVarContext.js.map +1 -1
- package/dist/analyzer/typedDicts.js +2 -1
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/types.d.ts +1 -0
- package/dist/analyzer/types.js.map +1 -1
- package/dist/common/configOptions.js +1 -1
- package/dist/common/configOptions.js.map +1 -1
- package/dist/common/diagnosticSink.js +1 -1
- package/dist/common/envVarUtils.js +7 -7
- package/dist/common/envVarUtils.js.map +1 -1
- package/dist/common/fileBasedCancellationUtils.js +5 -1
- package/dist/common/fileBasedCancellationUtils.js.map +1 -1
- package/dist/common/host.js +1 -1
- package/dist/common/lspUtils.js +1 -1
- package/dist/common/pathConsts.d.ts +1 -0
- package/dist/common/pathConsts.js +2 -1
- package/dist/common/pathConsts.js.map +1 -1
- package/dist/common/progressReporter.js +4 -1
- package/dist/common/progressReporter.js.map +1 -1
- package/dist/common/pythonVersion.js +1 -2
- package/dist/common/pythonVersion.js.map +1 -1
- package/dist/common/realFileSystem.js +1 -1
- package/dist/common/textEditTracker.js +1 -1
- package/dist/common/workspaceEditUtils.js +1 -1
- package/dist/languageServerBase.js +2 -2
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/analyzerServiceExecutor.js +2 -2
- package/dist/languageService/analyzerServiceExecutor.js.map +1 -1
- package/dist/languageService/autoImporter.d.ts +1 -1
- package/dist/languageService/autoImporter.js +6 -3
- package/dist/languageService/autoImporter.js.map +1 -1
- package/dist/languageService/callHierarchyProvider.d.ts +7 -3
- package/dist/languageService/callHierarchyProvider.js +38 -6
- package/dist/languageService/callHierarchyProvider.js.map +1 -1
- package/dist/languageService/completionProvider.d.ts +1 -0
- package/dist/languageService/completionProvider.js +30 -11
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/completionProviderUtils.js +2 -2
- package/dist/languageService/completionProviderUtils.js.map +1 -1
- package/dist/languageService/documentSymbolProvider.js +1 -2
- package/dist/languageService/documentSymbolProvider.js.map +1 -1
- package/dist/languageService/hoverProvider.js +1 -1
- package/dist/languageService/hoverProvider.js.map +1 -1
- package/dist/languageService/importSorter.js +1 -1
- package/dist/languageService/indentationUtils.js +2 -1
- package/dist/languageService/indentationUtils.js.map +1 -1
- package/dist/languageService/signatureHelpProvider.js +9 -7
- package/dist/languageService/signatureHelpProvider.js.map +1 -1
- package/dist/languageService/tooltipUtils.js +2 -2
- package/dist/localization/localize.d.ts +0 -3
- package/dist/localization/localize.js +0 -1
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.en-us.json +0 -1
- package/dist/tests/checker.test.js +1 -1
- package/dist/tests/checker.test.js.map +1 -1
- package/dist/tests/completions.test.js +41 -0
- package/dist/tests/completions.test.js.map +1 -1
- package/dist/tests/fourslash/fourslash.d.ts +5 -0
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.aliasedFunction.fourslash.d.ts +1 -0
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.aliasedFunction.fourslash.js +34 -0
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.aliasedFunction.fourslash.js.map +1 -0
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.aliasedVariable.fourslash.d.ts +1 -0
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.aliasedVariable.fourslash.js +19 -0
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.aliasedVariable.fourslash.js.map +1 -0
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.function.fourslash.d.ts +1 -0
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.function.fourslash.js +39 -0
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.function.fourslash.js.map +1 -0
- package/dist/tests/harness/fourslash/testState.d.ts +5 -0
- package/dist/tests/harness/fourslash/testState.js +21 -0
- package/dist/tests/harness/fourslash/testState.js.map +1 -1
- package/dist/tests/hoverProvider.test.js +50 -0
- package/dist/tests/hoverProvider.test.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +8 -0
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +13 -1
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +9 -1
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +48 -116
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/dist/tests/typeEvaluator5.test.js +1 -5
- package/dist/tests/typeEvaluator5.test.js.map +1 -1
- package/dist/workspaceFactory.d.ts +1 -0
- package/dist/workspaceFactory.js +20 -10
- package/dist/workspaceFactory.js.map +1 -1
- package/package.json +1 -1
- package/dist/analyzer/aliasDeclarationUtils.d.ts +0 -9
- package/dist/analyzer/aliasDeclarationUtils.js +0 -142
- package/dist/analyzer/aliasDeclarationUtils.js.map +0 -1
@@ -5,7 +5,7 @@
|
|
5
5
|
* Licensed under the MIT license.
|
6
6
|
* Author: Eric Traut
|
7
7
|
*
|
8
|
-
* A singleton that tracks the size of caches and
|
8
|
+
* A singleton that tracks the size of caches and empties them
|
9
9
|
* if memory usage approaches the max heap space.
|
10
10
|
*/
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
package/dist/analyzer/checker.js
CHANGED
@@ -1,4 +1,17 @@
|
|
1
1
|
"use strict";
|
2
|
+
/*
|
3
|
+
* checker.ts
|
4
|
+
* Copyright (c) Microsoft Corporation.
|
5
|
+
* Licensed under the MIT license.
|
6
|
+
* Author: Eric Traut
|
7
|
+
*
|
8
|
+
* A parse tree walker that performs static type checking for
|
9
|
+
* a source file. Most of its work is performed by the type
|
10
|
+
* evaluator, but this module touches every node in the file
|
11
|
+
* to ensure that all statements and expressions are evaluated
|
12
|
+
* and checked. It also performs some additional checks that
|
13
|
+
* cannot (or should not be) performed lazily.
|
14
|
+
*/
|
2
15
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
16
|
if (k2 === undefined) k2 = k;
|
4
17
|
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
@@ -20,19 +33,6 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
20
33
|
};
|
21
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
22
35
|
exports.Checker = void 0;
|
23
|
-
/*
|
24
|
-
* checker.ts
|
25
|
-
* Copyright (c) Microsoft Corporation.
|
26
|
-
* Licensed under the MIT license.
|
27
|
-
* Author: Eric Traut
|
28
|
-
*
|
29
|
-
* A parse tree walker that performs static type checking for
|
30
|
-
* a source file. Most of its work is performed by the type
|
31
|
-
* evaluator, but this module touches every node in the file
|
32
|
-
* to ensure that all statements and expressions are evaluated
|
33
|
-
* and checked. It also performs some additional checks that
|
34
|
-
* cannot (or should not be) performed lazily.
|
35
|
-
*/
|
36
36
|
const vscode_languageserver_1 = require("vscode-languageserver");
|
37
37
|
const debug_1 = require("../common/debug");
|
38
38
|
const diagnostic_1 = require("../common/diagnostic");
|
@@ -48,6 +48,7 @@ const AnalyzerNodeInfo = __importStar(require("./analyzerNodeInfo"));
|
|
48
48
|
const declaration_1 = require("./declaration");
|
49
49
|
const importResolver_1 = require("./importResolver");
|
50
50
|
const importStatementUtils_1 = require("./importStatementUtils");
|
51
|
+
const parameterUtils_1 = require("./parameterUtils");
|
51
52
|
const ParseTreeUtils = __importStar(require("./parseTreeUtils"));
|
52
53
|
const parseTreeWalker_1 = require("./parseTreeWalker");
|
53
54
|
const patternMatching_1 = require("./patternMatching");
|
@@ -1338,7 +1339,13 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
1338
1339
|
}
|
1339
1340
|
}
|
1340
1341
|
// Does the class have an operator overload for eq?
|
1341
|
-
|
1342
|
+
const eqMethod = (0, typeUtils_1.lookUpClassMember)(types_1.ClassType.cloneAsInstantiable(leftType), '__eq__', 4 /* SkipObjectBaseClass */);
|
1343
|
+
if (eqMethod) {
|
1344
|
+
// If this is a synthesized method for a dataclass, we can assume
|
1345
|
+
// that other dataclass types will not be comparable.
|
1346
|
+
if (types_1.ClassType.isDataClass(leftType) && eqMethod.symbol.getSynthesizedType()) {
|
1347
|
+
return false;
|
1348
|
+
}
|
1342
1349
|
return true;
|
1343
1350
|
}
|
1344
1351
|
return false;
|
@@ -3164,7 +3171,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
3164
3171
|
!postInitType.details.declaration) {
|
3165
3172
|
return;
|
3166
3173
|
}
|
3167
|
-
const paramListDetails = (0,
|
3174
|
+
const paramListDetails = (0, parameterUtils_1.getParameterListDetails)(postInitType);
|
3168
3175
|
// If there is an *args or **kwargs parameter or a keyword-only separator,
|
3169
3176
|
// don't bother checking.
|
3170
3177
|
if (paramListDetails.argsIndex !== undefined ||
|
@@ -3730,6 +3737,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
3730
3737
|
});
|
3731
3738
|
}
|
3732
3739
|
_validateOverrideDecoratorPresent(overrideType, baseMember) {
|
3740
|
+
var _a;
|
3733
3741
|
// Skip this check if disabled.
|
3734
3742
|
if (this._fileInfo.diagnosticRuleSet.reportImplicitOverride === 'none') {
|
3735
3743
|
return;
|
@@ -3741,11 +3749,24 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
3741
3749
|
else if ((0, types_1.isOverloadedFunction)(overrideType)) {
|
3742
3750
|
overrideFunction = types_1.OverloadedFunctionType.getImplementation(overrideType);
|
3743
3751
|
}
|
3752
|
+
else if ((0, types_1.isClassInstance)(overrideType) && types_1.ClassType.isPropertyClass(overrideType)) {
|
3753
|
+
const fgetSymbol = overrideType.details.fields.get('fget');
|
3754
|
+
if (fgetSymbol) {
|
3755
|
+
const fgetType = (_a = this._evaluator.getDeclaredTypeOfSymbol(fgetSymbol)) === null || _a === void 0 ? void 0 : _a.type;
|
3756
|
+
if (fgetType && (0, types_1.isFunction)(fgetType)) {
|
3757
|
+
overrideFunction = fgetType;
|
3758
|
+
}
|
3759
|
+
}
|
3760
|
+
}
|
3744
3761
|
if (!(overrideFunction === null || overrideFunction === void 0 ? void 0 : overrideFunction.details.declaration) || types_1.FunctionType.isOverridden(overrideFunction)) {
|
3745
3762
|
return;
|
3746
3763
|
}
|
3764
|
+
// Constructors are exempt.
|
3765
|
+
if (overrideFunction.details.name === '__init__' || overrideFunction.details.name === '__new__') {
|
3766
|
+
return;
|
3767
|
+
}
|
3747
3768
|
const funcNode = overrideFunction.details.declaration.node;
|
3748
|
-
this._evaluator.addDiagnostic(this._fileInfo.diagnosticRuleSet.
|
3769
|
+
this._evaluator.addDiagnostic(this._fileInfo.diagnosticRuleSet.reportImplicitOverride, diagnosticRules_1.DiagnosticRule.reportImplicitOverride, localize_1.Localizer.Diagnostic.overrideDecoratorMissing().format({
|
3749
3770
|
name: funcNode.name.value,
|
3750
3771
|
className: this._evaluator.printType((0, typeUtils_1.convertToInstance)(baseMember.classType)),
|
3751
3772
|
}), funcNode.name);
|
@@ -3754,6 +3775,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
3754
3775
|
// decorator. In this case, an error is reported because no base class has declared
|
3755
3776
|
// a method of the same name.
|
3756
3777
|
_validateOverrideDecoratorNotPresent(overrideType) {
|
3778
|
+
var _a;
|
3757
3779
|
let overrideFunction;
|
3758
3780
|
if ((0, types_1.isFunction)(overrideType)) {
|
3759
3781
|
overrideFunction = overrideType;
|
@@ -3761,6 +3783,15 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
3761
3783
|
else if ((0, types_1.isOverloadedFunction)(overrideType)) {
|
3762
3784
|
overrideFunction = types_1.OverloadedFunctionType.getImplementation(overrideType);
|
3763
3785
|
}
|
3786
|
+
else if ((0, types_1.isClassInstance)(overrideType) && types_1.ClassType.isPropertyClass(overrideType)) {
|
3787
|
+
const fgetSymbol = overrideType.details.fields.get('fget');
|
3788
|
+
if (fgetSymbol) {
|
3789
|
+
const fgetType = (_a = this._evaluator.getDeclaredTypeOfSymbol(fgetSymbol)) === null || _a === void 0 ? void 0 : _a.type;
|
3790
|
+
if (fgetType && (0, types_1.isFunction)(fgetType)) {
|
3791
|
+
overrideFunction = fgetType;
|
3792
|
+
}
|
3793
|
+
}
|
3794
|
+
}
|
3764
3795
|
if (!(overrideFunction === null || overrideFunction === void 0 ? void 0 : overrideFunction.details.declaration) || !types_1.FunctionType.isOverridden(overrideFunction)) {
|
3765
3796
|
return;
|
3766
3797
|
}
|
@@ -4180,11 +4211,6 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
4180
4211
|
if ((0, types_1.isClassInstance)(paramType) && types_1.ClassType.isProtocolClass(paramType)) {
|
4181
4212
|
return;
|
4182
4213
|
}
|
4183
|
-
// Don't enforce this for an overloaded method because the "self" param
|
4184
|
-
// annotation can be used as a filter for the overload.
|
4185
|
-
if (types_1.FunctionType.isOverloaded(functionType)) {
|
4186
|
-
return;
|
4187
|
-
}
|
4188
4214
|
const typeVarContext = new typeVarContext_1.TypeVarContext((0, typeUtils_1.getTypeVarScopeId)(functionType));
|
4189
4215
|
if (!this._evaluator.assignType(paramType, expectedType, /* diag */ undefined, typeVarContext)) {
|
4190
4216
|
// We exempt Never from this check because it has a legitimate use in this case.
|
@@ -4353,11 +4379,11 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
4353
4379
|
});
|
4354
4380
|
}
|
4355
4381
|
_addDiagnosticForRegionComment(regionComment, message) {
|
4356
|
-
|
4357
|
-
|
4358
|
-
|
4359
|
-
|
4360
|
-
|
4382
|
+
return this._evaluator.addDiagnosticForTextRange(this._fileInfo, 'error', '', message, {
|
4383
|
+
// extend range to include # character
|
4384
|
+
start: regionComment.comment.start - 1,
|
4385
|
+
length: regionComment.comment.length + 1,
|
4386
|
+
});
|
4361
4387
|
}
|
4362
4388
|
}
|
4363
4389
|
exports.Checker = Checker;
|