@zzzen/pyright-internal 1.2.0-dev.20240728 → 1.2.0-dev.20240804
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 +7 -4
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/checker.d.ts +2 -1
- package/dist/analyzer/checker.js +135 -83
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.js +4 -4
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/constraintSolution.d.ts +21 -0
- package/dist/analyzer/constraintSolution.js +71 -0
- package/dist/analyzer/constraintSolution.js.map +1 -0
- package/dist/analyzer/constraintSolver.d.ts +9 -5
- package/dist/analyzer/constraintSolver.js +420 -322
- package/dist/analyzer/constraintSolver.js.map +1 -1
- package/dist/analyzer/constraintTracker.d.ts +44 -0
- package/dist/analyzer/constraintTracker.js +230 -0
- package/dist/analyzer/constraintTracker.js.map +1 -0
- package/dist/analyzer/constructorTransform.js +15 -15
- package/dist/analyzer/constructorTransform.js.map +1 -1
- package/dist/analyzer/constructors.d.ts +1 -1
- package/dist/analyzer/constructors.js +59 -38
- package/dist/analyzer/constructors.js.map +1 -1
- package/dist/analyzer/dataClasses.js +35 -32
- package/dist/analyzer/dataClasses.js.map +1 -1
- package/dist/analyzer/decorators.js +1 -1
- package/dist/analyzer/decorators.js.map +1 -1
- package/dist/analyzer/functionTransform.js +1 -1
- package/dist/analyzer/functionTransform.js.map +1 -1
- package/dist/analyzer/operations.d.ts +1 -2
- package/dist/analyzer/operations.js +95 -72
- package/dist/analyzer/operations.js.map +1 -1
- package/dist/analyzer/packageTypeVerifier.js +8 -4
- package/dist/analyzer/packageTypeVerifier.js.map +1 -1
- package/dist/analyzer/parameterUtils.d.ts +3 -3
- package/dist/analyzer/parameterUtils.js +19 -21
- package/dist/analyzer/parameterUtils.js.map +1 -1
- package/dist/analyzer/patternMatching.js +21 -19
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/properties.d.ts +3 -2
- package/dist/analyzer/properties.js +11 -11
- package/dist/analyzer/properties.js.map +1 -1
- package/dist/analyzer/protocols.d.ts +3 -3
- package/dist/analyzer/protocols.js +50 -48
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/tuples.d.ts +2 -2
- package/dist/analyzer/tuples.js +10 -9
- package/dist/analyzer/tuples.js.map +1 -1
- package/dist/analyzer/typeComplexity.js +12 -4
- package/dist/analyzer/typeComplexity.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +806 -778
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +28 -8
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.js +46 -39
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typePrinter.js +17 -15
- package/dist/analyzer/typePrinter.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +32 -30
- package/dist/analyzer/typeUtils.js +331 -563
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typeWalker.js +1 -1
- package/dist/analyzer/typeWalker.js.map +1 -1
- package/dist/analyzer/typedDicts.d.ts +2 -2
- package/dist/analyzer/typedDicts.js +25 -25
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/types.d.ts +24 -21
- package/dist/analyzer/types.js +110 -113
- package/dist/analyzer/types.js.map +1 -1
- package/dist/languageServerBase.d.ts +2 -2
- package/dist/languageServerBase.js +5 -2
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/completionProvider.js +2 -2
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/tests/checker.test.js +10 -2
- package/dist/tests/checker.test.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +1 -1
- package/dist/tests/typeEvaluator2.test.js +12 -0
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +4 -0
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +1 -1
- package/dist/tests/typeEvaluator5.test.js +1 -1
- package/dist/tests/typeEvaluator7.test.js +4 -0
- package/dist/tests/typeEvaluator7.test.js.map +1 -1
- package/dist/tests/typeEvaluator8.test.js +4 -0
- package/dist/tests/typeEvaluator8.test.js.map +1 -1
- package/package.json +1 -1
- package/dist/analyzer/typeVarContext.d.ts +0 -48
- package/dist/analyzer/typeVarContext.js +0 -288
- package/dist/analyzer/typeVarContext.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"constraintSolver.js","sourceRoot":"","sources":["../../../../../src/analyzer/constraintSolver.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"constraintSolver.js","sourceRoot":"","sources":["../../../../../src/analyzer/constraintSolver.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,44 @@
|
|
1
|
+
import { Type, TypeVarScopeId, TypeVarType } from './types';
|
2
|
+
export interface TypeVarConstraints {
|
3
|
+
typeVar: TypeVarType;
|
4
|
+
lowerBound?: Type | undefined;
|
5
|
+
lowerBoundNoLiterals?: Type | undefined;
|
6
|
+
upperBound?: Type | undefined;
|
7
|
+
}
|
8
|
+
export declare class ConstraintSet {
|
9
|
+
private _typeVarMap;
|
10
|
+
private _scopeIds;
|
11
|
+
constructor();
|
12
|
+
clone(): ConstraintSet;
|
13
|
+
isSame(other: ConstraintSet): boolean;
|
14
|
+
isEmpty(): boolean;
|
15
|
+
getScore(): number;
|
16
|
+
setBounds(reference: TypeVarType, lowerBound: Type | undefined, lowerBoundNoLiterals?: Type, upperBound?: Type): void;
|
17
|
+
doForEachTypeVar(cb: (entry: TypeVarConstraints) => void): void;
|
18
|
+
getTypeVar(reference: TypeVarType): TypeVarConstraints | undefined;
|
19
|
+
getTypeVars(): TypeVarConstraints[];
|
20
|
+
addScopeId(scopeId: TypeVarScopeId): void;
|
21
|
+
hasScopeId(scopeId: TypeVarScopeId): boolean;
|
22
|
+
getScopeIds(): Set<string>;
|
23
|
+
hasUnificationVars(): boolean;
|
24
|
+
}
|
25
|
+
export declare class ConstraintTracker {
|
26
|
+
private _isLocked;
|
27
|
+
private _constraintSets;
|
28
|
+
constructor();
|
29
|
+
clone(): ConstraintTracker;
|
30
|
+
cloneWithSignature(scopeId: TypeVarScopeId): ConstraintTracker;
|
31
|
+
copyFromClone(clone: ConstraintTracker): void;
|
32
|
+
addConstraintSets(contexts: ConstraintSet[]): void;
|
33
|
+
isSame(other: ConstraintTracker): boolean;
|
34
|
+
lock(): void;
|
35
|
+
unlock(): void;
|
36
|
+
isLocked(): boolean;
|
37
|
+
isEmpty(): boolean;
|
38
|
+
setBounds(reference: TypeVarType, lowerBound: Type | undefined, lowerBoundNoLiterals?: Type, upperBound?: Type): void;
|
39
|
+
getScore(): number;
|
40
|
+
getMainConstraintSet(): ConstraintSet;
|
41
|
+
getConstraintSets(): ConstraintSet[];
|
42
|
+
doForEachConstraintSet(callback: (constraintSet: ConstraintSet, index: number) => void): void;
|
43
|
+
getConstraintSet(index: number): ConstraintSet;
|
44
|
+
}
|
@@ -0,0 +1,230 @@
|
|
1
|
+
"use strict";
|
2
|
+
/*
|
3
|
+
* constraintTracker.ts
|
4
|
+
* Copyright (c) Microsoft Corporation.
|
5
|
+
* Licensed under the MIT license.
|
6
|
+
* Author: Eric Traut
|
7
|
+
*
|
8
|
+
* Module that tracks the constraints for a set of type variables.
|
9
|
+
* It is used by the constraint solver to solve for the type of
|
10
|
+
* each type variable.
|
11
|
+
*/
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
13
|
+
exports.ConstraintTracker = exports.ConstraintSet = void 0;
|
14
|
+
const debug_1 = require("../common/debug");
|
15
|
+
const typeComplexity_1 = require("./typeComplexity");
|
16
|
+
const types_1 = require("./types");
|
17
|
+
// The maximum number of constraint sets that can be associated
|
18
|
+
// with a constraint tracker. This equates to the number of overloads
|
19
|
+
// that can be captured by a ParamSpec (or multiple ParamSpecs).
|
20
|
+
// We should never hit this limit in practice, but there are certain
|
21
|
+
// pathological cases where we could, and we need to protect against
|
22
|
+
// this so it doesn't completely exhaust memory. This was previously
|
23
|
+
// set to 64, but we have seen cases where a library uses in excess
|
24
|
+
// of 300 overloads on a single function.
|
25
|
+
const maxConstraintSetCount = 1024;
|
26
|
+
// Records the constraints information for a set of type variables
|
27
|
+
// associated with a callee's signature.
|
28
|
+
class ConstraintSet {
|
29
|
+
constructor() {
|
30
|
+
this._typeVarMap = new Map();
|
31
|
+
}
|
32
|
+
clone() {
|
33
|
+
const constraintSet = new ConstraintSet();
|
34
|
+
this._typeVarMap.forEach((value) => {
|
35
|
+
constraintSet.setBounds(value.typeVar, value.lowerBound, value.lowerBoundNoLiterals, value.upperBound);
|
36
|
+
});
|
37
|
+
if (this._scopeIds) {
|
38
|
+
this._scopeIds.forEach((scopeId) => constraintSet.addScopeId(scopeId));
|
39
|
+
}
|
40
|
+
return constraintSet;
|
41
|
+
}
|
42
|
+
isSame(other) {
|
43
|
+
if (this._typeVarMap.size !== other._typeVarMap.size) {
|
44
|
+
return false;
|
45
|
+
}
|
46
|
+
function typesMatch(type1, type2) {
|
47
|
+
if (!type1 || !type2) {
|
48
|
+
return type1 === type2;
|
49
|
+
}
|
50
|
+
return (0, types_1.isTypeSame)(type1, type2);
|
51
|
+
}
|
52
|
+
let isSame = true;
|
53
|
+
this._typeVarMap.forEach((value, key) => {
|
54
|
+
const otherValue = other._typeVarMap.get(key);
|
55
|
+
if (!otherValue ||
|
56
|
+
!typesMatch(value.lowerBound, otherValue.lowerBound) ||
|
57
|
+
!typesMatch(value.upperBound, otherValue.upperBound)) {
|
58
|
+
isSame = false;
|
59
|
+
}
|
60
|
+
});
|
61
|
+
return isSame;
|
62
|
+
}
|
63
|
+
isEmpty() {
|
64
|
+
return this._typeVarMap.size === 0;
|
65
|
+
}
|
66
|
+
// Provides a "score" - a value that values completeness (number
|
67
|
+
// of type variables that are assigned) and simplicity.
|
68
|
+
getScore() {
|
69
|
+
let score = 0;
|
70
|
+
// Sum the scores for the defined type vars.
|
71
|
+
this._typeVarMap.forEach((entry) => {
|
72
|
+
var _a;
|
73
|
+
// Add 1 to the score for each type variable defined.
|
74
|
+
score += 1;
|
75
|
+
// Add a fractional amount based on the simplicity of the definition.
|
76
|
+
// The more complex, the lower the score. In the spirit of Occam's
|
77
|
+
// Razor, we always want to favor simple answers.
|
78
|
+
const typeVarType = (_a = entry.lowerBound) !== null && _a !== void 0 ? _a : entry.upperBound;
|
79
|
+
if (typeVarType) {
|
80
|
+
score += 1.0 - (0, typeComplexity_1.getComplexityScoreForType)(typeVarType);
|
81
|
+
}
|
82
|
+
});
|
83
|
+
return score;
|
84
|
+
}
|
85
|
+
setBounds(reference, lowerBound, lowerBoundNoLiterals, upperBound) {
|
86
|
+
const key = types_1.TypeVarType.getNameWithScope(reference);
|
87
|
+
this._typeVarMap.set(key, {
|
88
|
+
typeVar: reference,
|
89
|
+
lowerBound,
|
90
|
+
lowerBoundNoLiterals,
|
91
|
+
upperBound,
|
92
|
+
});
|
93
|
+
}
|
94
|
+
doForEachTypeVar(cb) {
|
95
|
+
this._typeVarMap.forEach(cb);
|
96
|
+
}
|
97
|
+
getTypeVar(reference) {
|
98
|
+
const key = types_1.TypeVarType.getNameWithScope(reference);
|
99
|
+
return this._typeVarMap.get(key);
|
100
|
+
}
|
101
|
+
getTypeVars() {
|
102
|
+
const entries = [];
|
103
|
+
this._typeVarMap.forEach((entry) => {
|
104
|
+
entries.push(entry);
|
105
|
+
});
|
106
|
+
return entries;
|
107
|
+
}
|
108
|
+
addScopeId(scopeId) {
|
109
|
+
if (!this._scopeIds) {
|
110
|
+
this._scopeIds = new Set();
|
111
|
+
}
|
112
|
+
this._scopeIds.add(scopeId);
|
113
|
+
}
|
114
|
+
hasScopeId(scopeId) {
|
115
|
+
if (!this._scopeIds) {
|
116
|
+
return false;
|
117
|
+
}
|
118
|
+
return this._scopeIds.has(scopeId);
|
119
|
+
}
|
120
|
+
getScopeIds() {
|
121
|
+
return new Set(this._scopeIds);
|
122
|
+
}
|
123
|
+
hasUnificationVars() {
|
124
|
+
for (const entry of this._typeVarMap.values()) {
|
125
|
+
if (types_1.TypeVarType.isUnification(entry.typeVar)) {
|
126
|
+
return true;
|
127
|
+
}
|
128
|
+
}
|
129
|
+
return false;
|
130
|
+
}
|
131
|
+
}
|
132
|
+
exports.ConstraintSet = ConstraintSet;
|
133
|
+
class ConstraintTracker {
|
134
|
+
constructor() {
|
135
|
+
this._isLocked = false;
|
136
|
+
this._constraintSets = [new ConstraintSet()];
|
137
|
+
}
|
138
|
+
clone() {
|
139
|
+
const newTypeVarMap = new ConstraintTracker();
|
140
|
+
newTypeVarMap._constraintSets = this._constraintSets.map((set) => set.clone());
|
141
|
+
newTypeVarMap._isLocked = this._isLocked;
|
142
|
+
return newTypeVarMap;
|
143
|
+
}
|
144
|
+
cloneWithSignature(scopeId) {
|
145
|
+
const cloned = this.clone();
|
146
|
+
if (scopeId) {
|
147
|
+
const filteredSets = this._constraintSets.filter((context) => context.hasScopeId(scopeId));
|
148
|
+
if (filteredSets.length > 0) {
|
149
|
+
cloned._constraintSets = filteredSets;
|
150
|
+
}
|
151
|
+
else {
|
152
|
+
cloned._constraintSets.forEach((context) => {
|
153
|
+
context.addScopeId(scopeId);
|
154
|
+
});
|
155
|
+
}
|
156
|
+
}
|
157
|
+
return cloned;
|
158
|
+
}
|
159
|
+
// Copies a cloned type var context back into this object.
|
160
|
+
copyFromClone(clone) {
|
161
|
+
this._constraintSets = clone._constraintSets.map((context) => context.clone());
|
162
|
+
this._isLocked = clone._isLocked;
|
163
|
+
}
|
164
|
+
// Copy the specified constraint sets into this type var context.
|
165
|
+
addConstraintSets(contexts) {
|
166
|
+
(0, debug_1.assert)(contexts.length > 0);
|
167
|
+
// Limit the number of constraint sets. There are rare circumstances
|
168
|
+
// where this can grow to unbounded numbers and exhaust memory.
|
169
|
+
if (contexts.length < maxConstraintSetCount) {
|
170
|
+
this._constraintSets = Array.from(contexts);
|
171
|
+
}
|
172
|
+
}
|
173
|
+
isSame(other) {
|
174
|
+
if (other._constraintSets.length !== this._constraintSets.length) {
|
175
|
+
return false;
|
176
|
+
}
|
177
|
+
return this._constraintSets.every((set, index) => set.isSame(other._constraintSets[index]));
|
178
|
+
}
|
179
|
+
lock() {
|
180
|
+
// Locks the type var map, preventing any further changes.
|
181
|
+
(0, debug_1.assert)(!this._isLocked);
|
182
|
+
this._isLocked = true;
|
183
|
+
}
|
184
|
+
unlock() {
|
185
|
+
// Unlocks the type var map, allowing further changes.
|
186
|
+
this._isLocked = false;
|
187
|
+
}
|
188
|
+
isLocked() {
|
189
|
+
return this._isLocked;
|
190
|
+
}
|
191
|
+
isEmpty() {
|
192
|
+
return this._constraintSets.every((set) => set.isEmpty());
|
193
|
+
}
|
194
|
+
setBounds(reference, lowerBound, lowerBoundNoLiterals, upperBound) {
|
195
|
+
(0, debug_1.assert)(!this._isLocked);
|
196
|
+
return this._constraintSets.forEach((set) => {
|
197
|
+
set.setBounds(reference, lowerBound, lowerBoundNoLiterals, upperBound);
|
198
|
+
});
|
199
|
+
}
|
200
|
+
getScore() {
|
201
|
+
let total = 0;
|
202
|
+
this._constraintSets.forEach((set) => {
|
203
|
+
total += set.getScore();
|
204
|
+
});
|
205
|
+
// Return the average score among all constraint sets.
|
206
|
+
return total / this._constraintSets.length;
|
207
|
+
}
|
208
|
+
getMainConstraintSet() {
|
209
|
+
return this._constraintSets[0];
|
210
|
+
}
|
211
|
+
getConstraintSets() {
|
212
|
+
return this._constraintSets;
|
213
|
+
}
|
214
|
+
doForEachConstraintSet(callback) {
|
215
|
+
const wasLocked = this.isLocked();
|
216
|
+
this.unlock();
|
217
|
+
this.getConstraintSets().forEach((set, index) => {
|
218
|
+
callback(set, index);
|
219
|
+
});
|
220
|
+
if (wasLocked) {
|
221
|
+
this.lock();
|
222
|
+
}
|
223
|
+
}
|
224
|
+
getConstraintSet(index) {
|
225
|
+
(0, debug_1.assert)(index >= 0 && index < this._constraintSets.length);
|
226
|
+
return this._constraintSets[index];
|
227
|
+
}
|
228
|
+
}
|
229
|
+
exports.ConstraintTracker = ConstraintTracker;
|
230
|
+
//# sourceMappingURL=constraintTracker.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"constraintTracker.js","sourceRoot":"","sources":["../../../../../src/analyzer/constraintTracker.ts"],"names":[],"mappings":"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"}
|
@@ -16,12 +16,12 @@ const collectionUtils_1 = require("../common/collectionUtils");
|
|
16
16
|
const diagnostic_1 = require("../common/diagnostic");
|
17
17
|
const diagnosticRules_1 = require("../common/diagnosticRules");
|
18
18
|
const localize_1 = require("../localization/localize");
|
19
|
+
const constraintTracker_1 = require("./constraintTracker");
|
19
20
|
const constructors_1 = require("./constructors");
|
20
21
|
const parameterUtils_1 = require("./parameterUtils");
|
21
22
|
const symbol_1 = require("./symbol");
|
22
23
|
const types_1 = require("./types");
|
23
24
|
const typeUtils_1 = require("./typeUtils");
|
24
|
-
const typeVarContext_1 = require("./typeVarContext");
|
25
25
|
function hasConstructorTransform(classType) {
|
26
26
|
if (classType.shared.fullName === 'functools.partial') {
|
27
27
|
return true;
|
@@ -136,7 +136,7 @@ function applyPartialTransformToFunction(evaluator, errorNode, argList, partialC
|
|
136
136
|
// Verify the types of the provided arguments.
|
137
137
|
let argumentErrors = false;
|
138
138
|
let reportedPositionalError = false;
|
139
|
-
const
|
139
|
+
const constraints = new constraintTracker_1.ConstraintTracker();
|
140
140
|
const remainingArgsList = argList.slice(1);
|
141
141
|
remainingArgsList.forEach((arg, argIndex) => {
|
142
142
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
@@ -149,11 +149,11 @@ function applyPartialTransformToFunction(evaluator, errorNode, argList, partialC
|
|
149
149
|
if (argIndex >= paramListDetails.params.length ||
|
150
150
|
paramListDetails.params[argIndex].kind === parameterUtils_1.ParamKind.Keyword) {
|
151
151
|
if (paramListDetails.argsIndex !== undefined) {
|
152
|
-
const paramType = types_1.FunctionType.
|
152
|
+
const paramType = types_1.FunctionType.getParamType(origFunctionType, paramListDetails.params[paramListDetails.argsIndex].index);
|
153
153
|
const diag = new diagnostic_1.DiagnosticAddendum();
|
154
154
|
const argTypeResult = evaluator.getTypeOfExpression(arg.valueExpression,
|
155
155
|
/* flags */ undefined, (0, typeUtils_1.makeInferenceContext)(paramType));
|
156
|
-
if (!evaluator.assignType(paramType, argTypeResult.type, diag,
|
156
|
+
if (!evaluator.assignType(paramType, argTypeResult.type, diag, constraints)) {
|
157
157
|
if (errorNode) {
|
158
158
|
evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportArgumentType, localize_1.LocMessage.argAssignmentParamFunction().format({
|
159
159
|
argType: evaluator.printType(argTypeResult.type),
|
@@ -181,12 +181,12 @@ function applyPartialTransformToFunction(evaluator, errorNode, argList, partialC
|
|
181
181
|
}
|
182
182
|
}
|
183
183
|
else {
|
184
|
-
const paramType = types_1.FunctionType.
|
184
|
+
const paramType = types_1.FunctionType.getParamType(origFunctionType, argIndex);
|
185
185
|
const diag = new diagnostic_1.DiagnosticAddendum();
|
186
186
|
const paramName = (_d = paramListDetails.params[argIndex].param.name) !== null && _d !== void 0 ? _d : '';
|
187
187
|
const argTypeResult = evaluator.getTypeOfExpression(arg.valueExpression,
|
188
188
|
/* flags */ undefined, (0, typeUtils_1.makeInferenceContext)(paramType));
|
189
|
-
if (!evaluator.assignType(paramType, argTypeResult.type, diag,
|
189
|
+
if (!evaluator.assignType(paramType, argTypeResult.type, diag, constraints)) {
|
190
190
|
if (errorNode) {
|
191
191
|
evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportArgumentType, localize_1.LocMessage.argAssignmentParamFunction().format({
|
192
192
|
argType: evaluator.printType(argTypeResult.type),
|
@@ -212,11 +212,11 @@ function applyPartialTransformToFunction(evaluator, errorNode, argList, partialC
|
|
212
212
|
argumentErrors = true;
|
213
213
|
}
|
214
214
|
else {
|
215
|
-
const paramType = types_1.FunctionType.
|
215
|
+
const paramType = types_1.FunctionType.getParamType(origFunctionType, paramListDetails.params[paramListDetails.kwargsIndex].index);
|
216
216
|
const diag = new diagnostic_1.DiagnosticAddendum();
|
217
217
|
const argTypeResult = evaluator.getTypeOfExpression(arg.valueExpression,
|
218
218
|
/* flags */ undefined, (0, typeUtils_1.makeInferenceContext)(paramType));
|
219
|
-
if (!evaluator.assignType(paramType, argTypeResult.type, diag,
|
219
|
+
if (!evaluator.assignType(paramType, argTypeResult.type, diag, constraints)) {
|
220
220
|
if (errorNode) {
|
221
221
|
evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportArgumentType, localize_1.LocMessage.argAssignmentParamFunction().format({
|
222
222
|
argType: evaluator.printType(argTypeResult.type),
|
@@ -231,7 +231,7 @@ function applyPartialTransformToFunction(evaluator, errorNode, argList, partialC
|
|
231
231
|
}
|
232
232
|
else {
|
233
233
|
const paramName = matchingParam.param.name;
|
234
|
-
const paramType =
|
234
|
+
const paramType = matchingParam.type;
|
235
235
|
if (paramMap.has(paramName)) {
|
236
236
|
if (errorNode) {
|
237
237
|
evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportCallIssue, localize_1.LocMessage.paramAlreadyAssigned().format({ name: arg.name.d.value }), arg.name);
|
@@ -242,7 +242,7 @@ function applyPartialTransformToFunction(evaluator, errorNode, argList, partialC
|
|
242
242
|
const diag = new diagnostic_1.DiagnosticAddendum();
|
243
243
|
const argTypeResult = evaluator.getTypeOfExpression(arg.valueExpression,
|
244
244
|
/* flags */ undefined, (0, typeUtils_1.makeInferenceContext)(paramType));
|
245
|
-
if (!evaluator.assignType(paramType, argTypeResult.type, diag,
|
245
|
+
if (!evaluator.assignType(paramType, argTypeResult.type, diag, constraints)) {
|
246
246
|
if (errorNode) {
|
247
247
|
evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportArgumentType, localize_1.LocMessage.argAssignmentParamFunction().format({
|
248
248
|
argType: evaluator.printType(argTypeResult.type),
|
@@ -258,21 +258,21 @@ function applyPartialTransformToFunction(evaluator, errorNode, argList, partialC
|
|
258
258
|
}
|
259
259
|
}
|
260
260
|
});
|
261
|
-
const specializedFunctionType =
|
261
|
+
const specializedFunctionType = evaluator.solveAndApplyConstraints(origFunctionType, constraints);
|
262
262
|
if (!(0, types_1.isFunction)(specializedFunctionType)) {
|
263
263
|
return undefined;
|
264
264
|
}
|
265
265
|
// Create a new parameter list that omits parameters that have been
|
266
266
|
// populated already.
|
267
267
|
const updatedParamList = specializedFunctionType.shared.parameters.map((param, index) => {
|
268
|
-
const
|
269
|
-
specializedParam.type = types_1.FunctionType.getEffectiveParamType(specializedFunctionType, index);
|
268
|
+
const newType = types_1.FunctionType.getParamType(specializedFunctionType, index);
|
270
269
|
// If it's a keyword parameter that has been assigned a value through
|
271
270
|
// the "partial" mechanism, mark it has having a default value.
|
271
|
+
let newDefaultType = types_1.FunctionType.getParamDefaultType(specializedFunctionType, index);
|
272
272
|
if (param.name && paramMap.get(param.name)) {
|
273
|
-
|
273
|
+
newDefaultType = types_1.AnyType.create(/* isEllipsis */ true);
|
274
274
|
}
|
275
|
-
return
|
275
|
+
return types_1.FunctionParam.create(param.category, newType, param.flags, param.name, newDefaultType);
|
276
276
|
});
|
277
277
|
const unassignedParamList = updatedParamList.filter((param) => {
|
278
278
|
if (param.category === 2 /* ParamCategory.KwargsDict */) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"constructorTransform.js","sourceRoot":"","sources":["../../../../../src/analyzer/constructorTransform.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"constructorTransform.js","sourceRoot":"","sources":["../../../../../src/analyzer/constructorTransform.ts"],"names":[],"mappings":"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"}
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import { DiagnosticAddendum } from '../common/diagnostic';
|
2
2
|
import { ExpressionNode } from '../parser/parseNodes';
|
3
3
|
import { Arg, CallResult, TypeEvaluator, TypeResult } from './typeEvaluatorTypes';
|
4
|
-
import { InferenceContext, MemberAccessFlags } from './typeUtils';
|
5
4
|
import { ClassType, Type, TypeVarType } from './types';
|
5
|
+
import { InferenceContext, MemberAccessFlags } from './typeUtils';
|
6
6
|
export declare function getBoundNewMethod(evaluator: TypeEvaluator, errorNode: ExpressionNode, type: ClassType, diag?: DiagnosticAddendum | undefined, additionalFlags?: MemberAccessFlags): TypeResult<Type> | undefined;
|
7
7
|
export declare function getBoundInitMethod(evaluator: TypeEvaluator, errorNode: ExpressionNode, type: ClassType, diag?: DiagnosticAddendum | undefined, additionalFlags?: MemberAccessFlags): TypeResult<Type> | undefined;
|
8
8
|
export declare function getBoundCallMethod(evaluator: TypeEvaluator, errorNode: ExpressionNode, type: ClassType): TypeResult<Type> | undefined;
|