@zzzen/pyright-internal 1.2.0-dev.20240728 → 1.2.0-dev.20240804

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/dist/analyzer/binder.js +7 -4
  2. package/dist/analyzer/binder.js.map +1 -1
  3. package/dist/analyzer/checker.d.ts +2 -1
  4. package/dist/analyzer/checker.js +135 -83
  5. package/dist/analyzer/checker.js.map +1 -1
  6. package/dist/analyzer/codeFlowEngine.js +4 -4
  7. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  8. package/dist/analyzer/constraintSolution.d.ts +21 -0
  9. package/dist/analyzer/constraintSolution.js +71 -0
  10. package/dist/analyzer/constraintSolution.js.map +1 -0
  11. package/dist/analyzer/constraintSolver.d.ts +9 -5
  12. package/dist/analyzer/constraintSolver.js +420 -322
  13. package/dist/analyzer/constraintSolver.js.map +1 -1
  14. package/dist/analyzer/constraintTracker.d.ts +44 -0
  15. package/dist/analyzer/constraintTracker.js +230 -0
  16. package/dist/analyzer/constraintTracker.js.map +1 -0
  17. package/dist/analyzer/constructorTransform.js +15 -15
  18. package/dist/analyzer/constructorTransform.js.map +1 -1
  19. package/dist/analyzer/constructors.d.ts +1 -1
  20. package/dist/analyzer/constructors.js +59 -38
  21. package/dist/analyzer/constructors.js.map +1 -1
  22. package/dist/analyzer/dataClasses.js +35 -32
  23. package/dist/analyzer/dataClasses.js.map +1 -1
  24. package/dist/analyzer/decorators.js +1 -1
  25. package/dist/analyzer/decorators.js.map +1 -1
  26. package/dist/analyzer/functionTransform.js +1 -1
  27. package/dist/analyzer/functionTransform.js.map +1 -1
  28. package/dist/analyzer/operations.d.ts +1 -2
  29. package/dist/analyzer/operations.js +95 -72
  30. package/dist/analyzer/operations.js.map +1 -1
  31. package/dist/analyzer/packageTypeVerifier.js +8 -4
  32. package/dist/analyzer/packageTypeVerifier.js.map +1 -1
  33. package/dist/analyzer/parameterUtils.d.ts +3 -3
  34. package/dist/analyzer/parameterUtils.js +19 -21
  35. package/dist/analyzer/parameterUtils.js.map +1 -1
  36. package/dist/analyzer/patternMatching.js +21 -19
  37. package/dist/analyzer/patternMatching.js.map +1 -1
  38. package/dist/analyzer/properties.d.ts +3 -2
  39. package/dist/analyzer/properties.js +11 -11
  40. package/dist/analyzer/properties.js.map +1 -1
  41. package/dist/analyzer/protocols.d.ts +3 -3
  42. package/dist/analyzer/protocols.js +50 -48
  43. package/dist/analyzer/protocols.js.map +1 -1
  44. package/dist/analyzer/tuples.d.ts +2 -2
  45. package/dist/analyzer/tuples.js +10 -9
  46. package/dist/analyzer/tuples.js.map +1 -1
  47. package/dist/analyzer/typeComplexity.js +12 -4
  48. package/dist/analyzer/typeComplexity.js.map +1 -1
  49. package/dist/analyzer/typeEvaluator.js +806 -778
  50. package/dist/analyzer/typeEvaluator.js.map +1 -1
  51. package/dist/analyzer/typeEvaluatorTypes.d.ts +28 -8
  52. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  53. package/dist/analyzer/typeGuards.js +46 -39
  54. package/dist/analyzer/typeGuards.js.map +1 -1
  55. package/dist/analyzer/typePrinter.js +17 -15
  56. package/dist/analyzer/typePrinter.js.map +1 -1
  57. package/dist/analyzer/typeUtils.d.ts +32 -30
  58. package/dist/analyzer/typeUtils.js +331 -563
  59. package/dist/analyzer/typeUtils.js.map +1 -1
  60. package/dist/analyzer/typeWalker.js +1 -1
  61. package/dist/analyzer/typeWalker.js.map +1 -1
  62. package/dist/analyzer/typedDicts.d.ts +2 -2
  63. package/dist/analyzer/typedDicts.js +25 -25
  64. package/dist/analyzer/typedDicts.js.map +1 -1
  65. package/dist/analyzer/types.d.ts +24 -21
  66. package/dist/analyzer/types.js +110 -113
  67. package/dist/analyzer/types.js.map +1 -1
  68. package/dist/languageServerBase.d.ts +2 -2
  69. package/dist/languageServerBase.js +5 -2
  70. package/dist/languageServerBase.js.map +1 -1
  71. package/dist/languageService/completionProvider.js +2 -2
  72. package/dist/languageService/completionProvider.js.map +1 -1
  73. package/dist/tests/checker.test.js +10 -2
  74. package/dist/tests/checker.test.js.map +1 -1
  75. package/dist/tests/typeEvaluator1.test.js +1 -1
  76. package/dist/tests/typeEvaluator2.test.js +12 -0
  77. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  78. package/dist/tests/typeEvaluator3.test.js +4 -0
  79. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  80. package/dist/tests/typeEvaluator4.test.js +1 -1
  81. package/dist/tests/typeEvaluator5.test.js +1 -1
  82. package/dist/tests/typeEvaluator7.test.js +4 -0
  83. package/dist/tests/typeEvaluator7.test.js.map +1 -1
  84. package/dist/tests/typeEvaluator8.test.js +4 -0
  85. package/dist/tests/typeEvaluator8.test.js.map +1 -1
  86. package/package.json +1 -1
  87. package/dist/analyzer/typeVarContext.d.ts +0 -48
  88. package/dist/analyzer/typeVarContext.js +0 -288
  89. package/dist/analyzer/typeVarContext.js.map +0 -1
@@ -17,10 +17,12 @@ exports.createFunctionFromConstructor = exports.validateConstructorArgs = export
17
17
  const collectionUtils_1 = require("../common/collectionUtils");
18
18
  const diagnostic_1 = require("../common/diagnostic");
19
19
  const diagnosticRules_1 = require("../common/diagnosticRules");
20
+ const constraintSolution_1 = require("./constraintSolution");
21
+ const constraintSolver_1 = require("./constraintSolver");
22
+ const constraintTracker_1 = require("./constraintTracker");
20
23
  const constructorTransform_1 = require("./constructorTransform");
21
- const typeUtils_1 = require("./typeUtils");
22
- const typeVarContext_1 = require("./typeVarContext");
23
24
  const types_1 = require("./types");
25
+ const typeUtils_1 = require("./typeUtils");
24
26
  // Fetches and binds the __new__ method from a class.
25
27
  function getBoundNewMethod(evaluator, errorNode, type, diag = undefined, additionalFlags = 4 /* MemberAccessFlags.SkipObjectBaseClass */) {
26
28
  const flags = 32 /* MemberAccessFlags.SkipClassMembers */ |
@@ -53,8 +55,9 @@ function validateConstructorArgs(evaluator, errorNode, argList, type, skipUnknow
53
55
  // using default type argument values.
54
56
  const aliasInfo = (_a = type.props) === null || _a === void 0 ? void 0 : _a.typeAliasInfo;
55
57
  if ((aliasInfo === null || aliasInfo === void 0 ? void 0 : aliasInfo.typeParams) && !aliasInfo.typeArgs) {
56
- const typeAliasTypeVarContext = new typeVarContext_1.TypeVarContext(aliasInfo.typeVarScopeId);
57
- type = (0, typeUtils_1.applySolvedTypeVars)(type, typeAliasTypeVarContext, { unknownIfNotFound: true });
58
+ type = (0, typeUtils_1.applySolvedTypeVars)(type, new constraintSolution_1.ConstraintSolution(), {
59
+ replaceUnsolved: { scopeIds: [aliasInfo.typeVarScopeId], tupleClassType: evaluator.getTupleClassType() },
60
+ });
58
61
  }
59
62
  const metaclassResult = validateMetaclassCall(evaluator, errorNode, argList, type, skipUnknownArgCheck, inferenceContext);
60
63
  if (metaclassResult) {
@@ -151,7 +154,12 @@ function validateNewAndInitMethods(evaluator, errorNode, argList, type, skipUnkn
151
154
  else if ((0, types_1.isAnyOrUnknown)(newMethodReturnType)) {
152
155
  // If the __new__ method returns Any or Unknown, we'll ignore its return
153
156
  // type and assume that it returns Self.
154
- newMethodReturnType = (0, typeUtils_1.applySolvedTypeVars)(types_1.ClassType.cloneAsInstance(type), new typeVarContext_1.TypeVarContext((0, typeUtils_1.getTypeVarScopeId)(type)), { unknownIfNotFound: true, tupleClassType: evaluator.getTupleClassType() });
157
+ newMethodReturnType = (0, typeUtils_1.applySolvedTypeVars)(types_1.ClassType.cloneAsInstance(type), new constraintSolution_1.ConstraintSolution(), {
158
+ replaceUnsolved: {
159
+ scopeIds: (0, typeUtils_1.getTypeVarScopeIds)(type),
160
+ tupleClassType: evaluator.getTupleClassType(),
161
+ },
162
+ });
155
163
  }
156
164
  let initMethodTypeResult;
157
165
  // If there were errors evaluating the __new__ method, assume that __new__
@@ -232,10 +240,9 @@ function validateNewMethod(evaluator, errorNode, argList, type, skipUnknownArgCh
232
240
  let isTypeIncomplete = false;
233
241
  let argumentErrors = false;
234
242
  const overloadsUsedForCall = [];
235
- const typeVarContext = new typeVarContext_1.TypeVarContext((0, typeUtils_1.getTypeVarScopeId)(type));
236
- typeVarContext.addSolveForScope((0, typeUtils_1.getTypeVarScopeId)(newMethodTypeResult.type));
243
+ const constraints = new constraintTracker_1.ConstraintTracker();
237
244
  const callResult = evaluator.useSpeculativeMode(useSpeculativeModeForArgs ? errorNode : undefined, () => {
238
- return evaluator.validateCallArgs(errorNode, argList, newMethodTypeResult, typeVarContext, skipUnknownArgCheck, inferenceContext);
245
+ return evaluator.validateCallArgs(errorNode, argList, newMethodTypeResult, constraints, skipUnknownArgCheck, inferenceContext);
239
246
  });
240
247
  if (callResult.isTypeIncomplete) {
241
248
  isTypeIncomplete = true;
@@ -243,8 +250,8 @@ function validateNewMethod(evaluator, errorNode, argList, type, skipUnknownArgCh
243
250
  if (callResult.argumentErrors) {
244
251
  argumentErrors = true;
245
252
  // Evaluate the arguments in a non-speculative manner to generate any diagnostics.
246
- typeVarContext.unlock();
247
- evaluator.validateCallArgs(errorNode, argList, newMethodTypeResult, typeVarContext, skipUnknownArgCheck, inferenceContext);
253
+ constraints.unlock();
254
+ evaluator.validateCallArgs(errorNode, argList, newMethodTypeResult, constraints, skipUnknownArgCheck, inferenceContext);
248
255
  }
249
256
  else {
250
257
  newReturnType = callResult.returnType;
@@ -265,7 +272,7 @@ function validateNewMethod(evaluator, errorNode, argList, type, skipUnknownArgCh
265
272
  }
266
273
  }
267
274
  else {
268
- newReturnType = applyExpectedTypeForConstructor(evaluator, type, inferenceContext, typeVarContext);
275
+ newReturnType = applyExpectedTypeForConstructor(evaluator, type, inferenceContext, constraints);
269
276
  }
270
277
  return { argumentErrors, returnType: newReturnType, isTypeIncomplete, overloadsUsedForCall };
271
278
  }
@@ -273,12 +280,12 @@ function validateInitMethod(evaluator, errorNode, argList, type, skipUnknownArgC
273
280
  let isTypeIncomplete = false;
274
281
  let argumentErrors = false;
275
282
  const overloadsUsedForCall = [];
276
- const typeVarContext = type.priv.typeArgs
277
- ? (0, typeUtils_1.buildTypeVarContextFromSpecializedClass)(type)
278
- : new typeVarContext_1.TypeVarContext((0, typeUtils_1.getTypeVarScopeId)(type));
279
- typeVarContext.addSolveForScope((0, typeUtils_1.getTypeVarScopeId)(initMethodType));
283
+ const constraints = new constraintTracker_1.ConstraintTracker();
284
+ if (type.priv.typeArgs) {
285
+ (0, constraintSolver_1.addConstraintsForExpectedType)(evaluator, type, type, constraints, /* liveTypeVarScopes */ undefined);
286
+ }
280
287
  const returnTypeOverride = (0, typeUtils_1.selfSpecializeClass)(type);
281
- const callResult = evaluator.validateCallArgs(errorNode, argList, { type: initMethodType }, typeVarContext, skipUnknownArgCheck, inferenceContext ? { ...inferenceContext, returnTypeOverride } : undefined);
288
+ const callResult = evaluator.validateCallArgs(errorNode, argList, { type: initMethodType }, constraints, skipUnknownArgCheck, inferenceContext ? { ...inferenceContext, returnTypeOverride } : undefined);
282
289
  let adjustedClassType = type;
283
290
  if (callResult.specializedInitSelfType &&
284
291
  (0, types_1.isClassInstance)(callResult.specializedInitSelfType) &&
@@ -286,7 +293,7 @@ function validateInitMethod(evaluator, errorNode, argList, type, skipUnknownArgC
286
293
  adjustedClassType = types_1.ClassType.cloneAsInstantiable(callResult.specializedInitSelfType);
287
294
  }
288
295
  const returnType = applyExpectedTypeForConstructor(evaluator, adjustedClassType,
289
- /* inferenceContext */ undefined, typeVarContext);
296
+ /* inferenceContext */ undefined, constraints);
290
297
  if (callResult.isTypeIncomplete) {
291
298
  isTypeIncomplete = true;
292
299
  }
@@ -319,7 +326,7 @@ function validateMetaclassCall(evaluator, errorNode, argList, type, skipUnknownA
319
326
  return undefined;
320
327
  }
321
328
  const callResult = evaluator.validateCallArgs(errorNode, argList, metaclassCallMethodInfo,
322
- /* typeVarContext */ undefined, skipUnknownArgCheck, inferenceContext);
329
+ /* constraints */ undefined, skipUnknownArgCheck, inferenceContext);
323
330
  // If the return type is unannotated, don't use the inferred return type.
324
331
  const callType = metaclassCallMethodInfo.type;
325
332
  if ((0, types_1.isFunction)(callType) && !callType.shared.declaredReturnType) {
@@ -331,10 +338,13 @@ function validateMetaclassCall(evaluator, errorNode, argList, type, skipUnknownA
331
338
  }
332
339
  return callResult;
333
340
  }
334
- function applyExpectedSubtypeForConstructor(evaluator, type, expectedSubtype, typeVarContext) {
335
- const specializedType = (0, typeUtils_1.applySolvedTypeVars)(types_1.ClassType.cloneAsInstance(type), typeVarContext, {
336
- applyInScopePlaceholders: true,
337
- });
341
+ function applyExpectedSubtypeForConstructor(evaluator, type, expectedSubtype, constraints) {
342
+ const specializedType = evaluator.solveAndApplyConstraints(types_1.ClassType.cloneAsInstance(type), constraints, {
343
+ replaceUnsolved: {
344
+ scopeIds: [],
345
+ tupleClassType: evaluator.getTupleClassType(),
346
+ },
347
+ }, { applyUnificationVars: true });
338
348
  if (!evaluator.assignType(expectedSubtype, specializedType)) {
339
349
  return undefined;
340
350
  }
@@ -346,16 +356,21 @@ function applyExpectedSubtypeForConstructor(evaluator, type, expectedSubtype, ty
346
356
  }
347
357
  // Handles the case where a constructor is a generic type and the type
348
358
  // arguments are not specified but can be provided by the expected type.
349
- function applyExpectedTypeForConstructor(evaluator, type, inferenceContext, typeVarContext) {
350
- let unsolvedTypeVarsAreUnknown = true;
359
+ function applyExpectedTypeForConstructor(evaluator, type, inferenceContext, constraints) {
360
+ let defaultIfNotFound = true;
351
361
  // If this isn't a generic type or it's a type that has already been
352
362
  // explicitly specialized, the expected type isn't applicable.
353
363
  if (type.shared.typeParams.length === 0 || type.priv.typeArgs) {
354
- return (0, typeUtils_1.applySolvedTypeVars)(types_1.ClassType.cloneAsInstance(type), typeVarContext, { applyInScopePlaceholders: true });
364
+ return evaluator.solveAndApplyConstraints(types_1.ClassType.cloneAsInstance(type), constraints, {
365
+ replaceUnsolved: {
366
+ scopeIds: [],
367
+ tupleClassType: evaluator.getTupleClassType(),
368
+ },
369
+ }, { applyUnificationVars: true });
355
370
  }
356
371
  if (inferenceContext) {
357
372
  const specializedExpectedType = (0, typeUtils_1.mapSubtypes)(inferenceContext.expectedType, (expectedSubtype) => {
358
- return applyExpectedSubtypeForConstructor(evaluator, type, expectedSubtype, typeVarContext);
373
+ return applyExpectedSubtypeForConstructor(evaluator, type, expectedSubtype, constraints);
359
374
  });
360
375
  if (!(0, types_1.isNever)(specializedExpectedType)) {
361
376
  return specializedExpectedType;
@@ -364,12 +379,16 @@ function applyExpectedTypeForConstructor(evaluator, type, inferenceContext, type
364
379
  // unsolved TypeVars should be considered Unknown unless they were
365
380
  // provided explicitly in the constructor call.
366
381
  if (type.priv.typeArgs) {
367
- unsolvedTypeVarsAreUnknown = false;
382
+ defaultIfNotFound = false;
368
383
  }
369
384
  }
370
- const specializedType = (0, typeUtils_1.applySolvedTypeVars)(type, typeVarContext, {
371
- unknownIfNotFound: unsolvedTypeVarsAreUnknown,
372
- tupleClassType: evaluator.getTupleClassType(),
385
+ const specializedType = evaluator.solveAndApplyConstraints(type, constraints, {
386
+ replaceUnsolved: defaultIfNotFound
387
+ ? {
388
+ scopeIds: (0, typeUtils_1.getTypeVarScopeIds)(type),
389
+ tupleClassType: evaluator.getTupleClassType(),
390
+ }
391
+ : undefined,
373
392
  });
374
393
  return types_1.ClassType.cloneAsInstance(specializedType);
375
394
  }
@@ -468,7 +487,7 @@ function createFunctionFromNewMethod(evaluator, classType, selfType, recursionCo
468
487
  if (index === 0 || !param.name) {
469
488
  return false;
470
489
  }
471
- const paramType = types_1.FunctionType.getEffectiveParamType(newSubtype, index);
490
+ const paramType = types_1.FunctionType.getParamType(newSubtype, index);
472
491
  const typeVars = (0, typeUtils_1.getTypeVarArgsRecursive)(paramType);
473
492
  return typeVars.some((typeVar) => typeVar.priv.scopeId === (0, typeUtils_1.getTypeVarScopeId)(classType));
474
493
  });
@@ -547,20 +566,22 @@ function createFunctionFromInitMethod(evaluator, classType, selfType, recursionC
547
566
  // If this is a generic type, self-specialize the class (i.e. fill in
548
567
  // its own type parameters as type arguments).
549
568
  if (objectType.shared.typeParams.length > 0 && !objectType.priv.typeArgs) {
550
- const typeVarContext = new typeVarContext_1.TypeVarContext((0, typeUtils_1.getTypeVarScopeIds)(objectType));
569
+ const constraints = new constraintTracker_1.ConstraintTracker();
551
570
  // If a TypeVar is not used in any of the parameter types, it should take
552
571
  // on its default value (typically Unknown) in the resulting specialized type.
553
572
  const typeVarsInParams = [];
554
573
  convertedInit.shared.parameters.forEach((param, index) => {
555
- const paramType = types_1.FunctionType.getEffectiveParamType(convertedInit, index);
574
+ const paramType = types_1.FunctionType.getParamType(convertedInit, index);
556
575
  (0, typeUtils_1.addTypeVarsToListIfUnique)(typeVarsInParams, (0, typeUtils_1.getTypeVarArgsRecursive)(paramType));
557
576
  });
558
577
  typeVarsInParams.forEach((typeVar) => {
559
- (0, typeUtils_1.setTypeVarType)(typeVarContext, typeVar, typeVar);
578
+ constraints.setBounds(typeVar, typeVar);
560
579
  });
561
- returnType = (0, typeUtils_1.applySolvedTypeVars)(objectType, typeVarContext, {
562
- unknownIfNotFound: true,
563
- tupleClassType: evaluator.getTupleClassType(),
580
+ returnType = evaluator.solveAndApplyConstraints(objectType, constraints, {
581
+ replaceUnsolved: {
582
+ scopeIds: (0, typeUtils_1.getTypeVarScopeIds)(objectType),
583
+ tupleClassType: evaluator.getTupleClassType(),
584
+ },
564
585
  });
565
586
  }
566
587
  }
@@ -648,7 +669,7 @@ function isDefaultNewMethod(newMethod) {
648
669
  return false;
649
670
  }
650
671
  const returnType = (_a = newMethod.shared.declaredReturnType) !== null && _a !== void 0 ? _a : newMethod.priv.inferredReturnType;
651
- if (!returnType || !(0, types_1.isTypeVar)(returnType) || !returnType.shared.isSynthesizedSelf) {
672
+ if (!returnType || !(0, types_1.isTypeVar)(returnType) || !types_1.TypeVarType.isSelf(returnType)) {
652
673
  return false;
653
674
  }
654
675
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"constructors.js","sourceRoot":"","sources":["../../../../../src/analyzer/constructors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constructors.js","sourceRoot":"","sources":["../../../../../src/analyzer/constructors.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,8 @@ const pythonVersion_1 = require("../common/pythonVersion");
40
40
  const localize_1 = require("../localization/localize");
41
41
  const AnalyzerNodeInfo = __importStar(require("./analyzerNodeInfo"));
42
42
  const analyzerNodeInfo_1 = require("./analyzerNodeInfo");
43
+ const constraintSolution_1 = require("./constraintSolution");
44
+ const constraintTracker_1 = require("./constraintTracker");
43
45
  const constructors_1 = require("./constructors");
44
46
  const namedTuples_1 = require("./namedTuples");
45
47
  const parseTreeUtils_1 = require("./parseTreeUtils");
@@ -48,7 +50,6 @@ const symbol_1 = require("./symbol");
48
50
  const symbolNameUtils_1 = require("./symbolNameUtils");
49
51
  const types_1 = require("./types");
50
52
  const typeUtils_1 = require("./typeUtils");
51
- const typeVarContext_1 = require("./typeVarContext");
52
53
  // Validates fields for compatibility with a dataclass and synthesizes
53
54
  // an appropriate __new__ and __init__ methods plus __dataclass_fields__
54
55
  // and __match_args__ class variables.
@@ -363,9 +364,9 @@ function synthesizeDataClassMethods(evaluator, node, classType, isNamedTuple, sk
363
364
  // transform it to refer to the Self of this subclass.
364
365
  let effectiveType = entry.type;
365
366
  if (entry.classType !== classType && (0, typeUtils_1.requiresSpecialization)(effectiveType)) {
366
- const typeVarContext = new typeVarContext_1.TypeVarContext((0, typeUtils_1.getTypeVarScopeId)(entry.classType));
367
- (0, typeUtils_1.populateTypeVarContextForSelfType)(typeVarContext, entry.classType, classType);
368
- effectiveType = (0, typeUtils_1.applySolvedTypeVars)(effectiveType, typeVarContext);
367
+ const solution = new constraintSolution_1.ConstraintSolution();
368
+ (0, typeUtils_1.addSolutionForSelfType)(solution, entry.classType, classType);
369
+ effectiveType = (0, typeUtils_1.applySolvedTypeVars)(effectiveType, solution);
369
370
  }
370
371
  // Is the field type a descriptor object? If so, we need to extract the corresponding
371
372
  // type of the __init__ method parameter from the __set__ method.
@@ -379,18 +380,15 @@ function synthesizeDataClassMethods(evaluator, node, classType, isNamedTuple, sk
379
380
  if (!entry.alias && entry.nameNode && (0, symbolNameUtils_1.isPrivateName)(entry.nameNode.d.value)) {
380
381
  evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.LocMessage.dataClassFieldWithPrivateName(), entry.nameNode);
381
382
  }
382
- const functionParam = types_1.FunctionParam.create(0 /* ParamCategory.Simple */, effectiveType, types_1.FunctionParamFlags.TypeDeclared, effectiveName, entry.hasDefault ? entry.type : undefined);
383
+ const param = types_1.FunctionParam.create(0 /* ParamCategory.Simple */, effectiveType, types_1.FunctionParamFlags.TypeDeclared, effectiveName, entry.hasDefault ? entry.type : undefined);
383
384
  if (entry.isKeywordOnly) {
384
- keywordOnlyParams.push(functionParam);
385
+ keywordOnlyParams.push(param);
385
386
  }
386
387
  else {
387
- types_1.FunctionType.addParam(constructorType, functionParam);
388
+ types_1.FunctionType.addParam(constructorType, param);
388
389
  }
389
390
  if (replaceType) {
390
- const paramWithDefault = {
391
- ...functionParam,
392
- defaultType: types_1.AnyType.create(/* isEllipsis */ true),
393
- };
391
+ const paramWithDefault = types_1.FunctionParam.create(param.category, param._type, param.flags, param.name, types_1.AnyType.create(/* isEllipsis */ true));
394
392
  types_1.FunctionType.addParam(replaceType, paramWithDefault);
395
393
  }
396
394
  }
@@ -520,19 +518,22 @@ function getDefaultArgValueForFieldSpecifier(evaluator, callNode, callTypeResult
520
518
  }
521
519
  }
522
520
  if (callTarget) {
523
- const initParam = callTarget.shared.parameters.find((p) => p.name === paramName);
524
- if (initParam) {
521
+ const initParamIndex = callTarget.shared.parameters.findIndex((p) => p.name === paramName);
522
+ if (initParamIndex >= 0) {
523
+ const initParam = callTarget.shared.parameters[initParamIndex];
525
524
  // Is the parameter type a literal bool?
525
+ const initParamType = types_1.FunctionType.getParamType(callTarget, initParamIndex);
526
526
  if (types_1.FunctionParam.isTypeDeclared(initParam) &&
527
- (0, types_1.isClass)(initParam.type) &&
528
- typeof initParam.type.priv.literalValue === 'boolean') {
529
- return initParam.type.priv.literalValue;
527
+ (0, types_1.isClass)(initParamType) &&
528
+ typeof initParamType.priv.literalValue === 'boolean') {
529
+ return initParamType.priv.literalValue;
530
530
  }
531
531
  // Is the default argument value a literal bool?
532
- if (initParam.defaultType &&
533
- (0, types_1.isClass)(initParam.defaultType) &&
534
- typeof initParam.defaultType.priv.literalValue === 'boolean') {
535
- return initParam.defaultType.priv.literalValue;
532
+ const initParamDefaultType = types_1.FunctionType.getParamDefaultType(callTarget, initParamIndex);
533
+ if (initParamDefaultType &&
534
+ (0, types_1.isClass)(initParamDefaultType) &&
535
+ typeof initParamDefaultType.priv.literalValue === 'boolean') {
536
+ return initParamDefaultType.priv.literalValue;
536
537
  }
537
538
  }
538
539
  }
@@ -560,16 +561,18 @@ function getConverterInputType(evaluator, converterNode, fieldType, fieldName) {
560
561
  const diagAddendum = new diagnostic_1.DiagnosticAddendum();
561
562
  (0, typeUtils_1.doForEachSignature)(converterType, (signature) => {
562
563
  var _a;
563
- const returnTypeVarContext = new typeVarContext_1.TypeVarContext((0, typeUtils_1.getTypeVarScopeIds)(signature));
564
+ const returnConstraints = new constraintTracker_1.ConstraintTracker();
564
565
  if (evaluator.assignType((_a = types_1.FunctionType.getEffectiveReturnType(signature)) !== null && _a !== void 0 ? _a : types_1.UnknownType.create(), fieldType,
565
- /* diag */ undefined, returnTypeVarContext)) {
566
- signature = (0, typeUtils_1.applySolvedTypeVars)(signature, returnTypeVarContext);
567
- }
568
- const inputTypeVarContext = new typeVarContext_1.TypeVarContext(typeVar.priv.scopeId);
569
- if (evaluator.assignType(targetFunction, signature, diagAddendum, inputTypeVarContext)) {
570
- const overloadSolution = (0, typeUtils_1.applySolvedTypeVars)(typeVar, inputTypeVarContext, {
571
- unknownIfNotFound: true,
572
- tupleClassType: evaluator.getTupleClassType(),
566
+ /* diag */ undefined, returnConstraints)) {
567
+ signature = evaluator.solveAndApplyConstraints(signature, returnConstraints);
568
+ }
569
+ const inputConstraints = new constraintTracker_1.ConstraintTracker();
570
+ if (evaluator.assignType(targetFunction, signature, diagAddendum, inputConstraints)) {
571
+ const overloadSolution = evaluator.solveAndApplyConstraints(typeVar, inputConstraints, {
572
+ replaceUnsolved: {
573
+ scopeIds: (0, typeUtils_1.getTypeVarScopeIds)(typeVar),
574
+ tupleClassType: evaluator.getTupleClassType(),
575
+ },
573
576
  });
574
577
  acceptedTypes.push(overloadSolution);
575
578
  }
@@ -663,7 +666,7 @@ function transformDescriptorType(evaluator, type) {
663
666
  return type;
664
667
  }
665
668
  // The value parameter for a bound __set__ method is parameter index 1.
666
- return types_1.FunctionType.getEffectiveParamType(setMethodType, 1);
669
+ return types_1.FunctionType.getParamType(setMethodType, 1);
667
670
  }
668
671
  // Builds a sorted list of dataclass entries that are inherited by
669
672
  // the specified class. These entries must be unique and in reverse-MRO
@@ -673,7 +676,7 @@ function addInheritedDataClassEntries(classType, entries) {
673
676
  let allAncestorsAreKnown = true;
674
677
  types_1.ClassType.getReverseMro(classType).forEach((mroClass) => {
675
678
  if ((0, types_1.isInstantiableClass)(mroClass)) {
676
- const typeVarContext = (0, typeUtils_1.buildTypeVarContextFromSpecializedClass)(mroClass);
679
+ const solution = (0, typeUtils_1.buildSolutionFromSpecializedClass)(mroClass);
677
680
  const dataClassEntries = types_1.ClassType.getDataClassEntries(mroClass);
678
681
  // Add the entries to the end of the list, replacing same-named
679
682
  // entries if found.
@@ -682,7 +685,7 @@ function addInheritedDataClassEntries(classType, entries) {
682
685
  // If the type from the parent class is generic, we need to convert
683
686
  // to the type parameter namespace of child class.
684
687
  const updatedEntry = { ...entry };
685
- updatedEntry.type = (0, typeUtils_1.applySolvedTypeVars)(updatedEntry.type, typeVarContext);
688
+ updatedEntry.type = (0, typeUtils_1.applySolvedTypeVars)(updatedEntry.type, solution);
686
689
  if (entry.isClassVar) {
687
690
  // If this entry is a class variable, it overrides an existing
688
691
  // instance variable, so delete it.