@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.
Files changed (89) hide show
  1. package/dist/analyzer/binder.js +7 -4
  2. package/dist/analyzer/binder.js.map +1 -1
  3. package/dist/analyzer/checker.d.ts +2 -1
  4. package/dist/analyzer/checker.js +135 -83
  5. package/dist/analyzer/checker.js.map +1 -1
  6. package/dist/analyzer/codeFlowEngine.js +4 -4
  7. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  8. package/dist/analyzer/constraintSolution.d.ts +21 -0
  9. package/dist/analyzer/constraintSolution.js +71 -0
  10. package/dist/analyzer/constraintSolution.js.map +1 -0
  11. package/dist/analyzer/constraintSolver.d.ts +9 -5
  12. package/dist/analyzer/constraintSolver.js +420 -322
  13. package/dist/analyzer/constraintSolver.js.map +1 -1
  14. package/dist/analyzer/constraintTracker.d.ts +44 -0
  15. package/dist/analyzer/constraintTracker.js +230 -0
  16. package/dist/analyzer/constraintTracker.js.map +1 -0
  17. package/dist/analyzer/constructorTransform.js +15 -15
  18. package/dist/analyzer/constructorTransform.js.map +1 -1
  19. package/dist/analyzer/constructors.d.ts +1 -1
  20. package/dist/analyzer/constructors.js +59 -38
  21. package/dist/analyzer/constructors.js.map +1 -1
  22. package/dist/analyzer/dataClasses.js +35 -32
  23. package/dist/analyzer/dataClasses.js.map +1 -1
  24. package/dist/analyzer/decorators.js +1 -1
  25. package/dist/analyzer/decorators.js.map +1 -1
  26. package/dist/analyzer/functionTransform.js +1 -1
  27. package/dist/analyzer/functionTransform.js.map +1 -1
  28. package/dist/analyzer/operations.d.ts +1 -2
  29. package/dist/analyzer/operations.js +95 -72
  30. package/dist/analyzer/operations.js.map +1 -1
  31. package/dist/analyzer/packageTypeVerifier.js +8 -4
  32. package/dist/analyzer/packageTypeVerifier.js.map +1 -1
  33. package/dist/analyzer/parameterUtils.d.ts +3 -3
  34. package/dist/analyzer/parameterUtils.js +19 -21
  35. package/dist/analyzer/parameterUtils.js.map +1 -1
  36. package/dist/analyzer/patternMatching.js +21 -19
  37. package/dist/analyzer/patternMatching.js.map +1 -1
  38. package/dist/analyzer/properties.d.ts +3 -2
  39. package/dist/analyzer/properties.js +11 -11
  40. package/dist/analyzer/properties.js.map +1 -1
  41. package/dist/analyzer/protocols.d.ts +3 -3
  42. package/dist/analyzer/protocols.js +50 -48
  43. package/dist/analyzer/protocols.js.map +1 -1
  44. package/dist/analyzer/tuples.d.ts +2 -2
  45. package/dist/analyzer/tuples.js +10 -9
  46. package/dist/analyzer/tuples.js.map +1 -1
  47. package/dist/analyzer/typeComplexity.js +12 -4
  48. package/dist/analyzer/typeComplexity.js.map +1 -1
  49. package/dist/analyzer/typeEvaluator.js +806 -778
  50. package/dist/analyzer/typeEvaluator.js.map +1 -1
  51. package/dist/analyzer/typeEvaluatorTypes.d.ts +28 -8
  52. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  53. package/dist/analyzer/typeGuards.js +46 -39
  54. package/dist/analyzer/typeGuards.js.map +1 -1
  55. package/dist/analyzer/typePrinter.js +17 -15
  56. package/dist/analyzer/typePrinter.js.map +1 -1
  57. package/dist/analyzer/typeUtils.d.ts +32 -30
  58. package/dist/analyzer/typeUtils.js +331 -563
  59. package/dist/analyzer/typeUtils.js.map +1 -1
  60. package/dist/analyzer/typeWalker.js +1 -1
  61. package/dist/analyzer/typeWalker.js.map +1 -1
  62. package/dist/analyzer/typedDicts.d.ts +2 -2
  63. package/dist/analyzer/typedDicts.js +25 -25
  64. package/dist/analyzer/typedDicts.js.map +1 -1
  65. package/dist/analyzer/types.d.ts +24 -21
  66. package/dist/analyzer/types.js +110 -113
  67. package/dist/analyzer/types.js.map +1 -1
  68. package/dist/languageServerBase.d.ts +2 -2
  69. package/dist/languageServerBase.js +5 -2
  70. package/dist/languageServerBase.js.map +1 -1
  71. package/dist/languageService/completionProvider.js +2 -2
  72. package/dist/languageService/completionProvider.js.map +1 -1
  73. package/dist/tests/checker.test.js +10 -2
  74. package/dist/tests/checker.test.js.map +1 -1
  75. package/dist/tests/typeEvaluator1.test.js +1 -1
  76. package/dist/tests/typeEvaluator2.test.js +12 -0
  77. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  78. package/dist/tests/typeEvaluator3.test.js +4 -0
  79. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  80. package/dist/tests/typeEvaluator4.test.js +1 -1
  81. package/dist/tests/typeEvaluator5.test.js +1 -1
  82. package/dist/tests/typeEvaluator7.test.js +4 -0
  83. package/dist/tests/typeEvaluator7.test.js.map +1 -1
  84. package/dist/tests/typeEvaluator8.test.js +4 -0
  85. package/dist/tests/typeEvaluator8.test.js.map +1 -1
  86. package/package.json +1 -1
  87. package/dist/analyzer/typeVarContext.d.ts +0 -48
  88. package/dist/analyzer/typeVarContext.js +0 -288
  89. 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":";AAAA;;;;;;;;;GASG;;;AAEH,2CAAyC;AACzC,qDAA6D;AAC7D,mCAAwE;AAExE,+DAA+D;AAC/D,qEAAqE;AACrE,gEAAgE;AAChE,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,mEAAmE;AACnE,yCAAyC;AACzC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAYnC,kEAAkE;AAClE,wCAAwC;AACxC,MAAa,aAAa;IAYtB;QACI,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAA8B,CAAC;IAC7D,CAAC;IAED,KAAK;QACD,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;QAE1C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC/B,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QAC3G,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;SAC1E;QAED,OAAO,aAAa,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,KAAoB;QACvB,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE;YAClD,OAAO,KAAK,CAAC;SAChB;QAED,SAAS,UAAU,CAAC,KAAuB,EAAE,KAAuB;YAChE,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE;gBAClB,OAAO,KAAK,KAAK,KAAK,CAAC;aAC1B;YAED,OAAO,IAAA,kBAAU,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACpC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC9C,IACI,CAAC,UAAU;gBACX,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC;gBACpD,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,EACtD;gBACE,MAAM,GAAG,KAAK,CAAC;aAClB;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,gEAAgE;IAChE,uDAAuD;IACvD,QAAQ;QACJ,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,4CAA4C;QAC5C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;;YAC/B,qDAAqD;YACrD,KAAK,IAAI,CAAC,CAAC;YAEX,qEAAqE;YACrE,kEAAkE;YAClE,iDAAiD;YACjD,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,UAAU,mCAAI,KAAK,CAAC,UAAU,CAAC;YACzD,IAAI,WAAW,EAAE;gBACb,KAAK,IAAI,GAAG,GAAG,IAAA,0CAAyB,EAAC,WAAW,CAAC,CAAC;aACzD;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,SAAS,CAAC,SAAsB,EAAE,UAA4B,EAAE,oBAA2B,EAAE,UAAiB;QAC1G,MAAM,GAAG,GAAG,mBAAW,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE;YACtB,OAAO,EAAE,SAAS;YAClB,UAAU;YACV,oBAAoB;YACpB,UAAU;SACb,CAAC,CAAC;IACP,CAAC;IAED,gBAAgB,CAAC,EAAuC;QACpD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,UAAU,CAAC,SAAsB;QAC7B,MAAM,GAAG,GAAG,mBAAW,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,WAAW;QACP,MAAM,OAAO,GAAyB,EAAE,CAAC;QAEzC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC/B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,UAAU,CAAC,OAAuB;QAC9B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;SACtC;QAED,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,UAAU,CAAC,OAAuB;QAC9B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,WAAW;QACP,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAED,kBAAkB;QACd,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE;YAC3C,IAAI,mBAAW,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;gBAC1C,OAAO,IAAI,CAAC;aACf;SACJ;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AA9ID,sCA8IC;AAED,MAAa,iBAAiB;IAI1B;QAHQ,cAAS,GAAG,KAAK,CAAC;QAItB,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,KAAK;QACD,MAAM,aAAa,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAE9C,aAAa,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;QAC/E,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAEzC,OAAO,aAAa,CAAC;IACzB,CAAC;IAED,kBAAkB,CAAC,OAAuB;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAE5B,IAAI,OAAO,EAAE;YACT,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;YAE3F,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzB,MAAM,CAAC,eAAe,GAAG,YAAY,CAAC;aACzC;iBAAM;gBACH,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBACvC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gBAChC,CAAC,CAAC,CAAC;aACN;SACJ;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,0DAA0D;IAC1D,aAAa,CAAC,KAAwB;QAClC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QAC/E,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IACrC,CAAC;IAED,iEAAiE;IACjE,iBAAiB,CAAC,QAAyB;QACvC,IAAA,cAAM,EAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAE5B,oEAAoE;QACpE,+DAA+D;QAC/D,IAAI,QAAQ,CAAC,MAAM,GAAG,qBAAqB,EAAE;YACzC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC/C;IACL,CAAC;IAED,MAAM,CAAC,KAAwB;QAC3B,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,KAAK,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;YAC9D,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChG,CAAC;IAED,IAAI;QACA,0DAA0D;QAC1D,IAAA,cAAM,EAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,MAAM;QACF,sDAAsD;QACtD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,SAAS,CAAC,SAAsB,EAAE,UAA4B,EAAE,oBAA2B,EAAE,UAAiB;QAC1G,IAAA,cAAM,EAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAExB,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACxC,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,EAAE,oBAAoB,EAAE,UAAU,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;IACP,CAAC;IAED,QAAQ;QACJ,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACjC,KAAK,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,sDAAsD;QACtD,OAAO,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;IAC/C,CAAC;IAED,oBAAoB;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,iBAAiB;QACb,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAED,sBAAsB,CAAC,QAA+D;QAClF,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,IAAI,CAAC,MAAM,EAAE,CAAC;QAEd,IAAI,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAC5C,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,IAAI,SAAS,EAAE;YACX,IAAI,CAAC,IAAI,EAAE,CAAC;SACf;IACL,CAAC;IAED,gBAAgB,CAAC,KAAa;QAC1B,IAAA,cAAM,EAAC,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;CACJ;AA3HD,8CA2HC"}
@@ -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 typeVarContext = new typeVarContext_1.TypeVarContext((0, typeUtils_1.getTypeVarScopeId)(origFunctionType));
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.getEffectiveParamType(origFunctionType, paramListDetails.params[paramListDetails.argsIndex].index);
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, typeVarContext)) {
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.getEffectiveParamType(origFunctionType, argIndex);
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, typeVarContext)) {
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.getEffectiveParamType(origFunctionType, paramListDetails.params[paramListDetails.kwargsIndex].index);
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, typeVarContext)) {
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 = types_1.FunctionType.getEffectiveParamType(origFunctionType, matchingParam.index);
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, typeVarContext)) {
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 = (0, typeUtils_1.applySolvedTypeVars)(origFunctionType, typeVarContext);
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 specializedParam = { ...param };
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
- specializedParam.defaultType = types_1.AnyType.create(/* isEllipsis */ true);
273
+ newDefaultType = types_1.AnyType.create(/* isEllipsis */ true);
274
274
  }
275
- return specializedParam;
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;