@zzzen/pyright-internal 1.2.0-dev.20240630 → 1.2.0-dev.20240714
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/analyzerNodeInfo.js +74 -46
- package/dist/analyzer/analyzerNodeInfo.js.map +1 -1
- package/dist/analyzer/binder.js +507 -513
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/checker.js +652 -633
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.d.ts +5 -3
- package/dist/analyzer/codeFlowEngine.js +143 -122
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/codeFlowTypes.js +30 -28
- package/dist/analyzer/codeFlowTypes.js.map +1 -1
- package/dist/analyzer/constraintSolver.d.ts +1 -1
- package/dist/analyzer/constraintSolver.js +71 -67
- package/dist/analyzer/constraintSolver.js.map +1 -1
- package/dist/analyzer/constructorTransform.js +22 -22
- package/dist/analyzer/constructorTransform.js.map +1 -1
- package/dist/analyzer/constructors.js +85 -77
- package/dist/analyzer/constructors.js.map +1 -1
- package/dist/analyzer/dataClasses.js +113 -176
- package/dist/analyzer/dataClasses.js.map +1 -1
- package/dist/analyzer/declaration.d.ts +1 -1
- package/dist/analyzer/declarationUtils.js +14 -15
- package/dist/analyzer/declarationUtils.js.map +1 -1
- package/dist/analyzer/decorators.js +85 -85
- package/dist/analyzer/decorators.js.map +1 -1
- package/dist/analyzer/enums.js +71 -57
- package/dist/analyzer/enums.js.map +1 -1
- package/dist/analyzer/functionTransform.js +8 -18
- package/dist/analyzer/functionTransform.js.map +1 -1
- package/dist/analyzer/importResolver.d.ts +2 -1
- package/dist/analyzer/importResolver.js +40 -29
- package/dist/analyzer/importResolver.js.map +1 -1
- package/dist/analyzer/importStatementUtils.js +27 -27
- package/dist/analyzer/importStatementUtils.js.map +1 -1
- package/dist/analyzer/namedTuples.js +33 -59
- package/dist/analyzer/namedTuples.js.map +1 -1
- package/dist/analyzer/operations.d.ts +4 -4
- package/dist/analyzer/operations.js +70 -70
- package/dist/analyzer/operations.js.map +1 -1
- package/dist/analyzer/packageTypeVerifier.js +66 -62
- package/dist/analyzer/packageTypeVerifier.js.map +1 -1
- package/dist/analyzer/parameterUtils.d.ts +4 -4
- package/dist/analyzer/parameterUtils.js +28 -46
- package/dist/analyzer/parameterUtils.js.map +1 -1
- package/dist/analyzer/parseTreeUtils.js +268 -269
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/parseTreeWalker.js +76 -76
- package/dist/analyzer/parseTreeWalker.js.map +1 -1
- package/dist/analyzer/patternMatching.js +195 -147
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.js +1 -1
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/properties.js +78 -147
- package/dist/analyzer/properties.js.map +1 -1
- package/dist/analyzer/protocols.js +22 -22
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/sourceFile.d.ts +3 -2
- package/dist/analyzer/sourceFile.js +8 -8
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/sourceMapper.js +20 -19
- package/dist/analyzer/sourceMapper.js.map +1 -1
- package/dist/analyzer/staticExpressions.js +83 -84
- package/dist/analyzer/staticExpressions.js.map +1 -1
- package/dist/analyzer/testWalker.js +2 -2
- package/dist/analyzer/testWalker.js.map +1 -1
- package/dist/analyzer/tracePrinter.js +20 -20
- package/dist/analyzer/tracePrinter.js.map +1 -1
- package/dist/analyzer/typeDocStringUtils.js +25 -25
- package/dist/analyzer/typeDocStringUtils.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +2330 -2367
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +33 -31
- package/dist/analyzer/typeEvaluatorTypes.js +48 -41
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.js +221 -217
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typePrinter.js +118 -115
- package/dist/analyzer/typePrinter.js.map +1 -1
- package/dist/analyzer/typeStubWriter.js +104 -103
- package/dist/analyzer/typeStubWriter.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +26 -9
- package/dist/analyzer/typeUtils.js +460 -404
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typeVarContext.js +8 -8
- package/dist/analyzer/typeVarContext.js.map +1 -1
- package/dist/analyzer/typeWalker.js +13 -10
- package/dist/analyzer/typeWalker.js.map +1 -1
- package/dist/analyzer/typedDicts.js +96 -198
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/types.d.ts +147 -103
- package/dist/analyzer/types.js +668 -493
- package/dist/analyzer/types.js.map +1 -1
- package/dist/commands/dumpFileDebugInfoCommand.js +33 -33
- package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
- package/dist/common/diagnostic.d.ts +14 -0
- package/dist/common/diagnostic.js +41 -1
- package/dist/common/diagnostic.js.map +1 -1
- package/dist/common/diagnosticSink.d.ts +4 -0
- package/dist/common/diagnosticSink.js +21 -1
- package/dist/common/diagnosticSink.js.map +1 -1
- package/dist/common/fileSystem.d.ts +1 -0
- package/dist/common/fileSystem.js.map +1 -1
- package/dist/common/fullAccessHost.js +6 -4
- package/dist/common/fullAccessHost.js.map +1 -1
- package/dist/common/realFileSystem.d.ts +1 -0
- package/dist/common/realFileSystem.js +4 -0
- package/dist/common/realFileSystem.js.map +1 -1
- package/dist/common/textEditTracker.js +14 -14
- package/dist/common/textEditTracker.js.map +1 -1
- package/dist/languageService/autoImporter.js +10 -10
- package/dist/languageService/autoImporter.js.map +1 -1
- package/dist/languageService/callHierarchyProvider.js +23 -23
- package/dist/languageService/callHierarchyProvider.js.map +1 -1
- package/dist/languageService/completionProvider.d.ts +1 -1
- package/dist/languageService/completionProvider.js +156 -154
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/definitionProvider.d.ts +1 -1
- package/dist/languageService/definitionProvider.js +3 -1
- package/dist/languageService/definitionProvider.js.map +1 -1
- package/dist/languageService/documentSymbolCollector.js +19 -19
- package/dist/languageService/documentSymbolCollector.js.map +1 -1
- package/dist/languageService/hoverProvider.js +25 -24
- package/dist/languageService/hoverProvider.js.map +1 -1
- package/dist/languageService/importSorter.js +8 -8
- package/dist/languageService/importSorter.js.map +1 -1
- package/dist/languageService/referencesProvider.js +8 -8
- package/dist/languageService/referencesProvider.js.map +1 -1
- package/dist/languageService/signatureHelpProvider.d.ts +1 -1
- package/dist/languageService/signatureHelpProvider.js +6 -6
- package/dist/languageService/signatureHelpProvider.js.map +1 -1
- package/dist/languageService/symbolIndexer.js +3 -3
- package/dist/languageService/symbolIndexer.js.map +1 -1
- package/dist/languageService/tooltipUtils.js +13 -13
- package/dist/languageService/tooltipUtils.js.map +1 -1
- package/dist/localization/localize.d.ts +3 -0
- package/dist/localization/localize.js +1 -0
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.en-us.json +2 -1
- package/dist/parser/parseNodes.d.ts +468 -401
- package/dist/parser/parseNodes.js +626 -355
- package/dist/parser/parseNodes.js.map +1 -1
- package/dist/parser/parser.d.ts +1 -0
- package/dist/parser/parser.js +322 -297
- package/dist/parser/parser.js.map +1 -1
- package/dist/pyright.js +265 -5
- package/dist/pyright.js.map +1 -1
- package/dist/tests/classDeclaration.test.js +14 -14
- package/dist/tests/classDeclaration.test.js.map +1 -1
- package/dist/tests/fourslash/hover.init.fourslash.js +1 -1
- package/dist/tests/fourslash/hover.init.fourslash.js.map +1 -1
- package/dist/tests/harness/vfs/filesystem.d.ts +3 -2
- package/dist/tests/harness/vfs/filesystem.js +6 -2
- package/dist/tests/harness/vfs/filesystem.js.map +1 -1
- package/dist/tests/importResolver.test.js +4 -3
- package/dist/tests/importResolver.test.js.map +1 -1
- package/dist/tests/parseTreeUtils.test.js +5 -5
- package/dist/tests/parseTreeUtils.test.js.map +1 -1
- package/dist/tests/parser.test.js +8 -8
- package/dist/tests/parser.test.js.map +1 -1
- package/dist/tests/sourceMapperUtils.test.js +7 -7
- package/dist/tests/sourceMapperUtils.test.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +2 -2
- package/dist/tests/typeEvaluator3.test.js +10 -5
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +1 -1
- package/dist/tests/typeEvaluator7.test.js +2 -2
- package/dist/tests/typeEvaluator7.test.js.map +1 -1
- package/dist/tests/typePrinter.test.js +14 -39
- package/dist/tests/typePrinter.test.js.map +1 -1
- package/package.json +1 -1
@@ -23,14 +23,14 @@ const types_1 = require("./types");
|
|
23
23
|
const typeUtils_1 = require("./typeUtils");
|
24
24
|
const typeVarContext_1 = require("./typeVarContext");
|
25
25
|
function hasConstructorTransform(classType) {
|
26
|
-
if (classType.
|
26
|
+
if (classType.shared.fullName === 'functools.partial') {
|
27
27
|
return true;
|
28
28
|
}
|
29
29
|
return false;
|
30
30
|
}
|
31
31
|
exports.hasConstructorTransform = hasConstructorTransform;
|
32
32
|
function applyConstructorTransform(evaluator, errorNode, argList, classType, result, signatureTracker) {
|
33
|
-
if (classType.
|
33
|
+
if (classType.shared.fullName === 'functools.partial') {
|
34
34
|
return applyPartialTransform(evaluator, errorNode, argList, result, signatureTracker);
|
35
35
|
}
|
36
36
|
// By default, return the result unmodified.
|
@@ -40,7 +40,7 @@ exports.applyConstructorTransform = applyConstructorTransform;
|
|
40
40
|
// Applies a transform for the functools.partial class constructor.
|
41
41
|
function applyPartialTransform(evaluator, errorNode, argList, result, signatureTracker) {
|
42
42
|
// We assume that the normal return result is a functools.partial class instance.
|
43
|
-
if (!(0, types_1.isClassInstance)(result.returnType) || result.returnType.
|
43
|
+
if (!(0, types_1.isClassInstance)(result.returnType) || result.returnType.shared.fullName !== 'functools.partial') {
|
44
44
|
return result;
|
45
45
|
}
|
46
46
|
const callMemberResult = (0, typeUtils_1.lookUpObjectMember)(result.returnType, '__call__', 16 /* MemberAccessFlags.SkipInstanceMembers */);
|
@@ -48,7 +48,7 @@ function applyPartialTransform(evaluator, errorNode, argList, result, signatureT
|
|
48
48
|
return result;
|
49
49
|
}
|
50
50
|
const callMemberType = evaluator.getTypeOfMember(callMemberResult);
|
51
|
-
if (!(0, types_1.isFunction)(callMemberType) || callMemberType.
|
51
|
+
if (!(0, types_1.isFunction)(callMemberType) || callMemberType.shared.parameters.length < 1) {
|
52
52
|
return result;
|
53
53
|
}
|
54
54
|
if (argList.length < 1) {
|
@@ -105,7 +105,7 @@ function applyPartialTransform(evaluator, errorNode, argList, result, signatureT
|
|
105
105
|
if (applicableOverloads.length === 0) {
|
106
106
|
if (sawArgErrors) {
|
107
107
|
evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportCallIssue, localize_1.LocMessage.noOverload().format({
|
108
|
-
name: origFunctionType.overloads[0].
|
108
|
+
name: origFunctionType.priv.overloads[0].shared.name,
|
109
109
|
}), errorNode);
|
110
110
|
}
|
111
111
|
return result;
|
@@ -119,7 +119,7 @@ function applyPartialTransform(evaluator, errorNode, argList, result, signatureT
|
|
119
119
|
else {
|
120
120
|
synthesizedCallType = types_1.OverloadedFunctionType.create(
|
121
121
|
// Set the "overloaded" flag for each of the __call__ overloads.
|
122
|
-
applicableOverloads.map((overload) => types_1.FunctionType.cloneWithNewFlags(overload, overload.
|
122
|
+
applicableOverloads.map((overload) => types_1.FunctionType.cloneWithNewFlags(overload, overload.shared.flags | 256 /* FunctionTypeFlags.Overloaded */)));
|
123
123
|
}
|
124
124
|
types_1.ClassType.getSymbolTable(newPartialClass).set('__call__', symbol_1.Symbol.createWithType(4 /* SymbolFlags.ClassMember */, synthesizedCallType));
|
125
125
|
return {
|
@@ -159,7 +159,7 @@ function applyPartialTransformToFunction(evaluator, errorNode, argList, partialC
|
|
159
159
|
evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportArgumentType, localize_1.LocMessage.argAssignmentParamFunction().format({
|
160
160
|
argType: evaluator.printType(argTypeResult.type),
|
161
161
|
paramType: evaluator.printType(paramType),
|
162
|
-
functionName: origFunctionType.
|
162
|
+
functionName: origFunctionType.shared.name,
|
163
163
|
paramName: (_a = paramListDetails.params[paramListDetails.argsIndex].param.name) !== null && _a !== void 0 ? _a : '',
|
164
164
|
}), (_b = arg.valueExpression) !== null && _b !== void 0 ? _b : errorNode);
|
165
165
|
}
|
@@ -192,7 +192,7 @@ function applyPartialTransformToFunction(evaluator, errorNode, argList, partialC
|
|
192
192
|
evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportArgumentType, localize_1.LocMessage.argAssignmentParamFunction().format({
|
193
193
|
argType: evaluator.printType(argTypeResult.type),
|
194
194
|
paramType: evaluator.printType(paramType),
|
195
|
-
functionName: origFunctionType.
|
195
|
+
functionName: origFunctionType.shared.name,
|
196
196
|
paramName,
|
197
197
|
}), (_e = arg.valueExpression) !== null && _e !== void 0 ? _e : errorNode);
|
198
198
|
}
|
@@ -203,12 +203,12 @@ function applyPartialTransformToFunction(evaluator, errorNode, argList, partialC
|
|
203
203
|
}
|
204
204
|
}
|
205
205
|
else {
|
206
|
-
const matchingParam = paramListDetails.params.find((paramInfo) => { var _a; return paramInfo.param.name === ((_a = arg.name) === null || _a === void 0 ? void 0 : _a.value) && paramInfo.kind !== parameterUtils_1.ParameterKind.Positional; });
|
206
|
+
const matchingParam = paramListDetails.params.find((paramInfo) => { var _a; return paramInfo.param.name === ((_a = arg.name) === null || _a === void 0 ? void 0 : _a.d.value) && paramInfo.kind !== parameterUtils_1.ParameterKind.Positional; });
|
207
207
|
if (!matchingParam) {
|
208
208
|
// Is there a kwargs parameter?
|
209
209
|
if (paramListDetails.kwargsIndex === undefined) {
|
210
210
|
if (errorNode) {
|
211
|
-
evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportCallIssue, localize_1.LocMessage.paramNameMissing().format({ name: arg.name.value }), arg.name);
|
211
|
+
evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportCallIssue, localize_1.LocMessage.paramNameMissing().format({ name: arg.name.d.value }), arg.name);
|
212
212
|
}
|
213
213
|
argumentErrors = true;
|
214
214
|
}
|
@@ -222,7 +222,7 @@ function applyPartialTransformToFunction(evaluator, errorNode, argList, partialC
|
|
222
222
|
evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportArgumentType, localize_1.LocMessage.argAssignmentParamFunction().format({
|
223
223
|
argType: evaluator.printType(argTypeResult.type),
|
224
224
|
paramType: evaluator.printType(paramType),
|
225
|
-
functionName: origFunctionType.
|
225
|
+
functionName: origFunctionType.shared.name,
|
226
226
|
paramName: (_f = paramListDetails.params[paramListDetails.kwargsIndex].param.name) !== null && _f !== void 0 ? _f : '',
|
227
227
|
}), (_g = arg.valueExpression) !== null && _g !== void 0 ? _g : errorNode);
|
228
228
|
}
|
@@ -235,7 +235,7 @@ function applyPartialTransformToFunction(evaluator, errorNode, argList, partialC
|
|
235
235
|
const paramType = types_1.FunctionType.getEffectiveParameterType(origFunctionType, matchingParam.index);
|
236
236
|
if (paramMap.has(paramName)) {
|
237
237
|
if (errorNode) {
|
238
|
-
evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportCallIssue, localize_1.LocMessage.paramAlreadyAssigned().format({ name: arg.name.value }), arg.name);
|
238
|
+
evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportCallIssue, localize_1.LocMessage.paramAlreadyAssigned().format({ name: arg.name.d.value }), arg.name);
|
239
239
|
}
|
240
240
|
argumentErrors = true;
|
241
241
|
}
|
@@ -248,7 +248,7 @@ function applyPartialTransformToFunction(evaluator, errorNode, argList, partialC
|
|
248
248
|
evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportArgumentType, localize_1.LocMessage.argAssignmentParamFunction().format({
|
249
249
|
argType: evaluator.printType(argTypeResult.type),
|
250
250
|
paramType: evaluator.printType(paramType),
|
251
|
-
functionName: origFunctionType.
|
251
|
+
functionName: origFunctionType.shared.name,
|
252
252
|
paramName,
|
253
253
|
}), (_h = arg.valueExpression) !== null && _h !== void 0 ? _h : errorNode);
|
254
254
|
}
|
@@ -265,13 +265,13 @@ function applyPartialTransformToFunction(evaluator, errorNode, argList, partialC
|
|
265
265
|
}
|
266
266
|
// Create a new parameter list that omits parameters that have been
|
267
267
|
// populated already.
|
268
|
-
const updatedParamList = specializedFunctionType.
|
268
|
+
const updatedParamList = specializedFunctionType.shared.parameters.map((param, index) => {
|
269
269
|
const specializedParam = { ...param };
|
270
270
|
specializedParam.type = types_1.FunctionType.getEffectiveParameterType(specializedFunctionType, index);
|
271
271
|
// If it's a keyword parameter that has been assigned a value through
|
272
272
|
// the "partial" mechanism, mark it has having a default value.
|
273
273
|
if (param.name && paramMap.get(param.name)) {
|
274
|
-
specializedParam.
|
274
|
+
specializedParam.defaultType = types_1.AnyType.create(/* isEllipsis */ true);
|
275
275
|
}
|
276
276
|
return specializedParam;
|
277
277
|
});
|
@@ -295,18 +295,18 @@ function applyPartialTransformToFunction(evaluator, errorNode, argList, partialC
|
|
295
295
|
(0, collectionUtils_1.appendArray)(newParamList, assignedKeywordParamList);
|
296
296
|
(0, collectionUtils_1.appendArray)(newParamList, kwargsParam);
|
297
297
|
// Create a new __call__ method that uses the remaining parameters.
|
298
|
-
const newCallMemberType = types_1.FunctionType.createInstance(partialCallMemberType.
|
299
|
-
if (partialCallMemberType.
|
300
|
-
types_1.FunctionType.addParameter(newCallMemberType, partialCallMemberType.
|
298
|
+
const newCallMemberType = types_1.FunctionType.createInstance(partialCallMemberType.shared.name, partialCallMemberType.shared.fullName, partialCallMemberType.shared.moduleName, partialCallMemberType.shared.flags, specializedFunctionType.shared.docString);
|
299
|
+
if (partialCallMemberType.shared.parameters.length > 0) {
|
300
|
+
types_1.FunctionType.addParameter(newCallMemberType, partialCallMemberType.shared.parameters[0]);
|
301
301
|
}
|
302
302
|
newParamList.forEach((param) => {
|
303
303
|
types_1.FunctionType.addParameter(newCallMemberType, param);
|
304
304
|
});
|
305
|
-
newCallMemberType.
|
305
|
+
newCallMemberType.shared.declaredReturnType = specializedFunctionType.shared.declaredReturnType
|
306
306
|
? types_1.FunctionType.getEffectiveReturnType(specializedFunctionType)
|
307
|
-
: specializedFunctionType.inferredReturnType;
|
308
|
-
newCallMemberType.
|
309
|
-
newCallMemberType.
|
307
|
+
: specializedFunctionType.priv.inferredReturnType;
|
308
|
+
newCallMemberType.shared.declaration = partialCallMemberType.shared.declaration;
|
309
|
+
newCallMemberType.shared.typeVarScopeId = specializedFunctionType.shared.typeVarScopeId;
|
310
310
|
return { returnType: newCallMemberType, isTypeIncomplete: false, argumentErrors };
|
311
311
|
}
|
312
312
|
//# sourceMappingURL=constructorTransform.js.map
|
@@ -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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"}
|
@@ -51,10 +51,17 @@ exports.getBoundCallMethod = getBoundCallMethod;
|
|
51
51
|
// If successful, it returns the resulting (specialized) object type that
|
52
52
|
// is allocated by the constructor. If unsuccessful, it reports diagnostics.
|
53
53
|
function validateConstructorArguments(evaluator, errorNode, argList, type, skipUnknownArgCheck, inferenceContext, signatureTracker) {
|
54
|
-
var _a;
|
54
|
+
var _a, _b;
|
55
|
+
// If this is an unspecialized generic type alias, specialize it now
|
56
|
+
// using default type argument values.
|
57
|
+
const aliasInfo = (_a = type.props) === null || _a === void 0 ? void 0 : _a.typeAliasInfo;
|
58
|
+
if ((aliasInfo === null || aliasInfo === void 0 ? void 0 : aliasInfo.typeParameters) && !aliasInfo.typeArguments) {
|
59
|
+
const typeAliasTypeVarContext = new typeVarContext_1.TypeVarContext(aliasInfo.typeVarScopeId);
|
60
|
+
type = (0, typeUtils_1.applySolvedTypeVars)(type, typeAliasTypeVarContext, { unknownIfNotFound: true });
|
61
|
+
}
|
55
62
|
const metaclassResult = validateMetaclassCall(evaluator, errorNode, argList, type, skipUnknownArgCheck, inferenceContext, signatureTracker);
|
56
63
|
if (metaclassResult) {
|
57
|
-
const metaclassReturnType = (
|
64
|
+
const metaclassReturnType = (_b = metaclassResult.returnType) !== null && _b !== void 0 ? _b : types_1.UnknownType.create();
|
58
65
|
// If there a custom `__call__` method on the metaclass that returns
|
59
66
|
// something other than an instance of the class, assume that it
|
60
67
|
// overrides the normal `type.__call__` logic and don't perform the usual
|
@@ -147,7 +154,7 @@ function validateNewAndInitMethods(evaluator, errorNode, argList, type, skipUnkn
|
|
147
154
|
else if ((0, types_1.isAnyOrUnknown)(newMethodReturnType)) {
|
148
155
|
// If the __new__ method returns Any or Unknown, we'll ignore its return
|
149
156
|
// type and assume that it returns Self.
|
150
|
-
newMethodReturnType = (0, typeUtils_1.applySolvedTypeVars)(types_1.ClassType.cloneAsInstance(type), new typeVarContext_1.TypeVarContext((0, typeUtils_1.getTypeVarScopeId)(type)), { unknownIfNotFound: true });
|
157
|
+
newMethodReturnType = (0, typeUtils_1.applySolvedTypeVars)(types_1.ClassType.cloneAsInstance(type), new typeVarContext_1.TypeVarContext((0, typeUtils_1.getTypeVarScopeId)(type)), { unknownIfNotFound: true, tupleClassType: evaluator.getTupleClassType() });
|
151
158
|
}
|
152
159
|
let initMethodTypeResult;
|
153
160
|
// If there were errors evaluating the __new__ method, assume that __new__
|
@@ -166,8 +173,8 @@ function validateNewAndInitMethods(evaluator, errorNode, argList, type, skipUnkn
|
|
166
173
|
// but didn't supply solved type arguments, we'll ignore its specialized return
|
167
174
|
// type and rely on the __init__ method to supply the type arguments instead.
|
168
175
|
let initMethodBindToType = newMethodReturnType;
|
169
|
-
if (initMethodBindToType.typeArguments &&
|
170
|
-
initMethodBindToType.typeArguments.some((typeArg) => (0, types_1.isUnknown)(typeArg))) {
|
176
|
+
if (initMethodBindToType.priv.typeArguments &&
|
177
|
+
initMethodBindToType.priv.typeArguments.some((typeArg) => (0, types_1.isUnknown)(typeArg))) {
|
171
178
|
initMethodBindToType = types_1.ClassType.cloneAsInstance(type);
|
172
179
|
}
|
173
180
|
// Determine whether the class overrides the object.__init__ method.
|
@@ -233,9 +240,6 @@ function validateNewMethod(evaluator, errorNode, argList, type, skipUnknownArgCh
|
|
233
240
|
}
|
234
241
|
const typeVarContext = new typeVarContext_1.TypeVarContext((0, typeUtils_1.getTypeVarScopeId)(type));
|
235
242
|
typeVarContext.addSolveForScope((0, typeUtils_1.getTypeVarScopeId)(newMethodTypeResult.type));
|
236
|
-
if (type.typeAliasInfo) {
|
237
|
-
typeVarContext.addSolveForScope(type.typeAliasInfo.typeVarScopeId);
|
238
|
-
}
|
239
243
|
const callResult = evaluator.useSpeculativeMode(useSpeculativeModeForArgs ? errorNode : undefined, () => {
|
240
244
|
return evaluator.validateCallArguments(errorNode, argList, newMethodTypeResult, typeVarContext, skipUnknownArgCheck, inferenceContext, signatureTracker);
|
241
245
|
});
|
@@ -257,10 +261,10 @@ function validateNewMethod(evaluator, errorNode, argList, type, skipUnknownArgCh
|
|
257
261
|
if (newReturnType) {
|
258
262
|
// Special-case the 'tuple' type specialization to use the homogenous
|
259
263
|
// arbitrary-length form.
|
260
|
-
if ((0, types_1.isClassInstance)(newReturnType) && (0, typeUtils_1.isTupleClass)(newReturnType) && !newReturnType.tupleTypeArguments) {
|
261
|
-
if (newReturnType.typeArguments && newReturnType.typeArguments.length === 1) {
|
264
|
+
if ((0, types_1.isClassInstance)(newReturnType) && (0, typeUtils_1.isTupleClass)(newReturnType) && !newReturnType.priv.tupleTypeArguments) {
|
265
|
+
if (newReturnType.priv.typeArguments && newReturnType.priv.typeArguments.length === 1) {
|
262
266
|
newReturnType = (0, typeUtils_1.specializeTupleClass)(newReturnType, [
|
263
|
-
{ type: newReturnType.typeArguments[0], isUnbounded: true },
|
267
|
+
{ type: newReturnType.priv.typeArguments[0], isUnbounded: true },
|
264
268
|
]);
|
265
269
|
}
|
266
270
|
newReturnType = applyExpectedTypeForTupleConstructor(newReturnType, inferenceContext);
|
@@ -298,46 +302,46 @@ function validateInitMethod(evaluator, errorNode, argList, type, skipUnknownArgC
|
|
298
302
|
// specialization.
|
299
303
|
if ((0, types_1.isClassInstance)(expectedSubType) &&
|
300
304
|
types_1.ClassType.isSameGenericClass(type, expectedSubType) &&
|
301
|
-
type.typeArguments) {
|
305
|
+
type.priv.typeArguments) {
|
302
306
|
return undefined;
|
303
307
|
}
|
304
308
|
const typeVarContext = new typeVarContext_1.TypeVarContext((0, typeUtils_1.getTypeVarScopeId)(type));
|
305
309
|
typeVarContext.addSolveForScope((0, typeUtils_1.getTypeVarScopeId)(initMethodType));
|
306
|
-
if ((0, constraintSolver_1.
|
307
|
-
|
308
|
-
let callResult;
|
309
|
-
callResult = evaluator.useSpeculativeMode(errorNode, () => {
|
310
|
-
return evaluator.validateCallArguments(errorNode, argList, { type: specializedConstructor }, typeVarContext.clone(), skipUnknownArgCheck,
|
311
|
-
/* inferenceContext */ undefined, signatureTracker);
|
312
|
-
});
|
313
|
-
if (!callResult.argumentErrors) {
|
314
|
-
// Call validateCallArguments again, this time without speculative
|
315
|
-
// mode, so any errors are reported.
|
316
|
-
callResult = evaluator.validateCallArguments(errorNode, argList, { type: specializedConstructor }, typeVarContext, skipUnknownArgCheck,
|
317
|
-
/* inferenceContext */ undefined, signatureTracker);
|
318
|
-
if (callResult.isTypeIncomplete) {
|
319
|
-
isTypeIncomplete = true;
|
320
|
-
}
|
321
|
-
if (callResult.argumentErrors) {
|
322
|
-
argumentErrors = true;
|
323
|
-
}
|
324
|
-
if (callResult.overloadsUsedForCall) {
|
325
|
-
(0, collectionUtils_1.appendArray)(overloadsUsedForCall, callResult.overloadsUsedForCall);
|
326
|
-
}
|
327
|
-
// Note that we've found an expected type that works.
|
328
|
-
foundWorkingExpectedType = true;
|
329
|
-
return applyExpectedSubtypeForConstructor(evaluator, type, expectedSubType, typeVarContext);
|
330
|
-
}
|
310
|
+
if (!(0, constraintSolver_1.addConstraintsForExpectedType)(evaluator, types_1.ClassType.cloneAsInstance(type), expectedSubType, typeVarContext, (0, parseTreeUtils_1.getTypeVarScopesForNode)(errorNode), errorNode.start)) {
|
311
|
+
return undefined;
|
331
312
|
}
|
332
|
-
|
333
|
-
|
334
|
-
|
313
|
+
const specializedConstructor = (0, typeUtils_1.applySolvedTypeVars)(initMethodType, typeVarContext);
|
314
|
+
let callResult;
|
315
|
+
callResult = evaluator.useSpeculativeMode(errorNode, () => {
|
316
|
+
return evaluator.validateCallArguments(errorNode, argList, { type: specializedConstructor }, typeVarContext.clone(), skipUnknownArgCheck,
|
317
|
+
/* inferenceContext */ undefined, signatureTracker);
|
318
|
+
});
|
319
|
+
if (callResult.argumentErrors) {
|
320
|
+
return undefined;
|
321
|
+
}
|
322
|
+
// Call validateCallArguments again, this time without speculative
|
323
|
+
// mode, so any errors are reported.
|
324
|
+
callResult = evaluator.validateCallArguments(errorNode, argList, { type: specializedConstructor }, typeVarContext, skipUnknownArgCheck,
|
325
|
+
/* inferenceContext */ undefined, signatureTracker);
|
326
|
+
if (callResult.isTypeIncomplete) {
|
327
|
+
isTypeIncomplete = true;
|
328
|
+
}
|
329
|
+
if (callResult.argumentErrors) {
|
330
|
+
argumentErrors = true;
|
331
|
+
}
|
332
|
+
if (callResult.overloadsUsedForCall) {
|
333
|
+
(0, collectionUtils_1.appendArray)(overloadsUsedForCall, callResult.overloadsUsedForCall);
|
334
|
+
}
|
335
|
+
// Note that we've found an expected type that works.
|
336
|
+
foundWorkingExpectedType = true;
|
337
|
+
return applyExpectedSubtypeForConstructor(evaluator, type, expectedSubType, typeVarContext);
|
338
|
+
}, { sortSubtypes: true });
|
335
339
|
if ((0, types_1.isNever)(returnType) || argumentErrors) {
|
336
340
|
returnType = undefined;
|
337
341
|
}
|
338
342
|
}
|
339
343
|
if (!returnType) {
|
340
|
-
const typeVarContext = type.typeArguments
|
344
|
+
const typeVarContext = type.priv.typeArguments
|
341
345
|
? (0, typeUtils_1.buildTypeVarContextFromSpecializedClass)(type)
|
342
346
|
: new typeVarContext_1.TypeVarContext((0, typeUtils_1.getTypeVarScopeId)(type));
|
343
347
|
typeVarContext.addSolveForScope((0, typeUtils_1.getTypeVarScopeId)(initMethodType));
|
@@ -367,10 +371,10 @@ function validateFallbackConstructorCall(evaluator, errorNode, argList, type, in
|
|
367
371
|
let reportedErrors = false;
|
368
372
|
// It's OK if the argument list consists only of `*args` and `**kwargs`.
|
369
373
|
if (argList.length > 0 && argList.some((arg) => arg.argumentCategory === 0 /* ArgumentCategory.Simple */)) {
|
370
|
-
evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportCallIssue, localize_1.LocMessage.constructorNoArgs().format({ type: type.aliasName || type.
|
374
|
+
evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportCallIssue, localize_1.LocMessage.constructorNoArgs().format({ type: type.priv.aliasName || type.shared.name }), errorNode);
|
371
375
|
reportedErrors = true;
|
372
376
|
}
|
373
|
-
if (!inferenceContext && type.typeArguments) {
|
377
|
+
if (!inferenceContext && type.priv.typeArguments) {
|
374
378
|
// If there was no expected type but the type was already specialized,
|
375
379
|
// assume that we're constructing an instance of the specialized type.
|
376
380
|
return {
|
@@ -398,7 +402,7 @@ function validateFallbackConstructorCall(evaluator, errorNode, argList, type, in
|
|
398
402
|
});
|
399
403
|
}
|
400
404
|
if (expectedType) {
|
401
|
-
(0, constraintSolver_1.
|
405
|
+
(0, constraintSolver_1.addConstraintsForExpectedType)(evaluator, types_1.ClassType.cloneAsInstance(type), expectedType, typeVarContext, (0, parseTreeUtils_1.getTypeVarScopesForNode)(errorNode), errorNode.start);
|
402
406
|
}
|
403
407
|
}
|
404
408
|
return {
|
@@ -416,7 +420,7 @@ function validateMetaclassCall(evaluator, errorNode, argList, type, skipUnknownA
|
|
416
420
|
/* typeVarContext */ undefined, skipUnknownArgCheck, inferenceContext, signatureTracker);
|
417
421
|
// If the return type is unannotated, don't use the inferred return type.
|
418
422
|
const callType = metaclassCallMethodInfo.type;
|
419
|
-
if ((0, types_1.isFunction)(callType) && !callType.
|
423
|
+
if ((0, types_1.isFunction)(callType) && !callType.shared.declaredReturnType) {
|
420
424
|
return undefined;
|
421
425
|
}
|
422
426
|
// If the return type is unknown, ignore it.
|
@@ -444,7 +448,7 @@ function applyExpectedTypeForConstructor(evaluator, type, inferenceContext, type
|
|
444
448
|
let unsolvedTypeVarsAreUnknown = true;
|
445
449
|
// If this isn't a generic type or it's a type that has already been
|
446
450
|
// explicitly specialized, the expected type isn't applicable.
|
447
|
-
if (type.
|
451
|
+
if (type.shared.typeParameters.length === 0 || type.priv.typeArguments) {
|
448
452
|
return (0, typeUtils_1.applySolvedTypeVars)(types_1.ClassType.cloneAsInstance(type), typeVarContext, { applyInScopePlaceholders: true });
|
449
453
|
}
|
450
454
|
if (inferenceContext) {
|
@@ -457,12 +461,13 @@ function applyExpectedTypeForConstructor(evaluator, type, inferenceContext, type
|
|
457
461
|
// If the expected type didn't provide TypeVar values, remaining
|
458
462
|
// unsolved TypeVars should be considered Unknown unless they were
|
459
463
|
// provided explicitly in the constructor call.
|
460
|
-
if (type.typeArguments) {
|
464
|
+
if (type.priv.typeArguments) {
|
461
465
|
unsolvedTypeVarsAreUnknown = false;
|
462
466
|
}
|
463
467
|
}
|
464
468
|
const specializedType = (0, typeUtils_1.applySolvedTypeVars)(type, typeVarContext, {
|
465
469
|
unknownIfNotFound: unsolvedTypeVarsAreUnknown,
|
470
|
+
tupleClassType: evaluator.getTupleClassType(),
|
466
471
|
});
|
467
472
|
return types_1.ClassType.cloneAsInstance(specializedType);
|
468
473
|
}
|
@@ -473,8 +478,8 @@ function applyExpectedTypeForTupleConstructor(type, inferenceContext) {
|
|
473
478
|
if (inferenceContext &&
|
474
479
|
(0, types_1.isClassInstance)(inferenceContext.expectedType) &&
|
475
480
|
(0, typeUtils_1.isTupleClass)(inferenceContext.expectedType) &&
|
476
|
-
inferenceContext.expectedType.tupleTypeArguments) {
|
477
|
-
specializedType = (0, typeUtils_1.specializeTupleClass)(type, inferenceContext.expectedType.tupleTypeArguments);
|
481
|
+
inferenceContext.expectedType.priv.tupleTypeArguments) {
|
482
|
+
specializedType = (0, typeUtils_1.specializeTupleClass)(type, inferenceContext.expectedType.priv.tupleTypeArguments);
|
478
483
|
}
|
479
484
|
return specializedType;
|
480
485
|
}
|
@@ -511,7 +516,7 @@ function createFunctionFromConstructor(evaluator, classType, selfType = undefine
|
|
511
516
|
}
|
512
517
|
exports.createFunctionFromConstructor = createFunctionFromConstructor;
|
513
518
|
function createFunctionFromMetaclassCall(evaluator, classType, recursionCount) {
|
514
|
-
const metaclass = classType.
|
519
|
+
const metaclass = classType.shared.effectiveMetaclass;
|
515
520
|
if (!metaclass || !(0, types_1.isClass)(metaclass)) {
|
516
521
|
return undefined;
|
517
522
|
}
|
@@ -536,7 +541,7 @@ function createFunctionFromMetaclassCall(evaluator, classType, recursionCount) {
|
|
536
541
|
// any of them returns something other than the instance of the class being
|
537
542
|
// constructed.
|
538
543
|
(0, typeUtils_1.doForEachSignature)(boundCallType, (signature) => {
|
539
|
-
if (signature.
|
544
|
+
if (signature.shared.declaredReturnType) {
|
540
545
|
const returnType = types_1.FunctionType.getEffectiveReturnType(signature);
|
541
546
|
if (returnType && shouldSkipNewAndInitEvaluation(evaluator, classType, returnType)) {
|
542
547
|
useMetaclassCall = true;
|
@@ -557,13 +562,13 @@ function createFunctionFromNewMethod(evaluator, classType, selfType, recursionCo
|
|
557
562
|
// If there are no parameters that include class-scoped type parameters,
|
558
563
|
// self-specialize the class because the type arguments for the class
|
559
564
|
// can't be solved if there are no parameters to supply them.
|
560
|
-
const hasParametersWithTypeVars = newSubtype.
|
565
|
+
const hasParametersWithTypeVars = newSubtype.shared.parameters.some((param, index) => {
|
561
566
|
if (index === 0 || !param.name) {
|
562
567
|
return false;
|
563
568
|
}
|
564
569
|
const paramType = types_1.FunctionType.getEffectiveParameterType(newSubtype, index);
|
565
570
|
const typeVars = (0, typeUtils_1.getTypeVarArgumentsRecursive)(paramType);
|
566
|
-
return typeVars.some((typeVar) => typeVar.scopeId === (0, typeUtils_1.getTypeVarScopeId)(classType));
|
571
|
+
return typeVars.some((typeVar) => typeVar.priv.scopeId === (0, typeUtils_1.getTypeVarScopeId)(classType));
|
567
572
|
});
|
568
573
|
const boundNew = evaluator.bindFunctionToClassOrObject(hasParametersWithTypeVars ? (0, typeUtils_1.selfSpecializeClass)(classType) : classType, newSubtype, newInfo && (0, types_1.isInstantiableClass)(newInfo.classType) ? newInfo.classType : undefined,
|
569
574
|
/* treatConstructorAsClassMethod */ true, selfType,
|
@@ -572,12 +577,12 @@ function createFunctionFromNewMethod(evaluator, classType, selfType, recursionCo
|
|
572
577
|
return undefined;
|
573
578
|
}
|
574
579
|
const convertedNew = types_1.FunctionType.clone(boundNew);
|
575
|
-
convertedNew.
|
576
|
-
if (!convertedNew.
|
577
|
-
convertedNew.
|
580
|
+
convertedNew.shared.typeVarScopeId = newSubtype.shared.typeVarScopeId;
|
581
|
+
if (!convertedNew.shared.docString && classType.shared.docString) {
|
582
|
+
convertedNew.shared.docString = classType.shared.docString;
|
578
583
|
}
|
579
|
-
convertedNew.
|
580
|
-
convertedNew.
|
584
|
+
convertedNew.shared.flags &= ~(4 /* FunctionTypeFlags.StaticMethod */ | 1 /* FunctionTypeFlags.ConstructorMethod */);
|
585
|
+
convertedNew.priv.constructorTypeVarScopeId = (0, typeUtils_1.getTypeVarScopeId)(classType);
|
581
586
|
return convertedNew;
|
582
587
|
};
|
583
588
|
if ((0, types_1.isFunction)(newType)) {
|
@@ -587,7 +592,7 @@ function createFunctionFromNewMethod(evaluator, classType, selfType, recursionCo
|
|
587
592
|
return undefined;
|
588
593
|
}
|
589
594
|
const newOverloads = [];
|
590
|
-
newType.overloads.forEach((overload) => {
|
595
|
+
newType.priv.overloads.forEach((overload) => {
|
591
596
|
const converted = convertNewToConstructor(overload);
|
592
597
|
if (converted) {
|
593
598
|
newOverloads.push(converted);
|
@@ -604,14 +609,14 @@ function createFunctionFromNewMethod(evaluator, classType, selfType, recursionCo
|
|
604
609
|
function createFunctionFromObjectNewMethod(classType) {
|
605
610
|
// Return a fallback constructor based on the object.__new__ method.
|
606
611
|
const constructorFunction = types_1.FunctionType.createSynthesizedInstance('__new__', 0 /* FunctionTypeFlags.None */);
|
607
|
-
constructorFunction.
|
612
|
+
constructorFunction.shared.declaredReturnType = types_1.ClassType.cloneAsInstance(classType);
|
608
613
|
// If this is type[T] or a protocol, we don't know what parameters are accepted
|
609
614
|
// by the constructor, so add the default parameters.
|
610
|
-
if (classType.includeSubclasses || types_1.ClassType.isProtocolClass(classType)) {
|
615
|
+
if (classType.priv.includeSubclasses || types_1.ClassType.isProtocolClass(classType)) {
|
611
616
|
types_1.FunctionType.addDefaultParameters(constructorFunction);
|
612
617
|
}
|
613
|
-
if (!constructorFunction.
|
614
|
-
constructorFunction.
|
618
|
+
if (!constructorFunction.shared.docString && classType.shared.docString) {
|
619
|
+
constructorFunction.shared.docString = classType.shared.docString;
|
615
620
|
}
|
616
621
|
return constructorFunction;
|
617
622
|
}
|
@@ -639,12 +644,12 @@ function createFunctionFromInitMethod(evaluator, classType, selfType, recursionC
|
|
639
644
|
returnType = objectType;
|
640
645
|
// If this is a generic type, self-specialize the class (i.e. fill in
|
641
646
|
// its own type parameters as type arguments).
|
642
|
-
if (objectType.
|
647
|
+
if (objectType.shared.typeParameters.length > 0 && !objectType.priv.typeArguments) {
|
643
648
|
const typeVarContext = new typeVarContext_1.TypeVarContext((0, typeUtils_1.getTypeVarScopeIds)(objectType));
|
644
649
|
// If a TypeVar is not used in any of the parameter types, it should take
|
645
650
|
// on its default value (typically Unknown) in the resulting specialized type.
|
646
651
|
const typeVarsInParams = [];
|
647
|
-
convertedInit.
|
652
|
+
convertedInit.shared.parameters.forEach((param, index) => {
|
648
653
|
const paramType = types_1.FunctionType.getEffectiveParameterType(convertedInit, index);
|
649
654
|
(0, typeUtils_1.addTypeVarsToListIfUnique)(typeVarsInParams, (0, typeUtils_1.getTypeVarArgumentsRecursive)(paramType));
|
650
655
|
});
|
@@ -656,18 +661,21 @@ function createFunctionFromInitMethod(evaluator, classType, selfType, recursionC
|
|
656
661
|
typeVarContext.setTypeVarType(typeVar, typeVar);
|
657
662
|
}
|
658
663
|
});
|
659
|
-
returnType = (0, typeUtils_1.applySolvedTypeVars)(objectType, typeVarContext, {
|
664
|
+
returnType = (0, typeUtils_1.applySolvedTypeVars)(objectType, typeVarContext, {
|
665
|
+
unknownIfNotFound: true,
|
666
|
+
tupleClassType: evaluator.getTupleClassType(),
|
667
|
+
});
|
660
668
|
}
|
661
669
|
}
|
662
|
-
convertedInit.
|
663
|
-
if (convertedInit.specializedTypes) {
|
664
|
-
convertedInit.specializedTypes.returnType = returnType;
|
670
|
+
convertedInit.shared.declaredReturnType = (_a = boundInit.priv.strippedFirstParamType) !== null && _a !== void 0 ? _a : returnType;
|
671
|
+
if (convertedInit.priv.specializedTypes) {
|
672
|
+
convertedInit.priv.specializedTypes.returnType = returnType;
|
665
673
|
}
|
666
|
-
if (!convertedInit.
|
667
|
-
convertedInit.
|
674
|
+
if (!convertedInit.shared.docString && classType.shared.docString) {
|
675
|
+
convertedInit.shared.docString = classType.shared.docString;
|
668
676
|
}
|
669
|
-
convertedInit.
|
670
|
-
convertedInit.
|
677
|
+
convertedInit.shared.flags &= ~4 /* FunctionTypeFlags.StaticMethod */;
|
678
|
+
convertedInit.priv.constructorTypeVarScopeId = (0, typeUtils_1.getTypeVarScopeId)(classType);
|
671
679
|
return convertedInit;
|
672
680
|
}
|
673
681
|
if ((0, types_1.isFunction)(initType)) {
|
@@ -677,7 +685,7 @@ function createFunctionFromInitMethod(evaluator, classType, selfType, recursionC
|
|
677
685
|
return undefined;
|
678
686
|
}
|
679
687
|
const initOverloads = [];
|
680
|
-
initType.overloads.forEach((overload) => {
|
688
|
+
initType.priv.overloads.forEach((overload) => {
|
681
689
|
const converted = convertInitToConstructor(overload);
|
682
690
|
if (converted) {
|
683
691
|
initOverloads.push(converted);
|
@@ -735,15 +743,15 @@ function isDefaultNewMethod(newMethod) {
|
|
735
743
|
if (!newMethod || !(0, types_1.isFunction)(newMethod)) {
|
736
744
|
return false;
|
737
745
|
}
|
738
|
-
const params = newMethod.
|
746
|
+
const params = newMethod.shared.parameters;
|
739
747
|
if (params.length !== 2) {
|
740
748
|
return false;
|
741
749
|
}
|
742
750
|
if (params[0].category !== 1 /* ParameterCategory.ArgsList */ || params[1].category !== 2 /* ParameterCategory.KwargsDict */) {
|
743
751
|
return false;
|
744
752
|
}
|
745
|
-
const returnType = (_a = newMethod.
|
746
|
-
if (!returnType || !(0, types_1.isTypeVar)(returnType) || !returnType.
|
753
|
+
const returnType = (_a = newMethod.shared.declaredReturnType) !== null && _a !== void 0 ? _a : newMethod.priv.inferredReturnType;
|
754
|
+
if (!returnType || !(0, types_1.isTypeVar)(returnType) || !returnType.shared.isSynthesizedSelf) {
|
747
755
|
return false;
|
748
756
|
}
|
749
757
|
return true;
|