@zzzen/pyright-internal 1.2.0-dev.20230129 → 1.2.0-dev.20230212
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/backgroundAnalysisProgram.d.ts +3 -3
- package/dist/analyzer/backgroundAnalysisProgram.js +4 -2
- package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
- package/dist/analyzer/binder.js +15 -11
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/checker.d.ts +2 -1
- package/dist/analyzer/checker.js +28 -21
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.js +3 -2
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/constraintSolver.js +83 -67
- package/dist/analyzer/constraintSolver.js.map +1 -1
- package/dist/analyzer/dataClasses.js +13 -5
- package/dist/analyzer/dataClasses.js.map +1 -1
- package/dist/analyzer/declaration.d.ts +2 -0
- package/dist/analyzer/declaration.js.map +1 -1
- package/dist/analyzer/importResolver.d.ts +1 -1
- package/dist/analyzer/importResolver.js +6 -3
- package/dist/analyzer/importResolver.js.map +1 -1
- package/dist/analyzer/parameterUtils.d.ts +2 -0
- package/dist/analyzer/parameterUtils.js +20 -0
- package/dist/analyzer/parameterUtils.js.map +1 -0
- package/dist/analyzer/parseTreeUtils.d.ts +3 -1
- package/dist/analyzer/parseTreeUtils.js +54 -12
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/parseTreeWalker.d.ts +1 -1
- package/dist/analyzer/program.d.ts +6 -3
- package/dist/analyzer/program.js +78 -19
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/service.d.ts +0 -2
- package/dist/analyzer/service.js +8 -8
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/sourceFile.d.ts +3 -7
- package/dist/analyzer/sourceFile.js +3 -19
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/testWalker.js +23 -15
- package/dist/analyzer/testWalker.js.map +1 -1
- package/dist/analyzer/typeCacheUtils.d.ts +8 -2
- package/dist/analyzer/typeCacheUtils.js +4 -4
- package/dist/analyzer/typeCacheUtils.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +283 -160
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +14 -9
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.js +0 -14
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typePrinter.d.ts +2 -1
- package/dist/analyzer/typePrinter.js +13 -0
- package/dist/analyzer/typePrinter.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +5 -4
- package/dist/analyzer/typeUtils.js +191 -144
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typeVarContext.d.ts +32 -19
- package/dist/analyzer/typeVarContext.js +173 -99
- package/dist/analyzer/typeVarContext.js.map +1 -1
- package/dist/analyzer/types.d.ts +2 -1
- package/dist/analyzer/types.js +1 -0
- package/dist/analyzer/types.js.map +1 -1
- package/dist/backgroundAnalysisBase.d.ts +1 -3
- package/dist/backgroundAnalysisBase.js +2 -3
- package/dist/backgroundAnalysisBase.js.map +1 -1
- package/dist/backgroundThreadBase.js +5 -1
- package/dist/backgroundThreadBase.js.map +1 -1
- package/dist/common/envVarUtils.d.ts +1 -1
- package/dist/common/envVarUtils.js +26 -16
- package/dist/common/envVarUtils.js.map +1 -1
- package/dist/common/extensibility.d.ts +44 -6
- package/dist/common/extensibility.js +26 -2
- package/dist/common/extensibility.js.map +1 -1
- package/dist/common/fullAccessHost.d.ts +2 -1
- package/dist/common/fullAccessHost.js +22 -0
- package/dist/common/fullAccessHost.js.map +1 -1
- package/dist/common/host.d.ts +6 -0
- package/dist/common/host.js +3 -0
- package/dist/common/host.js.map +1 -1
- package/dist/common/pathUtils.d.ts +2 -0
- package/dist/common/pathUtils.js +17 -3
- package/dist/common/pathUtils.js.map +1 -1
- package/dist/common/textRangeCollection.d.ts +1 -0
- package/dist/common/textRangeCollection.js +54 -20
- package/dist/common/textRangeCollection.js.map +1 -1
- package/dist/languageServerBase.d.ts +2 -4
- package/dist/languageServerBase.js +5 -6
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/callHierarchyProvider.js +1 -1
- package/dist/languageService/callHierarchyProvider.js.map +1 -1
- package/dist/languageService/completionProvider.d.ts +0 -1
- package/dist/languageService/completionProvider.js +33 -98
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/completionProviderUtils.d.ts +34 -0
- package/dist/languageService/completionProviderUtils.js +102 -0
- package/dist/languageService/completionProviderUtils.js.map +1 -0
- package/dist/languageService/definitionProvider.d.ts +2 -1
- package/dist/languageService/definitionProvider.js +25 -9
- package/dist/languageService/definitionProvider.js.map +1 -1
- package/dist/languageService/documentSymbolCollector.d.ts +2 -1
- package/dist/languageService/documentSymbolCollector.js +27 -3
- package/dist/languageService/documentSymbolCollector.js.map +1 -1
- package/dist/languageService/documentSymbolProvider.js +1 -1
- package/dist/languageService/documentSymbolProvider.js.map +1 -1
- package/dist/languageService/hoverProvider.d.ts +1 -0
- package/dist/languageService/hoverProvider.js +44 -10
- package/dist/languageService/hoverProvider.js.map +1 -1
- package/dist/languageService/referencesProvider.d.ts +2 -1
- package/dist/languageService/referencesProvider.js +4 -3
- package/dist/languageService/referencesProvider.js.map +1 -1
- package/dist/languageService/signatureHelpProvider.js +20 -3
- package/dist/languageService/signatureHelpProvider.js.map +1 -1
- package/dist/languageService/tooltipUtils.d.ts +3 -1
- package/dist/languageService/tooltipUtils.js +30 -10
- package/dist/languageService/tooltipUtils.js.map +1 -1
- package/dist/localization/localize.d.ts +8 -1
- package/dist/localization/localize.js +10 -10
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.en-us.json +3 -3
- package/dist/parser/stringTokenUtils.js +10 -0
- package/dist/parser/stringTokenUtils.js.map +1 -1
- package/dist/pyright.js +17 -9
- package/dist/pyright.js.map +1 -1
- package/dist/tests/fourslash/completions.autoimport.shadow.fourslash.js +1 -1
- package/dist/tests/fourslash/completions.autoimport.shadow.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.builtinDocstrings.fourslash.js +5 -5
- package/dist/tests/fourslash/completions.builtinDocstrings.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.fourslash.js +2 -2
- package/dist/tests/fourslash/completions.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.inherited.overload.docFromScrWithStub.fourslash.js +1 -1
- package/dist/tests/fourslash/completions.inherited.overload.docFromScrWithStub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.inherited.overload.docFromStub.fourslash.js +1 -1
- package/dist/tests/fourslash/completions.inherited.overload.docFromStub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.libCodeAndStub.fourslash.js +1 -1
- package/dist/tests/fourslash/completions.libCodeAndStub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.libCodeNoStub.fourslash.js +1 -1
- package/dist/tests/fourslash/completions.libCodeNoStub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.libStub.fourslash.js +1 -1
- package/dist/tests/fourslash/completions.libStub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.localCode.fourslash.js +2 -2
- package/dist/tests/fourslash/completions.localCode.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.overloads.fourslash.js +1 -1
- package/dist/tests/fourslash/completions.overloads.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.params.fourslash.js +37 -0
- package/dist/tests/fourslash/completions.params.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.plainText.fourslash.js +2 -2
- package/dist/tests/fourslash/completions.plainText.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.self.fourslash.js +2 -2
- package/dist/tests/fourslash/completions.self.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.wildcardimports.fourslash.js +1 -1
- package/dist/tests/fourslash/completions.wildcardimports.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.builtinDocstrings.fourslash.js +7 -7
- package/dist/tests/fourslash/hover.builtinDocstrings.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.class.docString.fourslash.js +1 -1
- package/dist/tests/fourslash/hover.class.docString.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.classNoInit.fourslash.js +1 -1
- package/dist/tests/fourslash/hover.classNoInit.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.docFromSrc.fourslash.js +7 -7
- package/dist/tests/fourslash/hover.docFromSrc.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.docFromSrc.pkg-vs-module1.fourslash.js +1 -1
- package/dist/tests/fourslash/hover.docFromSrc.pkg-vs-module1.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.docFromSrc.pkg-vs-module2.fourslash.js +1 -1
- package/dist/tests/fourslash/hover.docFromSrc.pkg-vs-module2.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.docFromSrc.relativeImport1.fourslash.js +1 -1
- package/dist/tests/fourslash/hover.docFromSrc.relativeImport1.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.docFromSrc.relativeImport2.fourslash.js +1 -1
- package/dist/tests/fourslash/hover.docFromSrc.relativeImport2.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.docFromSrc.relativeImport3.fourslash.js +1 -1
- package/dist/tests/fourslash/hover.docFromSrc.relativeImport3.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.docFromSrc.stubs-package.fourslash.js +2 -2
- package/dist/tests/fourslash/hover.docFromSrc.stubs-package.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.docFromSrc.typeshed.fourslash.js +1 -1
- package/dist/tests/fourslash/hover.docFromSrc.typeshed.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.docstring.links.fourslash.js +1 -1
- package/dist/tests/fourslash/hover.docstring.links.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.docstring.split.fourslash.js +3 -3
- package/dist/tests/fourslash/hover.docstring.split.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.dunderNew.basic.fourslash.js +1 -1
- package/dist/tests/fourslash/hover.dunderNew.basic.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.dunderNew.inheritance.fourslash.js +1 -1
- package/dist/tests/fourslash/hover.dunderNew.inheritance.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.dunderNew.inheritance2.fourslash.js +1 -1
- package/dist/tests/fourslash/hover.dunderNew.inheritance2.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.dunderNew.overloads.fourslash.js +1 -1
- package/dist/tests/fourslash/hover.dunderNew.overloads.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.dunderNew.withInit.fourslash.js +1 -1
- package/dist/tests/fourslash/hover.dunderNew.withInit.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.formatted.fourslash.js +6 -6
- package/dist/tests/fourslash/hover.formatted.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.fourslash.js +1 -1
- package/dist/tests/fourslash/hover.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.inherited.docFromSrc.fourslash.js +6 -6
- package/dist/tests/fourslash/hover.inherited.docFromSrc.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.inherited.docFromSrcWithStub.fourslash.js +5 -5
- package/dist/tests/fourslash/hover.inherited.docFromSrcWithStub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.inherited.docFromStub.fourslash.js +4 -4
- package/dist/tests/fourslash/hover.inherited.docFromStub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.inherited.overload.docFromSrcWithStub.fourslash.js +2 -2
- package/dist/tests/fourslash/hover.inherited.overload.docFromSrcWithStub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.inherited.overload.docFromStub.fourslash.js +2 -2
- package/dist/tests/fourslash/hover.inherited.overload.docFromStub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.init.fourslash.js +4 -4
- package/dist/tests/fourslash/hover.init.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.libCodeAndStub.fourslash.js +2 -2
- package/dist/tests/fourslash/hover.libCodeAndStub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.libCodeNoStub.fourslash.js +2 -2
- package/dist/tests/fourslash/hover.libCodeNoStub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.libStub.fourslash.js +2 -2
- package/dist/tests/fourslash/hover.libStub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.overloadedFunction.fourslash.js +2 -2
- package/dist/tests/fourslash/hover.overloadedFunction.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.plainText.fourslash.js +1 -1
- package/dist/tests/fourslash/hover.plainText.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.wildcardimports.fourslash.js +1 -1
- package/dist/tests/fourslash/hover.wildcardimports.fourslash.js.map +1 -1
- package/dist/tests/fourslash/import.multipart.fourslash.js +1 -1
- package/dist/tests/fourslash/import.multipart.fourslash.js.map +1 -1
- package/dist/tests/fourslash/import.pytyped.typeCheckingBasic.fourslash.js +1 -1
- package/dist/tests/fourslash/import.pytyped.typeCheckingBasic.fourslash.js.map +1 -1
- package/dist/tests/fourslash/import.pytyped.typeCheckingOff.fourslash.js +1 -1
- package/dist/tests/fourslash/import.pytyped.typeCheckingOff.fourslash.js.map +1 -1
- package/dist/tests/fourslash/signature.complicated.fourslash.js +31 -1
- package/dist/tests/fourslash/signature.complicated.fourslash.js.map +1 -1
- package/dist/tests/harness/fourslash/testLanguageService.js +1 -1
- package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
- package/dist/tests/hoverProvider.test.js +27 -0
- package/dist/tests/hoverProvider.test.js.map +1 -1
- package/dist/tests/pathUtils.test.js +24 -1
- package/dist/tests/pathUtils.test.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +16 -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 +2 -2
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +11 -3
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/dist/workspaceMap.d.ts +4 -0
- package/dist/workspaceMap.js +67 -37
- package/dist/workspaceMap.js.map +1 -1
- package/package.json +1 -1
@@ -10,65 +10,26 @@
|
|
10
10
|
* each type variable.
|
11
11
|
*/
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
13
|
-
exports.TypeVarContext = void 0;
|
13
|
+
exports.TypeVarContext = exports.TypeVarSignatureContext = void 0;
|
14
14
|
const debug_1 = require("../common/debug");
|
15
15
|
const types_1 = require("./types");
|
16
16
|
const typeUtils_1 = require("./typeUtils");
|
17
|
-
class
|
18
|
-
constructor(
|
19
|
-
this._isLocked = false;
|
20
|
-
if (Array.isArray(solveForScopes)) {
|
21
|
-
this._solveForScopes = solveForScopes;
|
22
|
-
}
|
23
|
-
else if (solveForScopes !== undefined) {
|
24
|
-
this._solveForScopes = [solveForScopes];
|
25
|
-
}
|
26
|
-
else {
|
27
|
-
this._solveForScopes = undefined;
|
28
|
-
}
|
17
|
+
class TypeVarSignatureContext {
|
18
|
+
constructor() {
|
29
19
|
this._typeVarMap = new Map();
|
30
20
|
}
|
31
21
|
clone() {
|
32
|
-
const
|
33
|
-
if (this._solveForScopes) {
|
34
|
-
newTypeVarMap._solveForScopes = [...this._solveForScopes];
|
35
|
-
}
|
22
|
+
const newContext = new TypeVarSignatureContext();
|
36
23
|
this._typeVarMap.forEach((value) => {
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
this._tupleTypeVarMap.forEach((value) => {
|
41
|
-
newTypeVarMap.setTupleTypeVar(value.typeVar, value.types);
|
42
|
-
});
|
43
|
-
}
|
44
|
-
newTypeVarMap._isLocked = this._isLocked;
|
45
|
-
return newTypeVarMap;
|
46
|
-
}
|
47
|
-
// Copies a cloned type var map back into this object.
|
48
|
-
copyFromClone(clone) {
|
49
|
-
this._typeVarMap = clone._typeVarMap;
|
50
|
-
this._tupleTypeVarMap = clone._tupleTypeVarMap;
|
51
|
-
this._isLocked = clone._isLocked;
|
52
|
-
}
|
53
|
-
// Returns the list of scopes this type var map is "solving".
|
54
|
-
getSolveForScopes() {
|
55
|
-
return this._solveForScopes;
|
56
|
-
}
|
57
|
-
hasSolveForScope(scopeId) {
|
58
|
-
return (scopeId !== undefined &&
|
59
|
-
this._solveForScopes !== undefined &&
|
60
|
-
this._solveForScopes.some((s) => s === scopeId || s === types_1.WildcardTypeVarScopeId));
|
61
|
-
}
|
62
|
-
setSolveForScopes(scopeIds) {
|
63
|
-
this._solveForScopes = scopeIds;
|
64
|
-
}
|
65
|
-
addSolveForScope(scopeId) {
|
66
|
-
if (scopeId !== undefined && !this.hasSolveForScope(scopeId)) {
|
67
|
-
if (!this._solveForScopes) {
|
68
|
-
this._solveForScopes = [];
|
24
|
+
newContext.setTypeVarType(value.typeVar, value.narrowBound, value.narrowBoundNoLiterals, value.wideBound);
|
25
|
+
if (value.tupleTypes) {
|
26
|
+
newContext.setTupleTypeVar(value.typeVar, value.tupleTypes);
|
69
27
|
}
|
70
|
-
|
28
|
+
});
|
29
|
+
if (this._sourceTypeVarScopeId) {
|
30
|
+
this._sourceTypeVarScopeId.forEach((scopeId) => newContext.addSourceTypeVarScopeId(scopeId));
|
71
31
|
}
|
32
|
+
return newContext;
|
72
33
|
}
|
73
34
|
isEmpty() {
|
74
35
|
return this._typeVarMap.size === 0;
|
@@ -89,12 +50,9 @@ class TypeVarContext {
|
|
89
50
|
});
|
90
51
|
return score;
|
91
52
|
}
|
92
|
-
hasTypeVar(reference) {
|
93
|
-
return this._typeVarMap.has(this._getKey(reference));
|
94
|
-
}
|
95
53
|
getTypeVarType(reference, useNarrowBoundOnly = false) {
|
96
54
|
var _a, _b;
|
97
|
-
const entry = this.
|
55
|
+
const entry = this.getTypeVar(reference);
|
98
56
|
if (!entry) {
|
99
57
|
return undefined;
|
100
58
|
}
|
@@ -107,7 +65,7 @@ class TypeVarContext {
|
|
107
65
|
return (_b = (_a = entry.narrowBoundNoLiterals) !== null && _a !== void 0 ? _a : entry.narrowBound) !== null && _b !== void 0 ? _b : entry.wideBound;
|
108
66
|
}
|
109
67
|
getParamSpecType(reference) {
|
110
|
-
const entry = this.
|
68
|
+
const entry = this.getTypeVar(reference);
|
111
69
|
if (!(entry === null || entry === void 0 ? void 0 : entry.narrowBound)) {
|
112
70
|
return undefined;
|
113
71
|
}
|
@@ -117,25 +75,21 @@ class TypeVarContext {
|
|
117
75
|
return undefined;
|
118
76
|
}
|
119
77
|
setTypeVarType(reference, narrowBound, narrowBoundNoLiterals, wideBound) {
|
120
|
-
|
121
|
-
const key = this._getKey(reference);
|
78
|
+
const key = types_1.TypeVarType.getNameWithScope(reference);
|
122
79
|
this._typeVarMap.set(key, { typeVar: reference, narrowBound, narrowBoundNoLiterals, wideBound });
|
123
80
|
}
|
124
81
|
getTupleTypeVar(reference) {
|
125
|
-
var _a
|
126
|
-
return (
|
82
|
+
var _a;
|
83
|
+
return (_a = this.getTypeVar(reference)) === null || _a === void 0 ? void 0 : _a.tupleTypes;
|
127
84
|
}
|
128
85
|
setTupleTypeVar(reference, types) {
|
129
|
-
|
130
|
-
const
|
131
|
-
|
132
|
-
|
133
|
-
this._tupleTypeVarMap = new Map();
|
134
|
-
}
|
135
|
-
this._tupleTypeVarMap.set(key, { typeVar: reference, types });
|
86
|
+
// Caller should have already assigned a value to this type variable.
|
87
|
+
const entry = this.getTypeVar(reference);
|
88
|
+
(0, debug_1.assert)(entry);
|
89
|
+
entry.tupleTypes = types;
|
136
90
|
}
|
137
91
|
getTypeVar(reference) {
|
138
|
-
const key =
|
92
|
+
const key = types_1.TypeVarType.getNameWithScope(reference);
|
139
93
|
return this._typeVarMap.get(key);
|
140
94
|
}
|
141
95
|
getTypeVars() {
|
@@ -147,13 +101,6 @@ class TypeVarContext {
|
|
147
101
|
}
|
148
102
|
// Applies solved TypeVars from one context to this context.
|
149
103
|
applySourceContextTypeVars(srcContext) {
|
150
|
-
var _a;
|
151
|
-
// If there are no solved TypeVars, don't bother.
|
152
|
-
if (srcContext.getTypeVarCount() === 0) {
|
153
|
-
return;
|
154
|
-
}
|
155
|
-
const wasLocked = this.isLocked();
|
156
|
-
this.unlock();
|
157
104
|
this._typeVarMap.forEach((entry) => {
|
158
105
|
const newNarrowTypeBound = entry.narrowBound
|
159
106
|
? (0, typeUtils_1.applySolvedTypeVars)(entry.narrowBound, srcContext)
|
@@ -163,41 +110,34 @@ class TypeVarContext {
|
|
163
110
|
: undefined;
|
164
111
|
const newWideTypeBound = entry.wideBound ? (0, typeUtils_1.applySolvedTypeVars)(entry.wideBound, srcContext) : undefined;
|
165
112
|
this.setTypeVarType(entry.typeVar, newNarrowTypeBound, newNarrowTypeBoundNoLiterals, newWideTypeBound);
|
113
|
+
if (entry.tupleTypes) {
|
114
|
+
this.setTupleTypeVar(entry.typeVar, entry.tupleTypes.map((arg) => {
|
115
|
+
return { isUnbounded: arg.isUnbounded, type: (0, typeUtils_1.applySolvedTypeVars)(arg.type, srcContext) };
|
116
|
+
}));
|
117
|
+
}
|
166
118
|
});
|
167
|
-
(_a = this._tupleTypeVarMap) === null || _a === void 0 ? void 0 : _a.forEach((entry) => {
|
168
|
-
const updatedTypes = entry.types.map((arg) => {
|
169
|
-
return { isUnbounded: arg.isUnbounded, type: (0, typeUtils_1.applySolvedTypeVars)(arg.type, srcContext) };
|
170
|
-
});
|
171
|
-
this.setTupleTypeVar(entry.typeVar, updatedTypes);
|
172
|
-
});
|
173
|
-
if (wasLocked) {
|
174
|
-
this.lock();
|
175
|
-
}
|
176
119
|
}
|
177
120
|
getTypeVarCount() {
|
178
121
|
return this._typeVarMap.size;
|
179
122
|
}
|
180
123
|
getWideTypeBound(reference) {
|
181
|
-
const entry = this.
|
124
|
+
const entry = this.getTypeVar(reference);
|
182
125
|
if (entry) {
|
183
126
|
return entry.wideBound;
|
184
127
|
}
|
185
128
|
return undefined;
|
186
129
|
}
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
unlock() {
|
193
|
-
// Unlocks the type var map, allowing further changes.
|
194
|
-
this._isLocked = false;
|
195
|
-
}
|
196
|
-
isLocked() {
|
197
|
-
return this._isLocked;
|
130
|
+
addSourceTypeVarScopeId(scopeId) {
|
131
|
+
if (!this._sourceTypeVarScopeId) {
|
132
|
+
this._sourceTypeVarScopeId = new Set();
|
133
|
+
}
|
134
|
+
this._sourceTypeVarScopeId.add(scopeId);
|
198
135
|
}
|
199
|
-
|
200
|
-
|
136
|
+
hasSourceTypeVarScopeId(scopeId) {
|
137
|
+
if (!this._sourceTypeVarScopeId) {
|
138
|
+
return false;
|
139
|
+
}
|
140
|
+
return this._sourceTypeVarScopeId.has(scopeId);
|
201
141
|
}
|
202
142
|
// Returns a "score" for a type that captures the relative complexity
|
203
143
|
// of the type. Scores should all be between 0 and 1 where 0 means
|
@@ -230,8 +170,10 @@ class TypeVarContext {
|
|
230
170
|
maxScore = Math.max(maxScore, subtypeScore);
|
231
171
|
});
|
232
172
|
}
|
233
|
-
|
234
|
-
|
173
|
+
else {
|
174
|
+
maxScore = 0.5;
|
175
|
+
}
|
176
|
+
return maxScore;
|
235
177
|
}
|
236
178
|
case 7 /* Class */: {
|
237
179
|
return this._getComplexityScoreForClass(type, recursionCount);
|
@@ -265,5 +207,137 @@ class TypeVarContext {
|
|
265
207
|
return 0.5 + averageTypeArgComplexity * 0.25;
|
266
208
|
}
|
267
209
|
}
|
210
|
+
exports.TypeVarSignatureContext = TypeVarSignatureContext;
|
211
|
+
class TypeVarContext {
|
212
|
+
constructor(solveForScopes) {
|
213
|
+
this._isLocked = false;
|
214
|
+
if (Array.isArray(solveForScopes)) {
|
215
|
+
this._solveForScopes = solveForScopes;
|
216
|
+
}
|
217
|
+
else if (solveForScopes !== undefined) {
|
218
|
+
this._solveForScopes = [solveForScopes];
|
219
|
+
}
|
220
|
+
else {
|
221
|
+
this._solveForScopes = undefined;
|
222
|
+
}
|
223
|
+
this._signatureContexts = [new TypeVarSignatureContext()];
|
224
|
+
}
|
225
|
+
clone() {
|
226
|
+
const newTypeVarMap = new TypeVarContext();
|
227
|
+
if (this._solveForScopes) {
|
228
|
+
newTypeVarMap._solveForScopes = [...this._solveForScopes];
|
229
|
+
}
|
230
|
+
newTypeVarMap._signatureContexts = this._signatureContexts.map((context) => context.clone());
|
231
|
+
newTypeVarMap._isLocked = this._isLocked;
|
232
|
+
return newTypeVarMap;
|
233
|
+
}
|
234
|
+
cloneWithSignatureSource(typeVarScopeId) {
|
235
|
+
const clonedContext = this.clone();
|
236
|
+
if (typeVarScopeId) {
|
237
|
+
const filteredSignatures = this._signatureContexts.filter((context) => context.hasSourceTypeVarScopeId(typeVarScopeId));
|
238
|
+
if (filteredSignatures.length > 0) {
|
239
|
+
clonedContext._signatureContexts = filteredSignatures;
|
240
|
+
}
|
241
|
+
else {
|
242
|
+
clonedContext._signatureContexts.forEach((context) => {
|
243
|
+
context.addSourceTypeVarScopeId(typeVarScopeId);
|
244
|
+
});
|
245
|
+
}
|
246
|
+
}
|
247
|
+
return clonedContext;
|
248
|
+
}
|
249
|
+
// Copies a cloned type var context back into this object.
|
250
|
+
copyFromClone(clone) {
|
251
|
+
this._signatureContexts = clone._signatureContexts.map((context) => context.clone());
|
252
|
+
this._isLocked = clone._isLocked;
|
253
|
+
}
|
254
|
+
// Copy the specified signature contexts into this type var context.
|
255
|
+
copySignatureContexts(contexts) {
|
256
|
+
(0, debug_1.assert)(contexts.length > 0);
|
257
|
+
this._signatureContexts = [...contexts];
|
258
|
+
}
|
259
|
+
// Returns the list of scopes this type var map is "solving".
|
260
|
+
getSolveForScopes() {
|
261
|
+
return this._solveForScopes;
|
262
|
+
}
|
263
|
+
hasSolveForScope(scopeId) {
|
264
|
+
return (scopeId !== undefined &&
|
265
|
+
this._solveForScopes !== undefined &&
|
266
|
+
this._solveForScopes.some((s) => s === scopeId || s === types_1.WildcardTypeVarScopeId));
|
267
|
+
}
|
268
|
+
setSolveForScopes(scopeIds) {
|
269
|
+
this._solveForScopes = scopeIds;
|
270
|
+
}
|
271
|
+
addSolveForScope(scopeId) {
|
272
|
+
if (scopeId !== undefined && !this.hasSolveForScope(scopeId)) {
|
273
|
+
if (!this._solveForScopes) {
|
274
|
+
this._solveForScopes = [];
|
275
|
+
}
|
276
|
+
this._solveForScopes.push(scopeId);
|
277
|
+
}
|
278
|
+
}
|
279
|
+
lock() {
|
280
|
+
// Locks the type var map, preventing any further changes.
|
281
|
+
(0, debug_1.assert)(!this._isLocked);
|
282
|
+
this._isLocked = true;
|
283
|
+
}
|
284
|
+
unlock() {
|
285
|
+
// Unlocks the type var map, allowing further changes.
|
286
|
+
this._isLocked = false;
|
287
|
+
}
|
288
|
+
isLocked() {
|
289
|
+
return this._isLocked;
|
290
|
+
}
|
291
|
+
isEmpty() {
|
292
|
+
return this._signatureContexts.every((context) => context.isEmpty());
|
293
|
+
}
|
294
|
+
// Applies solved TypeVars from one context to this context.
|
295
|
+
applySourceContextTypeVars(srcContext) {
|
296
|
+
if (srcContext.isEmpty()) {
|
297
|
+
return;
|
298
|
+
}
|
299
|
+
const wasLocked = this.isLocked();
|
300
|
+
this.unlock();
|
301
|
+
this._signatureContexts.forEach((context) => context.applySourceContextTypeVars(srcContext));
|
302
|
+
if (wasLocked) {
|
303
|
+
this.lock();
|
304
|
+
}
|
305
|
+
}
|
306
|
+
setTypeVarType(reference, narrowBound, narrowBoundNoLiterals, wideBound) {
|
307
|
+
(0, debug_1.assert)(!this._isLocked);
|
308
|
+
return this._signatureContexts.forEach((context) => {
|
309
|
+
context.setTypeVarType(reference, narrowBound, narrowBoundNoLiterals, wideBound);
|
310
|
+
});
|
311
|
+
}
|
312
|
+
setTupleTypeVar(reference, tupleTypes) {
|
313
|
+
(0, debug_1.assert)(!this._isLocked);
|
314
|
+
return this._signatureContexts.forEach((context) => {
|
315
|
+
context.setTupleTypeVar(reference, tupleTypes);
|
316
|
+
});
|
317
|
+
}
|
318
|
+
getScore() {
|
319
|
+
let total = 0;
|
320
|
+
this._signatureContexts.forEach((context) => {
|
321
|
+
total += context.getScore();
|
322
|
+
});
|
323
|
+
// Return the average score among all signature contexts.
|
324
|
+
return total / this._signatureContexts.length;
|
325
|
+
}
|
326
|
+
getPrimarySignature() {
|
327
|
+
return this._signatureContexts[0];
|
328
|
+
}
|
329
|
+
getSignatureContexts() {
|
330
|
+
return this._signatureContexts;
|
331
|
+
}
|
332
|
+
getSignatureContext(index) {
|
333
|
+
(0, debug_1.assert)(index >= 0 && index < this._signatureContexts.length);
|
334
|
+
return this._signatureContexts[index];
|
335
|
+
}
|
336
|
+
doForEachSignature(callback) {
|
337
|
+
this._signatureContexts.forEach((context) => {
|
338
|
+
callback(context);
|
339
|
+
});
|
340
|
+
}
|
341
|
+
}
|
268
342
|
exports.TypeVarContext = TypeVarContext;
|
269
343
|
//# sourceMappingURL=typeVarContext.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"typeVarContext.js","sourceRoot":"","sources":["../../../src/analyzer/typeVarContext.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAEH,2CAAyC;AACzC,mCAYiB;AACjB,2CAAoE;
|
1
|
+
{"version":3,"file":"typeVarContext.js","sourceRoot":"","sources":["../../../src/analyzer/typeVarContext.ts"],"names":[],"mappings":"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"}
|
package/dist/analyzer/types.d.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import { ExpressionNode, ParameterCategory } from '../parser/parseNodes';
|
1
|
+
import { ExpressionNode, NameNode, ParameterCategory } from '../parser/parseNodes';
|
2
2
|
import { FunctionDeclaration } from './declaration';
|
3
3
|
import { Symbol, SymbolTable } from './symbol';
|
4
4
|
export declare const enum TypeCategory {
|
@@ -106,6 +106,7 @@ export interface DataClassEntry {
|
|
106
106
|
isKeywordOnly: boolean;
|
107
107
|
alias?: string | undefined;
|
108
108
|
hasDefault?: boolean | undefined;
|
109
|
+
nameNode: NameNode | undefined;
|
109
110
|
defaultValueExpression?: ExpressionNode | undefined;
|
110
111
|
includeInInit: boolean;
|
111
112
|
type: Type;
|
package/dist/analyzer/types.js
CHANGED
@@ -949,6 +949,7 @@ var FunctionType;
|
|
949
949
|
(2 /* ClassMethod */ |
|
950
950
|
4 /* StaticMethod */ |
|
951
951
|
1 /* ConstructorMethod */ |
|
952
|
+
256 /* Overloaded */ |
|
952
953
|
32768 /* SkipArgsKwargsCompatibilityCheck */)) |
|
953
954
|
64 /* SynthesizedMethod */;
|
954
955
|
if (FunctionType.isParamSpecValue(type)) {
|