@zzzen/pyright-internal 1.2.0-dev.20230507 → 1.2.0-dev.20230514
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 +1 -1
- package/dist/analyzer/checker.js +37 -2
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/constraintSolver.js +14 -15
- package/dist/analyzer/constraintSolver.js.map +1 -1
- package/dist/analyzer/constructors.js +246 -189
- package/dist/analyzer/constructors.js.map +1 -1
- package/dist/analyzer/dataClasses.js +2 -2
- package/dist/analyzer/dataClasses.js.map +1 -1
- package/dist/analyzer/docStringConversion.js +1 -1
- package/dist/analyzer/docStringConversion.js.map +1 -1
- package/dist/analyzer/enums.js +8 -0
- package/dist/analyzer/enums.js.map +1 -1
- package/dist/analyzer/importResolver.js +47 -29
- package/dist/analyzer/importResolver.js.map +1 -1
- package/dist/analyzer/namedTuples.js +2 -5
- package/dist/analyzer/namedTuples.js.map +1 -1
- package/dist/analyzer/program.d.ts +7 -17
- package/dist/analyzer/program.js +32 -247
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/protocols.js +1 -1
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/service.d.ts +4 -12
- package/dist/analyzer/service.js +12 -23
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/sourceFile.d.ts +2 -11
- package/dist/analyzer/sourceFile.js +11 -74
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/symbol.d.ts +3 -1
- package/dist/analyzer/symbol.js +5 -0
- package/dist/analyzer/symbol.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +362 -142
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +4 -0
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typePrinter.d.ts +3 -3
- package/dist/analyzer/typePrinter.js +247 -100
- package/dist/analyzer/typePrinter.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +12 -7
- package/dist/analyzer/typeUtils.js +173 -48
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typeVarContext.d.ts +1 -2
- package/dist/analyzer/typeVarContext.js +14 -32
- package/dist/analyzer/typeVarContext.js.map +1 -1
- package/dist/analyzer/types.d.ts +3 -2
- package/dist/analyzer/types.js +13 -10
- package/dist/analyzer/types.js.map +1 -1
- package/dist/backgroundAnalysisBase.d.ts +1 -1
- package/dist/backgroundAnalysisBase.js +16 -0
- package/dist/backgroundAnalysisBase.js.map +1 -1
- package/dist/commands/dumpFileDebugInfoCommand.js +0 -1
- package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
- package/dist/common/extensibility.d.ts +26 -3
- package/dist/common/extensibility.js.map +1 -1
- package/dist/common/logTracker.d.ts +2 -0
- package/dist/common/logTracker.js +8 -1
- package/dist/common/logTracker.js.map +1 -1
- package/dist/common/lspUtils.d.ts +4 -1
- package/dist/common/lspUtils.js +38 -1
- package/dist/common/lspUtils.js.map +1 -1
- package/dist/common/pythonVersion.d.ts +2 -1
- package/dist/common/pythonVersion.js +1 -0
- package/dist/common/pythonVersion.js.map +1 -1
- package/dist/common/workspaceEditUtils.d.ts +3 -3
- package/dist/common/workspaceEditUtils.js +10 -10
- package/dist/common/workspaceEditUtils.js.map +1 -1
- package/dist/languageServerBase.d.ts +2 -5
- package/dist/languageServerBase.js +33 -60
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/autoImporter.d.ts +50 -51
- package/dist/languageService/autoImporter.js +125 -210
- package/dist/languageService/autoImporter.js.map +1 -1
- package/dist/languageService/callHierarchyProvider.js +6 -32
- package/dist/languageService/callHierarchyProvider.js.map +1 -1
- package/dist/languageService/completionProvider.d.ts +40 -79
- package/dist/languageService/completionProvider.js +571 -811
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/documentSymbolCollector.d.ts +2 -2
- package/dist/languageService/documentSymbolCollector.js +33 -23
- package/dist/languageService/documentSymbolCollector.js.map +1 -1
- package/dist/languageService/documentSymbolProvider.d.ts +13 -35
- package/dist/languageService/documentSymbolProvider.js +52 -264
- package/dist/languageService/documentSymbolProvider.js.map +1 -1
- package/dist/languageService/hoverProvider.d.ts +1 -3
- package/dist/languageService/hoverProvider.js +11 -97
- package/dist/languageService/hoverProvider.js.map +1 -1
- package/dist/languageService/referencesProvider.d.ts +3 -3
- package/dist/languageService/referencesProvider.js +5 -7
- package/dist/languageService/referencesProvider.js.map +1 -1
- package/dist/languageService/renameProvider.d.ts +0 -1
- package/dist/languageService/renameProvider.js +2 -6
- package/dist/languageService/renameProvider.js.map +1 -1
- package/dist/languageService/symbolIndexer.d.ts +31 -0
- package/dist/languageService/symbolIndexer.js +105 -0
- package/dist/languageService/symbolIndexer.js.map +1 -0
- package/dist/languageService/tooltipUtils.d.ts +8 -1
- package/dist/languageService/tooltipUtils.js +102 -1
- package/dist/languageService/tooltipUtils.js.map +1 -1
- package/dist/languageService/workspaceSymbolProvider.d.ts +17 -0
- package/dist/languageService/workspaceSymbolProvider.js +133 -0
- package/dist/languageService/workspaceSymbolProvider.js.map +1 -0
- package/dist/localization/localize.d.ts +16 -1
- package/dist/localization/localize.js +9 -1
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.en-us.json +9 -1
- package/dist/parser/parser.js +3 -0
- package/dist/parser/parser.js.map +1 -1
- package/dist/pyright.js +26 -4
- package/dist/pyright.js.map +1 -1
- package/dist/tests/chainedSourceFiles.test.js +15 -20
- package/dist/tests/chainedSourceFiles.test.js.map +1 -1
- package/dist/tests/checker.test.js +14 -0
- package/dist/tests/checker.test.js.map +1 -1
- package/dist/tests/completions.test.js +11 -236
- package/dist/tests/completions.test.js.map +1 -1
- package/dist/tests/docStringConversion.test.js +36 -2
- package/dist/tests/docStringConversion.test.js.map +1 -1
- package/dist/tests/fourslash/completions.override2.fourslash.js +1 -16
- package/dist/tests/fourslash/completions.override2.fourslash.js.map +1 -1
- package/dist/tests/harness/fourslash/testState.d.ts +14 -8
- package/dist/tests/harness/fourslash/testState.js +25 -36
- package/dist/tests/harness/fourslash/testState.js.map +1 -1
- package/dist/tests/importResolver.test.js +81 -1
- package/dist/tests/importResolver.test.js.map +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/typeEvaluator5.test.js +21 -9
- package/dist/tests/typeEvaluator5.test.js.map +1 -1
- package/dist/tests/workspaceEditUtils.test.js +15 -10
- package/dist/tests/workspaceEditUtils.test.js.map +1 -1
- package/package.json +1 -1
- package/dist/languageService/importAdder.d.ts +0 -40
- package/dist/languageService/importAdder.js +0 -388
- package/dist/languageService/importAdder.js.map +0 -1
- package/dist/tests/fourslash/completions.commitChars.fourslash.d.ts +0 -1
- package/dist/tests/fourslash/completions.commitChars.fourslash.js +0 -81
- package/dist/tests/fourslash/completions.commitChars.fourslash.js.map +0 -1
- package/dist/tests/importAdder.test.d.ts +0 -1
- package/dist/tests/importAdder.test.js +0 -1325
- package/dist/tests/importAdder.test.js.map +0 -1
@@ -27,7 +27,6 @@ const types_1 = require("./types");
|
|
27
27
|
// If successful, it returns the resulting (specialized) object type that
|
28
28
|
// is allocated by the constructor. If unsuccessful, it reports diagnostics.
|
29
29
|
function validateConstructorArguments(evaluator, errorNode, argList, type, skipUnknownArgCheck, inferenceContext) {
|
30
|
-
var _a;
|
31
30
|
// If there a custom `__call__` method on the metaclass, assume that it
|
32
31
|
// overrides the normal `type.__call__` logic and don't perform the usual
|
33
32
|
// __new__ and __init__ validation.
|
@@ -36,170 +35,109 @@ function validateConstructorArguments(evaluator, errorNode, argList, type, skipU
|
|
36
35
|
return metaclassResult;
|
37
36
|
}
|
38
37
|
// Determine whether the class overrides the object.__new__ method.
|
39
|
-
const
|
38
|
+
const newMethodTypeResult = evaluator.getTypeOfClassMemberName(errorNode, type,
|
40
39
|
/* isAccessedThroughObject */ false, '__new__', { method: 'get' },
|
41
40
|
/* diag */ undefined, 1 /* AccessClassMembersOnly */ |
|
42
41
|
4 /* SkipObjectBaseClass */ |
|
43
42
|
16 /* TreatConstructorAsClassMethod */, type);
|
44
|
-
// Determine whether the class overrides the object.__init__ method.
|
45
|
-
const initMethodInfo = evaluator.getTypeOfObjectMember(errorNode, types_1.ClassType.cloneAsInstance(type), '__init__', { method: 'get' },
|
46
|
-
/* diag */ undefined, 4 /* SkipObjectBaseClass */ | 64 /* SkipAttributeAccessOverride */);
|
47
43
|
let returnType;
|
48
|
-
let
|
44
|
+
let validatedArgExpressions = false;
|
49
45
|
let argumentErrors = false;
|
50
46
|
let isTypeIncomplete = false;
|
51
47
|
const overloadsUsedForCall = [];
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
48
|
+
let newMethodReturnType;
|
49
|
+
const useConstructorTransform = (0, constructorTransform_1.hasConstructorTransform)(type);
|
50
|
+
// If there is a constructor transform, evaluate all arguments speculatively
|
51
|
+
// so we can later re-evaluate them in the context of the transform.
|
52
|
+
evaluator.useSpeculativeMode(useConstructorTransform ? errorNode : undefined, () => {
|
53
|
+
var _a;
|
54
|
+
// Validate __new__ if it is present.
|
55
|
+
if (newMethodTypeResult) {
|
56
|
+
// Use speculative mode for arg expressions because we don't know whether
|
57
|
+
// we'll need to re-evaluate these expressions later for __init__.
|
58
|
+
const newCallResult = validateNewMethod(evaluator, errorNode, argList, type, skipUnknownArgCheck, inferenceContext, newMethodTypeResult,
|
59
|
+
/* useSpeculativeModeForArgs */ true);
|
60
|
+
if (newCallResult.argumentErrors) {
|
61
|
+
argumentErrors = true;
|
62
|
+
}
|
63
|
+
else {
|
64
|
+
overloadsUsedForCall.push(...newCallResult.overloadsUsedForCall);
|
65
|
+
}
|
66
|
+
if (newCallResult.isTypeIncomplete) {
|
67
|
+
isTypeIncomplete = true;
|
68
|
+
}
|
69
|
+
newMethodReturnType = newCallResult.returnType;
|
58
70
|
}
|
59
|
-
|
60
|
-
|
71
|
+
if (!newMethodReturnType) {
|
72
|
+
newMethodReturnType = types_1.ClassType.cloneAsInstance(type);
|
61
73
|
}
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
// more specific type annotations, and we want to evaluate the arguments
|
68
|
-
// in the context of these types. The __new__ method often uses generic
|
69
|
-
// vargs and kwargs.
|
70
|
-
const initMethodType = initMethodInfo === null || initMethodInfo === void 0 ? void 0 : initMethodInfo.type;
|
71
|
-
if (initMethodType && !shouldSkipConstructorCheck(initMethodType)) {
|
72
|
-
// If there is an expected type, analyze the constructor call
|
73
|
-
// for each of the subtypes that comprise the expected type. If
|
74
|
-
// one or more analyzes with no errors, use those results.
|
75
|
-
if (inferenceContext) {
|
76
|
-
const expectedCallResult = validateConstructorMethodWithContext(evaluator, errorNode, argList, type, skipUnknownArgCheck, inferenceContext, initMethodType);
|
77
|
-
if (expectedCallResult && !expectedCallResult.argumentErrors) {
|
78
|
-
returnType = expectedCallResult.returnType;
|
79
|
-
if (expectedCallResult.isTypeIncomplete) {
|
80
|
-
isTypeIncomplete = true;
|
81
|
-
}
|
82
|
-
}
|
74
|
+
else if (!(0, types_1.isNever)(newMethodReturnType)) {
|
75
|
+
if (!(0, types_1.isClassInstance)(newMethodReturnType)) {
|
76
|
+
// If the __new__ method returns something other than an object or
|
77
|
+
// NoReturn, we'll ignore its return type.
|
78
|
+
newMethodReturnType = types_1.ClassType.cloneAsInstance(type);
|
83
79
|
}
|
84
|
-
if (
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
80
|
+
else if (types_1.ClassType.isSameGenericClass(newMethodReturnType, type) &&
|
81
|
+
(0, typeUtils_1.isPartlyUnknown)(newMethodReturnType)) {
|
82
|
+
// If the __new__ method returns the same type as the class it's constructing
|
83
|
+
// but doesn't supply solved type arguments, we'll ignore its return type
|
84
|
+
// and rely on the __init__ method to supply them instead.
|
85
|
+
newMethodReturnType = types_1.ClassType.cloneAsInstance(type);
|
86
|
+
}
|
87
|
+
}
|
88
|
+
let initMethodTypeResult;
|
89
|
+
// Validate __init__ if it's present. Skip if the __new__ method produced errors.
|
90
|
+
if (!argumentErrors &&
|
91
|
+
!(0, types_1.isNever)(newMethodReturnType) &&
|
92
|
+
!shouldSkipInitEvaluation(evaluator, type, newMethodReturnType)) {
|
93
|
+
// Determine whether the class overrides the object.__init__ method.
|
94
|
+
initMethodTypeResult = evaluator.getTypeOfObjectMember(errorNode, types_1.ClassType.cloneAsInstance(newMethodReturnType), '__init__', { method: 'get' },
|
95
|
+
/* diag */ undefined, 4 /* SkipObjectBaseClass */ | 64 /* SkipAttributeAccessOverride */);
|
96
|
+
// Validate __init__ if it's present.
|
97
|
+
if (initMethodTypeResult) {
|
98
|
+
const initCallResult = validateInitMethod(evaluator, errorNode, argList, newMethodReturnType, skipUnknownArgCheck, inferenceContext, initMethodTypeResult.type);
|
99
|
+
if (initCallResult.argumentErrors) {
|
102
100
|
argumentErrors = true;
|
103
101
|
}
|
104
102
|
else {
|
105
|
-
overloadsUsedForCall.push(...
|
103
|
+
overloadsUsedForCall.push(...initCallResult.overloadsUsedForCall);
|
106
104
|
}
|
107
|
-
|
108
|
-
|
109
|
-
skipUnknownArgCheck = true;
|
110
|
-
}
|
111
|
-
// Validate __new__
|
112
|
-
// Don't report errors for __new__ if __init__ already generated errors. They're
|
113
|
-
// probably going to be entirely redundant anyway.
|
114
|
-
if (!argumentErrors && newMethodInfo && !shouldSkipConstructorCheck(newMethodInfo.type)) {
|
115
|
-
const constructorMethodType = newMethodInfo.type;
|
116
|
-
let newReturnType;
|
117
|
-
// If there is an expected type that was not applied above when
|
118
|
-
// handling the __init__ method, try to apply it with the __new__ method.
|
119
|
-
if (inferenceContext && !returnType) {
|
120
|
-
const expectedCallResult = validateConstructorMethodWithContext(evaluator, errorNode, argList, type, skipUnknownArgCheck, inferenceContext, constructorMethodType);
|
121
|
-
if (expectedCallResult && !expectedCallResult.argumentErrors) {
|
122
|
-
newReturnType = expectedCallResult.returnType;
|
123
|
-
returnType = newReturnType;
|
124
|
-
if (expectedCallResult.isTypeIncomplete) {
|
125
|
-
isTypeIncomplete = true;
|
126
|
-
}
|
105
|
+
if (initCallResult.isTypeIncomplete) {
|
106
|
+
isTypeIncomplete = true;
|
127
107
|
}
|
108
|
+
returnType = initCallResult.returnType;
|
109
|
+
validatedArgExpressions = true;
|
110
|
+
skipUnknownArgCheck = true;
|
128
111
|
}
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
const callResult = evaluator.useSpeculativeMode((0, constructorTransform_1.hasConstructorTransform)(type) ? errorNode : undefined, () => {
|
137
|
-
return evaluator.validateCallArguments(errorNode, argList, newMethodInfo, typeVarContext, skipUnknownArgCheck);
|
138
|
-
});
|
139
|
-
if (callResult.isTypeIncomplete) {
|
140
|
-
isTypeIncomplete = true;
|
112
|
+
}
|
113
|
+
if (!validatedArgExpressions && newMethodTypeResult) {
|
114
|
+
// If we skipped the __init__ method and the __new__ method was evaluated only
|
115
|
+
// speculatively, evaluate it non-speculatively now so we can report errors.
|
116
|
+
if (!evaluator.isSpeculativeModeInUse(errorNode)) {
|
117
|
+
validateNewMethod(evaluator, errorNode, argList, type, skipUnknownArgCheck, inferenceContext, newMethodTypeResult,
|
118
|
+
/* useSpeculativeModeForArgs */ false);
|
141
119
|
}
|
120
|
+
validatedArgExpressions = true;
|
121
|
+
returnType = newMethodReturnType;
|
122
|
+
}
|
123
|
+
// If the class doesn't override object.__new__ or object.__init__, use the
|
124
|
+
// fallback constructor type evaluation for the `object` class.
|
125
|
+
if (!newMethodTypeResult && !initMethodTypeResult) {
|
126
|
+
const callResult = validateFallbackConstructorCall(evaluator, errorNode, argList, type, inferenceContext);
|
142
127
|
if (callResult.argumentErrors) {
|
143
128
|
argumentErrors = true;
|
144
129
|
}
|
145
|
-
else
|
146
|
-
|
147
|
-
if (overloadsUsedForCall.length === 0) {
|
148
|
-
overloadsUsedForCall.push(...callResult.overloadsUsedForCall);
|
149
|
-
}
|
150
|
-
// If the constructor returned an object whose type matches the class of
|
151
|
-
// the original type being constructed, use the return type in case it was
|
152
|
-
// specialized. If it doesn't match, we'll fall back on the assumption that
|
153
|
-
// the constructed type is an instance of the class type. We need to do this
|
154
|
-
// in cases where we're inferring the return type based on a call to
|
155
|
-
// super().__new__().
|
156
|
-
if (newReturnType) {
|
157
|
-
if ((0, types_1.isClassInstance)(newReturnType) && types_1.ClassType.isSameGenericClass(newReturnType, type)) {
|
158
|
-
// If the specialized return type derived from the __init__
|
159
|
-
// method is "better" than the return type provided by the
|
160
|
-
// __new__ method (where "better" means that the type arguments
|
161
|
-
// are all known), stick with the __init__ result.
|
162
|
-
if ((!(0, typeUtils_1.isPartlyUnknown)(newReturnType) && !(0, typeUtils_1.requiresSpecialization)(newReturnType)) ||
|
163
|
-
returnType === undefined) {
|
164
|
-
// Special-case the 'tuple' type specialization to use
|
165
|
-
// the homogenous arbitrary-length form.
|
166
|
-
if ((0, types_1.isClassInstance)(newReturnType) &&
|
167
|
-
types_1.ClassType.isTupleClass(newReturnType) &&
|
168
|
-
!newReturnType.tupleTypeArguments &&
|
169
|
-
newReturnType.typeArguments &&
|
170
|
-
newReturnType.typeArguments.length === 1) {
|
171
|
-
newReturnType = (0, typeUtils_1.specializeTupleClass)(newReturnType, [
|
172
|
-
{ type: newReturnType.typeArguments[0], isUnbounded: true },
|
173
|
-
]);
|
174
|
-
}
|
175
|
-
returnType = newReturnType;
|
176
|
-
}
|
177
|
-
}
|
178
|
-
else if (!returnType && !(0, types_1.isUnknown)(newReturnType)) {
|
179
|
-
returnType = newReturnType;
|
180
|
-
}
|
181
|
-
}
|
182
|
-
}
|
183
|
-
if (!returnType) {
|
184
|
-
returnType = applyExpectedTypeForConstructor(evaluator, type, inferenceContext, typeVarContext);
|
130
|
+
else {
|
131
|
+
overloadsUsedForCall.push(...callResult.overloadsUsedForCall);
|
185
132
|
}
|
186
|
-
|
187
|
-
|
133
|
+
if (callResult.isTypeIncomplete) {
|
134
|
+
isTypeIncomplete = true;
|
188
135
|
}
|
189
|
-
|
136
|
+
returnType = (_a = callResult.returnType) !== null && _a !== void 0 ? _a : types_1.UnknownType.create();
|
190
137
|
}
|
191
|
-
}
|
192
|
-
// If we weren't able to validate the args, analyze the expressions here
|
193
|
-
// to mark symbols referenced and report expression evaluation errors.
|
194
|
-
if (!validatedTypes) {
|
195
|
-
argList.forEach((arg) => {
|
196
|
-
if (arg.valueExpression && !evaluator.isSpeculativeModeInUse(arg.valueExpression)) {
|
197
|
-
evaluator.getTypeOfExpression(arg.valueExpression);
|
198
|
-
}
|
199
|
-
});
|
200
|
-
}
|
138
|
+
});
|
201
139
|
// Apply a constructor transform if applicable.
|
202
|
-
if (!argumentErrors && returnType) {
|
140
|
+
if (!argumentErrors && returnType && useConstructorTransform) {
|
203
141
|
const transformed = (0, constructorTransform_1.applyConstructorTransform)(evaluator, errorNode, argList, type, {
|
204
142
|
argumentErrors,
|
205
143
|
returnType,
|
@@ -212,10 +150,152 @@ function validateConstructorArguments(evaluator, errorNode, argList, type, skipU
|
|
212
150
|
if (transformed.argumentErrors) {
|
213
151
|
argumentErrors = true;
|
214
152
|
}
|
153
|
+
validatedArgExpressions = true;
|
154
|
+
}
|
155
|
+
// If we weren't able to validate the args, analyze the expressions here
|
156
|
+
// to mark symbols referenced and report expression evaluation errors.
|
157
|
+
if (!validatedArgExpressions) {
|
158
|
+
argList.forEach((arg) => {
|
159
|
+
if (arg.valueExpression && !evaluator.isSpeculativeModeInUse(arg.valueExpression)) {
|
160
|
+
evaluator.getTypeOfExpression(arg.valueExpression);
|
161
|
+
}
|
162
|
+
});
|
215
163
|
}
|
216
164
|
return { argumentErrors, returnType, isTypeIncomplete, overloadsUsedForCall };
|
217
165
|
}
|
218
166
|
exports.validateConstructorArguments = validateConstructorArguments;
|
167
|
+
// Evaluates the __new__ method for type correctness. If useSpeculativeModeForArgs
|
168
|
+
// is true, use speculative mode to evaluate the arguments (unless an argument
|
169
|
+
// error is produced, in which case it's OK to use speculative mode).
|
170
|
+
function validateNewMethod(evaluator, errorNode, argList, type, skipUnknownArgCheck, inferenceContext, newMethodTypeResult, useSpeculativeModeForArgs) {
|
171
|
+
let newReturnType;
|
172
|
+
let isTypeIncomplete = false;
|
173
|
+
let argumentErrors = false;
|
174
|
+
const overloadsUsedForCall = [];
|
175
|
+
const typeVarContext = new typeVarContext_1.TypeVarContext((0, typeUtils_1.getTypeVarScopeId)(type));
|
176
|
+
typeVarContext.addSolveForScope((0, typeUtils_1.getTypeVarScopeId)(newMethodTypeResult.type));
|
177
|
+
if (type.typeAliasInfo) {
|
178
|
+
typeVarContext.addSolveForScope(type.typeAliasInfo.typeVarScopeId);
|
179
|
+
}
|
180
|
+
const callResult = evaluator.useSpeculativeMode(useSpeculativeModeForArgs ? errorNode : undefined, () => {
|
181
|
+
return evaluator.validateCallArguments(errorNode, argList, newMethodTypeResult, typeVarContext, skipUnknownArgCheck, inferenceContext);
|
182
|
+
});
|
183
|
+
if (callResult.isTypeIncomplete) {
|
184
|
+
isTypeIncomplete = true;
|
185
|
+
}
|
186
|
+
if (callResult.argumentErrors) {
|
187
|
+
argumentErrors = true;
|
188
|
+
// Evaluate the arguments in a non-speculative manner to generate any diagnostics.
|
189
|
+
evaluator.validateCallArguments(errorNode, argList, newMethodTypeResult, typeVarContext, skipUnknownArgCheck);
|
190
|
+
}
|
191
|
+
else {
|
192
|
+
newReturnType = callResult.returnType;
|
193
|
+
if (overloadsUsedForCall.length === 0) {
|
194
|
+
overloadsUsedForCall.push(...callResult.overloadsUsedForCall);
|
195
|
+
}
|
196
|
+
// If the constructor returned an object whose type matches the class of
|
197
|
+
// the original type being constructed, use the return type in case it was
|
198
|
+
// specialized. If it doesn't match, we'll fall back on the assumption that
|
199
|
+
// the constructed type is an instance of the class type. We need to do this
|
200
|
+
// in cases where we're inferring the return type based on a call to
|
201
|
+
// super().__new__().
|
202
|
+
if (newReturnType) {
|
203
|
+
if ((0, types_1.isClassInstance)(newReturnType) && types_1.ClassType.isSameGenericClass(newReturnType, type)) {
|
204
|
+
// If the specialized return type derived from the __init__
|
205
|
+
// method is "better" than the return type provided by the
|
206
|
+
// __new__ method (where "better" means that the type arguments
|
207
|
+
// are all known), stick with the __init__ result.
|
208
|
+
if (!(0, typeUtils_1.isPartlyUnknown)(newReturnType) && !(0, typeUtils_1.requiresSpecialization)(newReturnType)) {
|
209
|
+
// Special-case the 'tuple' type specialization to use
|
210
|
+
// the homogenous arbitrary-length form.
|
211
|
+
if ((0, types_1.isClassInstance)(newReturnType) &&
|
212
|
+
types_1.ClassType.isTupleClass(newReturnType) &&
|
213
|
+
!newReturnType.tupleTypeArguments &&
|
214
|
+
newReturnType.typeArguments &&
|
215
|
+
newReturnType.typeArguments.length === 1) {
|
216
|
+
newReturnType = (0, typeUtils_1.specializeTupleClass)(newReturnType, [
|
217
|
+
{ type: newReturnType.typeArguments[0], isUnbounded: true },
|
218
|
+
]);
|
219
|
+
}
|
220
|
+
}
|
221
|
+
}
|
222
|
+
}
|
223
|
+
}
|
224
|
+
if (!newReturnType) {
|
225
|
+
newReturnType = applyExpectedTypeForConstructor(evaluator, type, inferenceContext, typeVarContext);
|
226
|
+
}
|
227
|
+
else if ((0, types_1.isClassInstance)(newReturnType) && (0, typeUtils_1.isTupleClass)(newReturnType) && !newReturnType.tupleTypeArguments) {
|
228
|
+
newReturnType = applyExpectedTypeForTupleConstructor(newReturnType, inferenceContext);
|
229
|
+
}
|
230
|
+
return { argumentErrors, returnType: newReturnType, isTypeIncomplete, overloadsUsedForCall };
|
231
|
+
}
|
232
|
+
function validateInitMethod(evaluator, errorNode, argList, type, skipUnknownArgCheck, inferenceContext, initMethodType) {
|
233
|
+
let returnType;
|
234
|
+
let isTypeIncomplete = false;
|
235
|
+
let argumentErrors = false;
|
236
|
+
const overloadsUsedForCall = [];
|
237
|
+
// If there is an expected type, analyze the __init__ call for each of the
|
238
|
+
// subtypes that comprise the expected type. If one or more analyzes with no
|
239
|
+
// errors, use those results. This requires special-case processing because
|
240
|
+
// the __init__ method doesn't return the expected type. It always
|
241
|
+
// returns None.
|
242
|
+
if (inferenceContext) {
|
243
|
+
returnType = (0, typeUtils_1.mapSubtypes)(inferenceContext.expectedType, (expectedSubType) => {
|
244
|
+
expectedSubType = (0, typeUtils_1.transformPossibleRecursiveTypeAlias)(expectedSubType);
|
245
|
+
const typeVarContext = new typeVarContext_1.TypeVarContext((0, typeUtils_1.getTypeVarScopeId)(type));
|
246
|
+
typeVarContext.addSolveForScope((0, typeUtils_1.getTypeVarScopeId)(initMethodType));
|
247
|
+
if ((0, constraintSolver_1.populateTypeVarContextBasedOnExpectedType)(evaluator, types_1.ClassType.cloneAsInstance(type), expectedSubType, typeVarContext, (0, parseTreeUtils_1.getTypeVarScopesForNode)(errorNode))) {
|
248
|
+
const specializedConstructor = (0, typeUtils_1.applySolvedTypeVars)(initMethodType, typeVarContext);
|
249
|
+
let callResult;
|
250
|
+
callResult = evaluator.useSpeculativeMode(errorNode, () => {
|
251
|
+
return evaluator.validateCallArguments(errorNode, argList, { type: specializedConstructor }, typeVarContext.clone(), skipUnknownArgCheck);
|
252
|
+
});
|
253
|
+
if (!callResult.argumentErrors) {
|
254
|
+
// Call validateCallArguments again, this time without speculative
|
255
|
+
// mode, so any errors are reported.
|
256
|
+
callResult = evaluator.validateCallArguments(errorNode, argList, { type: specializedConstructor }, typeVarContext, skipUnknownArgCheck);
|
257
|
+
if (callResult.isTypeIncomplete) {
|
258
|
+
isTypeIncomplete = true;
|
259
|
+
}
|
260
|
+
if (callResult.argumentErrors) {
|
261
|
+
argumentErrors = true;
|
262
|
+
}
|
263
|
+
overloadsUsedForCall.push(...callResult.overloadsUsedForCall);
|
264
|
+
return applyExpectedSubtypeForConstructor(evaluator, type, expectedSubType, typeVarContext);
|
265
|
+
}
|
266
|
+
}
|
267
|
+
return undefined;
|
268
|
+
});
|
269
|
+
if ((0, types_1.isNever)(returnType) || argumentErrors) {
|
270
|
+
returnType = undefined;
|
271
|
+
}
|
272
|
+
}
|
273
|
+
if (!returnType) {
|
274
|
+
const typeVarContext = type.typeArguments
|
275
|
+
? (0, typeUtils_1.buildTypeVarContextFromSpecializedClass)(type, /* makeConcrete */ false)
|
276
|
+
: new typeVarContext_1.TypeVarContext((0, typeUtils_1.getTypeVarScopeId)(type));
|
277
|
+
typeVarContext.addSolveForScope((0, typeUtils_1.getTypeVarScopeId)(initMethodType));
|
278
|
+
const callResult = evaluator.validateCallArguments(errorNode, argList, { type: initMethodType }, typeVarContext, skipUnknownArgCheck);
|
279
|
+
let adjustedClassType = type;
|
280
|
+
if (callResult.specializedInitSelfType &&
|
281
|
+
(0, types_1.isClassInstance)(callResult.specializedInitSelfType) &&
|
282
|
+
types_1.ClassType.isSameGenericClass(callResult.specializedInitSelfType, adjustedClassType)) {
|
283
|
+
adjustedClassType = types_1.ClassType.cloneAsInstantiable(callResult.specializedInitSelfType);
|
284
|
+
}
|
285
|
+
returnType = applyExpectedTypeForConstructor(evaluator, adjustedClassType,
|
286
|
+
/* inferenceContext */ undefined, typeVarContext);
|
287
|
+
if (callResult.isTypeIncomplete) {
|
288
|
+
isTypeIncomplete = true;
|
289
|
+
}
|
290
|
+
if (callResult.argumentErrors) {
|
291
|
+
argumentErrors = true;
|
292
|
+
}
|
293
|
+
else {
|
294
|
+
overloadsUsedForCall.push(...callResult.overloadsUsedForCall);
|
295
|
+
}
|
296
|
+
}
|
297
|
+
return { argumentErrors, returnType, isTypeIncomplete, overloadsUsedForCall };
|
298
|
+
}
|
219
299
|
function validateFallbackConstructorCall(evaluator, errorNode, argList, type, inferenceContext) {
|
220
300
|
let reportedErrors = false;
|
221
301
|
if (argList.length > 0) {
|
@@ -267,51 +347,11 @@ function validateMetaclassCall(evaluator, errorNode, argList, type, skipUnknownA
|
|
267
347
|
}
|
268
348
|
return undefined;
|
269
349
|
}
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
function validateConstructorMethodWithContext(evaluator, errorNode, argList, type, skipUnknownArgCheck, inferenceContext, constructorMethodType) {
|
274
|
-
let isTypeIncomplete = false;
|
275
|
-
let argumentErrors = false;
|
276
|
-
const overloadsUsedForCall = [];
|
277
|
-
const returnType = (0, typeUtils_1.mapSubtypes)(inferenceContext.expectedType, (expectedSubType) => {
|
278
|
-
expectedSubType = (0, typeUtils_1.transformPossibleRecursiveTypeAlias)(expectedSubType);
|
279
|
-
const typeVarContext = new typeVarContext_1.TypeVarContext((0, typeUtils_1.getTypeVarScopeId)(type));
|
280
|
-
typeVarContext.addSolveForScope((0, typeUtils_1.getTypeVarScopeId)(constructorMethodType));
|
281
|
-
if ((0, constraintSolver_1.populateTypeVarContextBasedOnExpectedType)(evaluator, types_1.ClassType.cloneAsInstance(type), expectedSubType, typeVarContext, (0, parseTreeUtils_1.getTypeVarScopesForNode)(errorNode))) {
|
282
|
-
const specializedConstructor = (0, typeUtils_1.applySolvedTypeVars)(constructorMethodType, typeVarContext);
|
283
|
-
let callResult;
|
284
|
-
evaluator.useSpeculativeMode(errorNode, () => {
|
285
|
-
callResult = evaluator.validateCallArguments(errorNode, argList, { type: specializedConstructor }, typeVarContext.clone(), skipUnknownArgCheck);
|
286
|
-
});
|
287
|
-
if (!callResult.argumentErrors) {
|
288
|
-
// Call validateCallArguments again, this time without speculative
|
289
|
-
// mode, so any errors are reported.
|
290
|
-
callResult = evaluator.validateCallArguments(errorNode, argList, { type: specializedConstructor }, typeVarContext, skipUnknownArgCheck);
|
291
|
-
if (callResult.isTypeIncomplete) {
|
292
|
-
isTypeIncomplete = true;
|
293
|
-
}
|
294
|
-
if (callResult.argumentErrors) {
|
295
|
-
argumentErrors = true;
|
296
|
-
}
|
297
|
-
overloadsUsedForCall.push(...callResult.overloadsUsedForCall);
|
298
|
-
return applyExpectedSubtypeForConstructor(evaluator, type, expectedSubType, inferenceContext, typeVarContext);
|
299
|
-
}
|
300
|
-
}
|
301
|
-
return undefined;
|
350
|
+
function applyExpectedSubtypeForConstructor(evaluator, type, expectedSubtype, typeVarContext) {
|
351
|
+
const specializedType = (0, typeUtils_1.applySolvedTypeVars)(types_1.ClassType.cloneAsInstance(type), typeVarContext, {
|
352
|
+
applyInScopePlaceholders: true,
|
302
353
|
});
|
303
|
-
if ((
|
304
|
-
return undefined;
|
305
|
-
}
|
306
|
-
return { returnType, isTypeIncomplete, argumentErrors, overloadsUsedForCall };
|
307
|
-
}
|
308
|
-
function applyExpectedSubtypeForConstructor(evaluator, type, expectedSubtype, inferenceContext, typeVarContext) {
|
309
|
-
var _a;
|
310
|
-
const specializedType = (0, typeUtils_1.applySolvedTypeVars)(types_1.ClassType.cloneAsInstance(type), typeVarContext);
|
311
|
-
if (!evaluator.assignType(expectedSubtype, specializedType,
|
312
|
-
/* diag */ undefined,
|
313
|
-
/* destTypeVarContext */ (_a = inferenceContext === null || inferenceContext === void 0 ? void 0 : inferenceContext.typeVarContext) === null || _a === void 0 ? void 0 : _a.clone(),
|
314
|
-
/* srcTypeVarContext */ undefined)) {
|
354
|
+
if (!evaluator.assignType(expectedSubtype, specializedType)) {
|
315
355
|
return undefined;
|
316
356
|
}
|
317
357
|
// If the expected type is "Any", transform it to an Any.
|
@@ -326,7 +366,7 @@ function applyExpectedTypeForConstructor(evaluator, type, inferenceContext, type
|
|
326
366
|
let unsolvedTypeVarsAreUnknown = true;
|
327
367
|
if (inferenceContext) {
|
328
368
|
const specializedExpectedType = (0, typeUtils_1.mapSubtypes)(inferenceContext.expectedType, (expectedSubtype) => {
|
329
|
-
return applyExpectedSubtypeForConstructor(evaluator, type, expectedSubtype,
|
369
|
+
return applyExpectedSubtypeForConstructor(evaluator, type, expectedSubtype, typeVarContext);
|
330
370
|
});
|
331
371
|
if (!(0, types_1.isNever)(specializedExpectedType)) {
|
332
372
|
return specializedExpectedType;
|
@@ -448,9 +488,26 @@ function createFunctionFromConstructor(evaluator, classType, recursionCount = 0)
|
|
448
488
|
return constructorFunction;
|
449
489
|
}
|
450
490
|
exports.createFunctionFromConstructor = createFunctionFromConstructor;
|
451
|
-
//
|
452
|
-
//
|
453
|
-
|
454
|
-
|
491
|
+
// If __new__ returns a type that is not an instance of the class, skip the
|
492
|
+
// __init__ method evaluation. This is consistent with the behavior of the
|
493
|
+
// type.__call__ runtime behavior.
|
494
|
+
function shouldSkipInitEvaluation(evaluator, classType, newMethodReturnType) {
|
495
|
+
const returnType = evaluator.makeTopLevelTypeVarsConcrete(newMethodReturnType);
|
496
|
+
let skipInitCheck = false;
|
497
|
+
(0, typeUtils_1.doForEachSubtype)(returnType, (subtype) => {
|
498
|
+
if ((0, types_1.isAnyOrUnknown)(subtype)) {
|
499
|
+
return;
|
500
|
+
}
|
501
|
+
if ((0, types_1.isClassInstance)(subtype)) {
|
502
|
+
const inheritanceChain = [];
|
503
|
+
const isDerivedFrom = types_1.ClassType.isDerivedFrom(subtype, classType, inheritanceChain);
|
504
|
+
if (!isDerivedFrom) {
|
505
|
+
skipInitCheck = true;
|
506
|
+
}
|
507
|
+
return;
|
508
|
+
}
|
509
|
+
skipInitCheck = true;
|
510
|
+
});
|
511
|
+
return skipInitCheck;
|
455
512
|
}
|
456
513
|
//# sourceMappingURL=constructors.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"constructors.js","sourceRoot":"","sources":["../../../src/analyzer/constructors.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAEH,+DAA2D;AAC3D,uDAAqD;AAErD,yDAAiD;AACjD,yDAA+E;AAC/E,iEAA4F;AAC5F,qDAA2D;AAE3D,2CAcqB;AACrB,qDAAkD;AAClD,mCAciB;AAEjB,kEAAkE;AAClE,yEAAyE;AACzE,4EAA4E;AAC5E,SAAgB,4BAA4B,CACxC,SAAwB,EACxB,SAAyB,EACzB,OAA2B,EAC3B,IAAe,EACf,mBAA4B,EAC5B,gBAA8C;;IAE9C,uEAAuE;IACvE,yEAAyE;IACzE,mCAAmC;IACnC,MAAM,eAAe,GAAG,qBAAqB,CACzC,SAAS,EACT,SAAS,EACT,OAAO,EACP,IAAI,EACJ,mBAAmB,EACnB,gBAAgB,CACnB,CAAC;IACF,IAAI,eAAe,EAAE;QACjB,OAAO,eAAe,CAAC;KAC1B;IAED,mEAAmE;IACnE,MAAM,aAAa,GAAG,SAAS,CAAC,wBAAwB,CACpD,SAAS,EACT,IAAI;IACJ,6BAA6B,CAAC,KAAK,EACnC,SAAS,EACT,EAAE,MAAM,EAAE,KAAK,EAAE;IACjB,UAAU,CAAC,SAAS,EACpB;mCACyC;8CACU,EACnD,IAAI,CACP,CAAC;IAEF,oEAAoE;IACpE,MAAM,cAAc,GAAG,SAAS,CAAC,qBAAqB,CAClD,SAAS,EACT,iBAAS,CAAC,eAAe,CAAC,IAAI,CAAC,EAC/B,UAAU,EACV,EAAE,MAAM,EAAE,KAAK,EAAE;IACjB,UAAU,CAAC,SAAS,EACpB,kEAAqF,CACxF,CAAC;IAEF,IAAI,UAA4B,CAAC;IACjC,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,MAAM,oBAAoB,GAAmB,EAAE,CAAC;IAEhD,2EAA2E;IAC3E,+DAA+D;IAC/D,IAAI,CAAC,aAAa,IAAI,CAAC,cAAc,EAAE;QACnC,MAAM,UAAU,GAAG,+BAA+B,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;QAE1G,IAAI,UAAU,CAAC,cAAc,EAAE;YAC3B,cAAc,GAAG,IAAI,CAAC;SACzB;aAAM;YACH,oBAAoB,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;SACjE;QAED,UAAU,GAAG,MAAA,UAAU,CAAC,UAAU,mCAAI,mBAAW,CAAC,MAAM,EAAE,CAAC;KAC9D;SAAM;QACH,oBAAoB;QACpB,uEAAuE;QACvE,wEAAwE;QACxE,uEAAuE;QACvE,oBAAoB;QACpB,MAAM,cAAc,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,IAAI,CAAC;QAC5C,IAAI,cAAc,IAAI,CAAC,0BAA0B,CAAC,cAAc,CAAC,EAAE;YAC/D,6DAA6D;YAC7D,+DAA+D;YAC/D,0DAA0D;YAC1D,IAAI,gBAAgB,EAAE;gBAClB,MAAM,kBAAkB,GAAG,oCAAoC,CAC3D,SAAS,EACT,SAAS,EACT,OAAO,EACP,IAAI,EACJ,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,CACjB,CAAC;gBAEF,IAAI,kBAAkB,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE;oBAC1D,UAAU,GAAG,kBAAkB,CAAC,UAAU,CAAC;oBAE3C,IAAI,kBAAkB,CAAC,gBAAgB,EAAE;wBACrC,gBAAgB,GAAG,IAAI,CAAC;qBAC3B;iBACJ;aACJ;YAED,IAAI,CAAC,UAAU,EAAE;gBACb,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa;oBACrC,CAAC,CAAC,IAAA,mDAAuC,EAAC,IAAI,EAAE,kBAAkB,CAAC,KAAK,CAAC;oBACzE,CAAC,CAAC,IAAI,+BAAc,CAAC,IAAA,6BAAiB,EAAC,IAAI,CAAC,CAAC,CAAC;gBAElD,cAAc,CAAC,gBAAgB,CAAC,IAAA,6BAAiB,EAAC,cAAc,CAAC,CAAC,CAAC;gBACnE,MAAM,UAAU,GAAG,SAAS,CAAC,qBAAqB,CAC9C,SAAS,EACT,OAAO,EACP,EAAE,IAAI,EAAE,cAAc,EAAE,EACxB,cAAc,EACd,mBAAmB,CACtB,CAAC;gBAEF,IAAI,iBAAiB,GAAG,IAAI,CAAC;gBAC7B,IACI,UAAU,CAAC,uBAAuB;oBAClC,IAAA,uBAAe,EAAC,UAAU,CAAC,uBAAuB,CAAC;oBACnD,iBAAS,CAAC,kBAAkB,CAAC,UAAU,CAAC,uBAAuB,EAAE,IAAI,CAAC,EACxE;oBACE,iBAAiB,GAAG,iBAAS,CAAC,mBAAmB,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;iBACzF;gBAED,UAAU,GAAG,+BAA+B,CACxC,SAAS,EACT,iBAAiB;gBACjB,sBAAsB,CAAC,SAAS,EAChC,cAAc,CACjB,CAAC;gBAEF,IAAI,UAAU,CAAC,gBAAgB,EAAE;oBAC7B,gBAAgB,GAAG,IAAI,CAAC;iBAC3B;gBAED,IAAI,UAAU,CAAC,cAAc,EAAE;oBAC3B,cAAc,GAAG,IAAI,CAAC;iBACzB;qBAAM;oBACH,oBAAoB,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;iBACjE;aACJ;YAED,cAAc,GAAG,IAAI,CAAC;YACtB,mBAAmB,GAAG,IAAI,CAAC;SAC9B;QAED,mBAAmB;QACnB,gFAAgF;QAChF,kDAAkD;QAClD,IAAI,CAAC,cAAc,IAAI,aAAa,IAAI,CAAC,0BAA0B,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;YACrF,MAAM,qBAAqB,GAAG,aAAa,CAAC,IAAI,CAAC;YACjD,IAAI,aAA+B,CAAC;YAEpC,+DAA+D;YAC/D,yEAAyE;YACzE,IAAI,gBAAgB,IAAI,CAAC,UAAU,EAAE;gBACjC,MAAM,kBAAkB,GAAG,oCAAoC,CAC3D,SAAS,EACT,SAAS,EACT,OAAO,EACP,IAAI,EACJ,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,CACxB,CAAC;gBAEF,IAAI,kBAAkB,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE;oBAC1D,aAAa,GAAG,kBAAkB,CAAC,UAAU,CAAC;oBAC9C,UAAU,GAAG,aAAa,CAAC;oBAE3B,IAAI,kBAAkB,CAAC,gBAAgB,EAAE;wBACrC,gBAAgB,GAAG,IAAI,CAAC;qBAC3B;iBACJ;aACJ;YAED,MAAM,cAAc,GAAG,IAAI,+BAAc,CAAC,IAAA,6BAAiB,EAAC,IAAI,CAAC,CAAC,CAAC;YAEnE,IAAI,IAAI,CAAC,aAAa,EAAE;gBACpB,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;aACtE;YAED,cAAc,CAAC,gBAAgB,CAAC,IAAA,6BAAiB,EAAC,qBAAqB,CAAC,CAAC,CAAC;YAE1E,8EAA8E;YAC9E,qFAAqF;YACrF,MAAM,UAAU,GAAG,SAAS,CAAC,kBAAkB,CAC3C,IAAA,8CAAuB,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EACrD,GAAG,EAAE;gBACD,OAAO,SAAS,CAAC,qBAAqB,CAClC,SAAS,EACT,OAAO,EACP,aAAc,EACd,cAAc,EACd,mBAAmB,CACtB,CAAC;YACN,CAAC,CACJ,CAAC;YAEF,IAAI,UAAU,CAAC,gBAAgB,EAAE;gBAC7B,gBAAgB,GAAG,IAAI,CAAC;aAC3B;YAED,IAAI,UAAU,CAAC,cAAc,EAAE;gBAC3B,cAAc,GAAG,IAAI,CAAC;aACzB;iBAAM,IAAI,CAAC,aAAa,EAAE;gBACvB,aAAa,GAAG,UAAU,CAAC,UAAU,CAAC;gBAEtC,IAAI,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE;oBACnC,oBAAoB,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;iBACjE;gBAED,wEAAwE;gBACxE,0EAA0E;gBAC1E,2EAA2E;gBAC3E,4EAA4E;gBAC5E,oEAAoE;gBACpE,qBAAqB;gBACrB,IAAI,aAAa,EAAE;oBACf,IAAI,IAAA,uBAAe,EAAC,aAAa,CAAC,IAAI,iBAAS,CAAC,kBAAkB,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE;wBACrF,2DAA2D;wBAC3D,0DAA0D;wBAC1D,+DAA+D;wBAC/D,kDAAkD;wBAClD,IACI,CAAC,CAAC,IAAA,2BAAe,EAAC,aAAa,CAAC,IAAI,CAAC,IAAA,kCAAsB,EAAC,aAAa,CAAC,CAAC;4BAC3E,UAAU,KAAK,SAAS,EAC1B;4BACE,sDAAsD;4BACtD,wCAAwC;4BACxC,IACI,IAAA,uBAAe,EAAC,aAAa,CAAC;gCAC9B,iBAAS,CAAC,YAAY,CAAC,aAAa,CAAC;gCACrC,CAAC,aAAa,CAAC,kBAAkB;gCACjC,aAAa,CAAC,aAAa;gCAC3B,aAAa,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAC1C;gCACE,aAAa,GAAG,IAAA,gCAAoB,EAAC,aAAa,EAAE;oCAChD,EAAE,IAAI,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;iCAC9D,CAAC,CAAC;6BACN;4BAED,UAAU,GAAG,aAAa,CAAC;yBAC9B;qBACJ;yBAAM,IAAI,CAAC,UAAU,IAAI,CAAC,IAAA,iBAAS,EAAC,aAAa,CAAC,EAAE;wBACjD,UAAU,GAAG,aAAa,CAAC;qBAC9B;iBACJ;aACJ;YAED,IAAI,CAAC,UAAU,EAAE;gBACb,UAAU,GAAG,+BAA+B,CAAC,SAAS,EAAE,IAAI,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC;aACnG;iBAAM,IAAI,IAAA,uBAAe,EAAC,UAAU,CAAC,IAAI,IAAA,wBAAY,EAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE;gBAClG,UAAU,GAAG,oCAAoC,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;aACnF;YACD,cAAc,GAAG,IAAI,CAAC;SACzB;KACJ;IAED,wEAAwE;IACxE,sEAAsE;IACtE,IAAI,CAAC,cAAc,EAAE;QACjB,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACpB,IAAI,GAAG,CAAC,eAAe,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;gBAC/E,SAAS,CAAC,mBAAmB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;aACtD;QACL,CAAC,CAAC,CAAC;KACN;IAED,+CAA+C;IAC/C,IAAI,CAAC,cAAc,IAAI,UAAU,EAAE;QAC/B,MAAM,WAAW,GAAG,IAAA,gDAAyB,EAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;YAC/E,cAAc;YACd,UAAU;YACV,gBAAgB;SACnB,CAAC,CAAC;QAEH,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;QAEpC,IAAI,WAAW,CAAC,gBAAgB,EAAE;YAC9B,gBAAgB,GAAG,IAAI,CAAC;SAC3B;QAED,IAAI,WAAW,CAAC,cAAc,EAAE;YAC5B,cAAc,GAAG,IAAI,CAAC;SACzB;KACJ;IAED,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,CAAC;AAClF,CAAC;AA5RD,oEA4RC;AAED,SAAS,+BAA+B,CACpC,SAAwB,EACxB,SAAyB,EACzB,OAA2B,EAC3B,IAAe,EACf,gBAA8C;IAE9C,IAAI,cAAc,GAAG,KAAK,CAAC;IAE3B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACpB,MAAM,QAAQ,GAAG,IAAA,8BAAW,EAAC,SAAS,CAAC,CAAC;QACxC,SAAS,CAAC,aAAa,CACnB,QAAQ,CAAC,iBAAiB,CAAC,uBAAuB,EAClD,gCAAc,CAAC,uBAAuB,EACtC,oBAAS,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAC9F,SAAS,CACZ,CAAC;QACF,cAAc,GAAG,IAAI,CAAC;KACzB;IAED,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,aAAa,EAAE;QACzC,sEAAsE;QACtE,sEAAsE;QACtE,OAAO;YACH,cAAc,EAAE,cAAc;YAC9B,oBAAoB,EAAE,EAAE;YACxB,UAAU,EAAE,IAAA,6BAAiB,EAAC,IAAI,CAAC;SACtC,CAAC;KACL;IAED,yEAAyE;IACzE,oBAAoB;IACpB,MAAM,cAAc,GAAG,IAAI,+BAAc,CAAC,IAAA,6BAAiB,EAAC,IAAI,CAAC,CAAC,CAAC;IAEnE,IAAI,gBAAgB,EAAE;QAClB,IAAA,4DAAyC,EACrC,SAAS,EACT,iBAAS,CAAC,eAAe,CAAC,IAAI,CAAC,EAC/B,gBAAgB,CAAC,YAAY,EAC7B,cAAc,EACd,IAAA,wCAAuB,EAAC,SAAS,CAAC,CACrC,CAAC;KACL;IAED,OAAO;QACH,cAAc,EAAE,cAAc;QAC9B,oBAAoB,EAAE,EAAE;QACxB,UAAU,EAAE,+BAA+B,CAAC,SAAS,EAAE,IAAI,EAAE,gBAAgB,EAAE,cAAc,CAAC;KACjG,CAAC;AACN,CAAC;AAED,SAAS,qBAAqB,CAC1B,SAAwB,EACxB,SAAyB,EACzB,OAA2B,EAC3B,IAAe,EACf,mBAA4B,EAC5B,gBAA8C;IAE9C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC;IAElD,IAAI,SAAS,IAAI,IAAA,2BAAmB,EAAC,SAAS,CAAC,IAAI,CAAC,iBAAS,CAAC,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE;QAC/F,MAAM,uBAAuB,GAAG,SAAS,CAAC,wBAAwB,CAC9D,SAAS,EACT,SAAS;QACT,6BAA6B,CAAC,IAAI,EAClC,UAAU,EACV,EAAE,MAAM,EAAE,KAAK,EAAE;QACjB,UAAU,CAAC,SAAS,EACpB;uCACuC;gDACU,EACjD,IAAI,CACP,CAAC;QAEF,IAAI,uBAAuB,EAAE;YACzB,MAAM,UAAU,GAAG,SAAS,CAAC,qBAAqB,CAC9C,SAAS,EACT,OAAO,EACP,uBAAuB;YACvB,oBAAoB,CAAC,SAAS,EAC9B,mBAAmB,EACnB,gBAAgB,CACnB,CAAC;YAEF,IAAI,CAAC,UAAU,CAAC,UAAU,IAAI,IAAA,iBAAS,EAAC,UAAU,CAAC,UAAU,CAAC,EAAE;gBAC5D,gEAAgE;gBAChE,gEAAgE;gBAChE,mBAAmB;gBACnB,MAAM,cAAc,GAAG,IAAI,+BAAc,CAAC,IAAA,6BAAiB,EAAC,IAAI,CAAC,CAAC,CAAC;gBACnE,UAAU,CAAC,UAAU,GAAG,+BAA+B,CACnD,SAAS,EACT,IAAI,EACJ,gBAAgB,EAChB,cAAc,CACjB,CAAC;aACL;YAED,OAAO,UAAU,CAAC;SACrB;KACJ;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,6EAA6E;AAC7E,8EAA8E;AAC9E,+CAA+C;AAC/C,SAAS,oCAAoC,CACzC,SAAwB,EACxB,SAAyB,EACzB,OAA2B,EAC3B,IAAe,EACf,mBAA4B,EAC5B,gBAAkC,EAClC,qBAA2B;IAE3B,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,MAAM,oBAAoB,GAAmB,EAAE,CAAC;IAEhD,MAAM,UAAU,GAAG,IAAA,uBAAW,EAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,eAAe,EAAE,EAAE;QAC9E,eAAe,GAAG,IAAA,+CAAmC,EAAC,eAAe,CAAC,CAAC;QAEvE,MAAM,cAAc,GAAG,IAAI,+BAAc,CAAC,IAAA,6BAAiB,EAAC,IAAI,CAAC,CAAC,CAAC;QACnE,cAAc,CAAC,gBAAgB,CAAC,IAAA,6BAAiB,EAAC,qBAAqB,CAAC,CAAC,CAAC;QAE1E,IACI,IAAA,4DAAyC,EACrC,SAAS,EACT,iBAAS,CAAC,eAAe,CAAC,IAAI,CAAC,EAC/B,eAAe,EACf,cAAc,EACd,IAAA,wCAAuB,EAAC,SAAS,CAAC,CACrC,EACH;YACE,MAAM,sBAAsB,GAAG,IAAA,+BAAmB,EAAC,qBAAqB,EAAE,cAAc,CAAC,CAAC;YAE1F,IAAI,UAAkC,CAAC;YACvC,SAAS,CAAC,kBAAkB,CAAC,SAAS,EAAE,GAAG,EAAE;gBACzC,UAAU,GAAG,SAAS,CAAC,qBAAqB,CACxC,SAAS,EACT,OAAO,EACP,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAChC,cAAc,CAAC,KAAK,EAAE,EACtB,mBAAmB,CACtB,CAAC;YACN,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,UAAW,CAAC,cAAc,EAAE;gBAC7B,kEAAkE;gBAClE,oCAAoC;gBACpC,UAAU,GAAG,SAAS,CAAC,qBAAqB,CACxC,SAAS,EACT,OAAO,EACP,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAChC,cAAc,EACd,mBAAmB,CACtB,CAAC;gBAEF,IAAI,UAAU,CAAC,gBAAgB,EAAE;oBAC7B,gBAAgB,GAAG,IAAI,CAAC;iBAC3B;gBAED,IAAI,UAAU,CAAC,cAAc,EAAE;oBAC3B,cAAc,GAAG,IAAI,CAAC;iBACzB;gBAED,oBAAoB,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;gBAE9D,OAAO,kCAAkC,CACrC,SAAS,EACT,IAAI,EACJ,eAAe,EACf,gBAAgB,EAChB,cAAc,CACjB,CAAC;aACL;SACJ;QAED,OAAO,SAAS,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,IAAI,IAAA,eAAO,EAAC,UAAU,CAAC,EAAE;QACrB,OAAO,SAAS,CAAC;KACpB;IAED,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,oBAAoB,EAAE,CAAC;AAClF,CAAC;AAED,SAAS,kCAAkC,CACvC,SAAwB,EACxB,IAAe,EACf,eAAqB,EACrB,gBAAkC,EAClC,cAA8B;;IAE9B,MAAM,eAAe,GAAG,IAAA,+BAAmB,EAAC,iBAAS,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC;IAE7F,IACI,CAAC,SAAS,CAAC,UAAU,CACjB,eAAe,EACf,eAAe;IACf,UAAU,CAAC,SAAS;IACpB,wBAAwB,CAAC,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,cAAc,0CAAE,KAAK,EAAE;IAClE,uBAAuB,CAAC,SAAS,CACpC,EACH;QACE,OAAO,SAAS,CAAC;KACpB;IAED,yDAAyD;IACzD,IAAI,IAAA,aAAK,EAAC,eAAe,CAAC,EAAE;QACxB,OAAO,eAAe,CAAC;KAC1B;IAED,OAAO,eAAe,CAAC;AAC3B,CAAC;AAED,sEAAsE;AACtE,wEAAwE;AACxE,SAAS,+BAA+B,CACpC,SAAwB,EACxB,IAAe,EACf,gBAA8C,EAC9C,cAA8B;IAE9B,IAAI,0BAA0B,GAAG,IAAI,CAAC;IAEtC,IAAI,gBAAgB,EAAE;QAClB,MAAM,uBAAuB,GAAG,IAAA,uBAAW,EAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,eAAe,EAAE,EAAE;YAC3F,OAAO,kCAAkC,CACrC,SAAS,EACT,IAAI,EACJ,eAAe,EACf,gBAAgB,EAChB,cAAc,CACjB,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,IAAA,eAAO,EAAC,uBAAuB,CAAC,EAAE;YACnC,OAAO,uBAAuB,CAAC;SAClC;QAED,gEAAgE;QAChE,kEAAkE;QAClE,+CAA+C;QAC/C,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,0BAA0B,GAAG,KAAK,CAAC;SACtC;KACJ;IAED,MAAM,eAAe,GAAG,IAAA,+BAAmB,EAAC,IAAI,EAAE,cAAc,EAAE;QAC9D,iBAAiB,EAAE,0BAA0B;KAChD,CAAc,CAAC;IAChB,OAAO,iBAAS,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;AACtD,CAAC;AAED,wEAAwE;AACxE,mCAAmC;AACnC,SAAS,oCAAoC,CAAC,IAAe,EAAE,gBAA8C;IACzG,IAAI,eAAe,GAAG,IAAI,CAAC;IAE3B,IACI,gBAAgB;QAChB,IAAA,uBAAe,EAAC,gBAAgB,CAAC,YAAY,CAAC;QAC9C,IAAA,wBAAY,EAAC,gBAAgB,CAAC,YAAY,CAAC;QAC3C,gBAAgB,CAAC,YAAY,CAAC,kBAAkB,EAClD;QACE,eAAe,GAAG,IAAA,gCAAoB,EAAC,IAAI,EAAE,gBAAgB,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;KAClG;IAED,OAAO,eAAe,CAAC;AAC3B,CAAC;AAED,uEAAuE;AACvE,8DAA8D;AAC9D,SAAgB,6BAA6B,CACzC,SAAwB,EACxB,SAAoB,EACpB,cAAc,GAAG,CAAC;IAElB,oEAAoE;IACpE,MAAM,QAAQ,GAAG,IAAA,6BAAiB,EAC9B,SAAS,EACT,UAAU,EACV,2DAAyF,CAC5F,CAAC;IAEF,IAAI,QAAQ,EAAE;QACV,MAAM,QAAQ,GAAG,SAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACrD,MAAM,UAAU,GAAG,iBAAS,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAExD,MAAM,wBAAwB,GAAG,CAAC,WAAyB,EAAE,EAAE;YAC3D,IAAI,mBAAmB,GAAG,SAAS,CAAC,2BAA2B,CAC3D,UAAU,EACV,WAAW;YACX,iBAAiB,CAAC,SAAS;YAC3B,eAAe,CAAC,SAAS,EACzB,cAAc,CACW,CAAC;YAE9B,IAAI,mBAAmB,EAAE;gBACrB,mBAAmB,GAAG,oBAAY,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;gBAC9D,mBAAmB,CAAC,OAAO,CAAC,kBAAkB,GAAG,UAAU,CAAC;gBAE5D,IAAI,mBAAmB,CAAC,gBAAgB,EAAE;oBACtC,mBAAmB,CAAC,gBAAgB,CAAC,UAAU,GAAG,UAAU,CAAC;iBAChE;gBAED,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE;oBACvE,mBAAmB,CAAC,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC;iBACvE;gBAED,mBAAmB,CAAC,OAAO,CAAC,KAAK,IAAI,qBAA+B,CAAC;aACxE;YAED,OAAO,mBAAmB,CAAC;QAC/B,CAAC,CAAC;QAEF,IAAI,IAAA,kBAAU,EAAC,QAAQ,CAAC,EAAE;YACtB,OAAO,wBAAwB,CAAC,QAAQ,CAAC,CAAC;SAC7C;aAAM,IAAI,IAAA,4BAAoB,EAAC,QAAQ,CAAC,EAAE;YACvC,MAAM,aAAa,GAAmB,EAAE,CAAC;YACzC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACpC,MAAM,SAAS,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;gBACrD,IAAI,SAAS,EAAE;oBACX,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;iBACjC;YACL,CAAC,CAAC,CAAC;YAEH,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC5B,OAAO,SAAS,CAAC;aACpB;iBAAM,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC;aAC3B;YAED,OAAO,8BAAsB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;SACvD;KACJ;IAED,+DAA+D;IAC/D,MAAM,OAAO,GAAG,IAAA,6BAAiB,EAC7B,SAAS,EACT,SAAS,EACT,2DAAyF,CAC5F,CAAC;IAEF,IAAI,OAAO,EAAE;QACT,MAAM,OAAO,GAAG,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEnD,MAAM,uBAAuB,GAAG,CAAC,UAAwB,EAAE,EAAE;YACzD,IAAI,mBAAmB,GAAG,SAAS,CAAC,2BAA2B,CAC3D,SAAS,EACT,UAAU;YACV,iBAAiB,CAAC,SAAS;YAC3B,eAAe,CAAC,SAAS,EACzB,cAAc;YACd,mCAAmC,CAAC,IAAI,CACf,CAAC;YAE9B,IAAI,mBAAmB,EAAE;gBACrB,mBAAmB,GAAG,oBAAY,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;gBAE9D,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE;oBACvE,mBAAmB,CAAC,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC;iBACvE;gBAED,mBAAmB,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAClC,gDAAoE,CACvE,CAAC;aACL;YAED,OAAO,mBAAmB,CAAC;QAC/B,CAAC,CAAC;QAEF,IAAI,IAAA,kBAAU,EAAC,OAAO,CAAC,EAAE;YACrB,OAAO,uBAAuB,CAAC,OAAO,CAAC,CAAC;SAC3C;aAAM,IAAI,IAAA,4BAAoB,EAAC,OAAO,CAAC,EAAE;YACtC,MAAM,YAAY,GAAmB,EAAE,CAAC;YACxC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACnC,MAAM,SAAS,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;gBACpD,IAAI,SAAS,EAAE;oBACX,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;iBAChC;YACL,CAAC,CAAC,CAAC;YAEH,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3B,OAAO,SAAS,CAAC;aACpB;iBAAM,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;gBAClC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;aAC1B;YAED,OAAO,8BAAsB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SACtD;KACJ;IAED,gCAAgC;IAChC,MAAM,mBAAmB,GAAG,oBAAY,CAAC,yBAAyB,CAAC,SAAS,eAAyB,CAAC;IACtG,mBAAmB,CAAC,OAAO,CAAC,kBAAkB,GAAG,iBAAS,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IACtF,oBAAY,CAAC,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;IAEvD,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE;QACvE,mBAAmB,CAAC,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC;KACvE;IAED,OAAO,mBAAmB,CAAC;AAC/B,CAAC;AAlID,sEAkIC;AAED,0EAA0E;AAC1E,iEAAiE;AACjE,SAAS,0BAA0B,CAAC,IAAU;IAC1C,OAAO,IAAA,kBAAU,EAAC,IAAI,CAAC,IAAI,oBAAY,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;AACzE,CAAC"}
|
1
|
+
{"version":3,"file":"constructors.js","sourceRoot":"","sources":["../../../src/analyzer/constructors.ts"],"names":[],"mappings":"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"}
|
@@ -472,10 +472,10 @@ function synthesizeDataClassMethods(evaluator, node, classType, skipSynthesizeIn
|
|
472
472
|
const hashMethod = types_1.FunctionType.createSynthesizedInstance('__hash__');
|
473
473
|
types_1.FunctionType.addParameter(hashMethod, selfParam);
|
474
474
|
hashMethod.details.declaredReturnType = evaluator.getBuiltInObject(node, 'int');
|
475
|
-
symbolTable.set('__hash__', symbol_1.Symbol.createWithType(4 /* ClassMember */, hashMethod));
|
475
|
+
symbolTable.set('__hash__', symbol_1.Symbol.createWithType(4 /* ClassMember */ | 4096 /* IgnoredForOverrideChecks */, hashMethod));
|
476
476
|
}
|
477
477
|
else if (synthesizeHashNone && !skipSynthesizeHash) {
|
478
|
-
symbolTable.set('__hash__', symbol_1.Symbol.createWithType(4 /* ClassMember */, types_1.NoneType.createInstance()));
|
478
|
+
symbolTable.set('__hash__', symbol_1.Symbol.createWithType(4 /* ClassMember */ | 4096 /* IgnoredForOverrideChecks */, types_1.NoneType.createInstance()));
|
479
479
|
}
|
480
480
|
let dictType = evaluator.getBuiltInType(node, 'dict');
|
481
481
|
if ((0, types_1.isInstantiableClass)(dictType)) {
|