@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
@@ -13,16 +13,17 @@ exports.isProtocolUnsafeOverlap = exports.isMethodOnlyProtocol = exports.assignM
13
13
  const debug_1 = require("../common/debug");
14
14
  const diagnostic_1 = require("../common/diagnostic");
15
15
  const localize_1 = require("../localization/localize");
16
+ const constraintSolution_1 = require("./constraintSolution");
16
17
  const constraintSolver_1 = require("./constraintSolver");
18
+ const constraintTracker_1 = require("./constraintTracker");
17
19
  const properties_1 = require("./properties");
18
20
  const symbolUtils_1 = require("./symbolUtils");
19
21
  const types_1 = require("./types");
20
22
  const typeUtils_1 = require("./typeUtils");
21
- const typeVarContext_1 = require("./typeVarContext");
22
23
  const protocolAssignmentStack = [];
23
24
  // Maximum number of different types that are cached with a protocol.
24
25
  const maxProtocolCompatibilityCacheEntries = 64;
25
- function assignClassToProtocol(evaluator, destType, srcType, diag, destTypeVarContext, srcTypeVarContext, flags, recursionCount) {
26
+ function assignClassToProtocol(evaluator, destType, srcType, diag, destConstraints, srcConstraints, flags, recursionCount) {
26
27
  // We assume that destType is an instantiable class that is a protocol. The
27
28
  // srcType can be an instantiable class or a class instance.
28
29
  (0, debug_1.assert)((0, types_1.isInstantiableClass)(destType) && types_1.ClassType.isProtocolClass(destType));
@@ -36,13 +37,13 @@ function assignClassToProtocol(evaluator, destType, srcType, diag, destTypeVarCo
36
37
  }
37
38
  // See if we've already determined that this class is compatible with this protocol.
38
39
  if (!enforceInvariance) {
39
- const compatibility = getProtocolCompatibility(destType, srcType, flags, destTypeVarContext);
40
+ const compatibility = getProtocolCompatibility(destType, srcType, flags, destConstraints);
40
41
  if (compatibility !== undefined) {
41
42
  if (compatibility) {
42
43
  // If the caller has provided a destination type var context,
43
44
  // we can't use the cached value unless the dest has no type
44
45
  // parameters to solve.
45
- if (!destTypeVarContext || !(0, typeUtils_1.requiresSpecialization)(destType)) {
46
+ if (!destConstraints || !(0, typeUtils_1.requiresSpecialization)(destType)) {
46
47
  return true;
47
48
  }
48
49
  }
@@ -59,9 +60,9 @@ function assignClassToProtocol(evaluator, destType, srcType, diag, destTypeVarCo
59
60
  }
60
61
  protocolAssignmentStack.push({ srcType, destType });
61
62
  let isCompatible = true;
62
- const clonedTypeVarContext = destTypeVarContext === null || destTypeVarContext === void 0 ? void 0 : destTypeVarContext.clone();
63
+ const clonedConstraints = destConstraints === null || destConstraints === void 0 ? void 0 : destConstraints.clone();
63
64
  try {
64
- isCompatible = assignClassToProtocolInternal(evaluator, destType, srcType, diag, destTypeVarContext, srcTypeVarContext, flags, recursionCount);
65
+ isCompatible = assignClassToProtocolInternal(evaluator, destType, srcType, diag, destConstraints, srcConstraints, flags, recursionCount);
65
66
  }
66
67
  catch (e) {
67
68
  // We'd normally use "finally" here, but the TS debugger does such
@@ -71,13 +72,13 @@ function assignClassToProtocol(evaluator, destType, srcType, diag, destTypeVarCo
71
72
  }
72
73
  protocolAssignmentStack.pop();
73
74
  // Cache the results for next time.
74
- setProtocolCompatibility(destType, srcType, flags, clonedTypeVarContext, isCompatible);
75
+ setProtocolCompatibility(destType, srcType, flags, clonedConstraints, isCompatible);
75
76
  return isCompatible;
76
77
  }
77
78
  exports.assignClassToProtocol = assignClassToProtocol;
78
- function assignModuleToProtocol(evaluator, destType, srcType, diag, destTypeVarContext, flags, recursionCount) {
79
- return assignClassToProtocolInternal(evaluator, destType, srcType, diag, destTypeVarContext,
80
- /* srcTypeVarContext */ undefined, flags, recursionCount);
79
+ function assignModuleToProtocol(evaluator, destType, srcType, diag, destConstraints, flags, recursionCount) {
80
+ return assignClassToProtocolInternal(evaluator, destType, srcType, diag, destConstraints,
81
+ /* srcConstraints */ undefined, flags, recursionCount);
81
82
  }
82
83
  exports.assignModuleToProtocol = assignModuleToProtocol;
83
84
  // Determines whether the specified class is a protocol class that has
@@ -132,7 +133,7 @@ function isProtocolUnsafeOverlap(evaluator, protocol, classType) {
132
133
  exports.isProtocolUnsafeOverlap = isProtocolUnsafeOverlap;
133
134
  // Looks up the protocol compatibility in the cache. If it's not found,
134
135
  // return undefined.
135
- function getProtocolCompatibility(destType, srcType, flags, typeVarContext) {
136
+ function getProtocolCompatibility(destType, srcType, flags, constraints) {
136
137
  const map = srcType.shared.protocolCompatibility;
137
138
  const entries = map === null || map === void 0 ? void 0 : map.get(destType.shared.fullName);
138
139
  if (entries === undefined) {
@@ -142,11 +143,11 @@ function getProtocolCompatibility(destType, srcType, flags, typeVarContext) {
142
143
  return ((0, types_1.isTypeSame)(entry.destType, destType) &&
143
144
  (0, types_1.isTypeSame)(entry.srcType, srcType) &&
144
145
  entry.flags === flags &&
145
- isTypeVarContextSame(typeVarContext, entry.typeVarContext));
146
+ isConstraintTrackerSame(constraints, entry.constraints));
146
147
  });
147
148
  return entry === null || entry === void 0 ? void 0 : entry.isCompatible;
148
149
  }
149
- function setProtocolCompatibility(destType, srcType, flags, typeVarContext, isCompatible) {
150
+ function setProtocolCompatibility(destType, srcType, flags, constraints, isCompatible) {
150
151
  let map = srcType.shared.protocolCompatibility;
151
152
  if (!map) {
152
153
  map = new Map();
@@ -161,44 +162,44 @@ function setProtocolCompatibility(destType, srcType, flags, typeVarContext, isCo
161
162
  destType,
162
163
  srcType,
163
164
  flags,
164
- typeVarContext,
165
+ constraints: constraints,
165
166
  isCompatible,
166
167
  });
167
168
  if (entries.length > maxProtocolCompatibilityCacheEntries) {
168
169
  entries.shift();
169
170
  }
170
171
  }
171
- function isTypeVarContextSame(context1, context2) {
172
+ function isConstraintTrackerSame(context1, context2) {
172
173
  if (!context1 || !context2) {
173
174
  return context1 === context2;
174
175
  }
175
176
  return context1.isSame(context2);
176
177
  }
177
- function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destTypeVarContext, srcTypeVarContext, flags, recursionCount) {
178
+ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destConstraints, srcConstraints, flags, recursionCount) {
178
179
  var _a, _b;
179
180
  if ((flags & 1 /* AssignTypeFlags.EnforceInvariance */) !== 0) {
180
181
  return (0, types_1.isTypeSame)(destType, srcType);
181
182
  }
182
183
  evaluator.inferVarianceForClass(destType);
183
184
  const sourceIsClassObject = (0, types_1.isClass)(srcType) && types_1.TypeBase.isInstantiable(srcType);
184
- const protocolTypeVarContext = createProtocolTypeVarContext(evaluator, destType, destTypeVarContext);
185
- const selfTypeVarContext = new typeVarContext_1.TypeVarContext((0, typeUtils_1.getTypeVarScopeId)(destType));
185
+ const protocolConstraints = createProtocolConstraints(evaluator, destType, destConstraints);
186
+ const selfSolution = new constraintSolution_1.ConstraintSolution();
186
187
  let selfType;
187
188
  if ((0, types_1.isClass)(srcType)) {
188
189
  // If the srcType is conditioned on "self", use "Self" as the selfType.
189
190
  // Otherwise use the class type for selfType.
190
- const synthCond = (_b = (_a = srcType.props) === null || _a === void 0 ? void 0 : _a.condition) === null || _b === void 0 ? void 0 : _b.find((c) => c.typeVar.shared.isSynthesizedSelf);
191
+ const synthCond = (_b = (_a = srcType.props) === null || _a === void 0 ? void 0 : _a.condition) === null || _b === void 0 ? void 0 : _b.find((c) => types_1.TypeVarType.isSelf(c.typeVar));
191
192
  if (synthCond) {
192
193
  selfType = (0, typeUtils_1.synthesizeTypeVarForSelfCls)(types_1.TypeBase.cloneForCondition(srcType, undefined),
193
194
  /* isClsType */ false);
194
- if (types_1.TypeVarType.hasInternalScopeId(synthCond.typeVar)) {
195
- selfType = types_1.TypeVarType.cloneWithInternalScopeId(selfType);
195
+ if (types_1.TypeVarType.isBound(synthCond.typeVar)) {
196
+ selfType = types_1.TypeVarType.cloneAsBound(selfType);
196
197
  }
197
198
  }
198
199
  else {
199
200
  selfType = srcType;
200
201
  }
201
- (0, typeUtils_1.populateTypeVarContextForSelfType)(selfTypeVarContext, destType, selfType);
202
+ (0, typeUtils_1.addSolutionForSelfType)(selfSolution, destType, selfType);
202
203
  }
203
204
  // If the source is a TypedDict, use the _TypedDict placeholder class
204
205
  // instead. We don't want to use the TypedDict members for protocol
@@ -337,7 +338,7 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
337
338
  srcMemberType = evaluator.getEffectiveTypeOfSymbol(srcSymbol);
338
339
  }
339
340
  // Replace any "Self" TypeVar within the dest with the source type.
340
- destMemberType = (0, typeUtils_1.applySolvedTypeVars)(destMemberType, selfTypeVarContext);
341
+ destMemberType = (0, typeUtils_1.applySolvedTypeVars)(destMemberType, selfSolution);
341
342
  // If the dest is a method, bind it.
342
343
  if ((0, types_1.isFunction)(destMemberType) || (0, types_1.isOverloadedFunction)(destMemberType)) {
343
344
  let boundDeclaredType;
@@ -367,7 +368,7 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
367
368
  if ((0, types_1.isClassInstance)(srcMemberType) &&
368
369
  types_1.ClassType.isPropertyClass(srcMemberType) &&
369
370
  !sourceIsClassObject) {
370
- if (!(0, properties_1.assignProperty)(evaluator, types_1.ClassType.cloneAsInstantiable(destMemberType), types_1.ClassType.cloneAsInstantiable(srcMemberType), mroClass, srcType, subDiag === null || subDiag === void 0 ? void 0 : subDiag.createAddendum(), protocolTypeVarContext, selfTypeVarContext, recursionCount)) {
371
+ if (!(0, properties_1.assignProperty)(evaluator, types_1.ClassType.cloneAsInstantiable(destMemberType), types_1.ClassType.cloneAsInstantiable(srcMemberType), mroClass, srcType, subDiag === null || subDiag === void 0 ? void 0 : subDiag.createAddendum(), protocolConstraints, selfSolution, recursionCount)) {
371
372
  if (subDiag) {
372
373
  subDiag.addMessage(localize_1.LocAddendum.memberTypeMismatch().format({ name }));
373
374
  }
@@ -381,8 +382,8 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
381
382
  getterType = (0, typeUtils_1.partiallySpecializeType)(getterType, mroClass, evaluator.getTypeClassType());
382
383
  }
383
384
  if (!getterType ||
384
- !evaluator.assignType(getterType, srcMemberType, subDiag === null || subDiag === void 0 ? void 0 : subDiag.createAddendum(), protocolTypeVarContext,
385
- /* srcTypeVarContext */ undefined, assignTypeFlags, recursionCount)) {
385
+ !evaluator.assignType(getterType, srcMemberType, subDiag === null || subDiag === void 0 ? void 0 : subDiag.createAddendum(), protocolConstraints,
386
+ /* srcConstraints */ undefined, assignTypeFlags, recursionCount)) {
386
387
  if (subDiag) {
387
388
  subDiag.addMessage(localize_1.LocAddendum.memberTypeMismatch().format({ name }));
388
389
  }
@@ -405,10 +406,9 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
405
406
  const primaryDecl = destSymbol.getDeclarations()[0];
406
407
  const isInvariant = (primaryDecl === null || primaryDecl === void 0 ? void 0 : primaryDecl.type) === 1 /* DeclarationType.Variable */ && !primaryDecl.isFinal;
407
408
  // Temporarily add the TypeVar scope ID for this method to handle method-scoped TypeVars.
408
- const protocolTypeVarContextClone = protocolTypeVarContext.clone();
409
- protocolTypeVarContextClone.addSolveForScope((0, typeUtils_1.getTypeVarScopeId)(destMemberType));
410
- if (!evaluator.assignType(destMemberType, srcMemberType, subDiag === null || subDiag === void 0 ? void 0 : subDiag.createAddendum(), protocolTypeVarContextClone,
411
- /* srcTypeVarContext */ undefined, isInvariant ? assignTypeFlags | 1 /* AssignTypeFlags.EnforceInvariance */ : assignTypeFlags, recursionCount)) {
409
+ const protocolConstraintsClone = protocolConstraints.clone();
410
+ if (!evaluator.assignType(destMemberType, srcMemberType, subDiag === null || subDiag === void 0 ? void 0 : subDiag.createAddendum(), protocolConstraintsClone,
411
+ /* srcConstraints */ undefined, isInvariant ? assignTypeFlags | 1 /* AssignTypeFlags.EnforceInvariance */ : assignTypeFlags, recursionCount)) {
412
412
  if (subDiag) {
413
413
  if (isInvariant) {
414
414
  subDiag.addMessage(localize_1.LocAddendum.memberIsInvariant().format({ name }));
@@ -418,7 +418,7 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
418
418
  typesAreConsistent = false;
419
419
  }
420
420
  else {
421
- protocolTypeVarContext.copyFromClone(protocolTypeVarContextClone);
421
+ protocolConstraints.copyFromClone(protocolConstraintsClone);
422
422
  }
423
423
  }
424
424
  const isDestFinal = destSymbol
@@ -496,41 +496,43 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
496
496
  // Create a specialized version of the protocol defined by the dest and
497
497
  // make sure the resulting type args can be assigned.
498
498
  const genericProtocolType = types_1.ClassType.specialize(destType, undefined);
499
- const specializedProtocolType = (0, typeUtils_1.applySolvedTypeVars)(genericProtocolType, protocolTypeVarContext);
499
+ const specializedProtocolType = evaluator.solveAndApplyConstraints(genericProtocolType, protocolConstraints);
500
500
  if (destType.priv.typeArgs) {
501
- if (!evaluator.assignTypeArgs(destType, specializedProtocolType, diag, destTypeVarContext, srcTypeVarContext, flags, recursionCount)) {
501
+ if (!evaluator.assignTypeArgs(destType, specializedProtocolType, diag, destConstraints, srcConstraints, flags, recursionCount)) {
502
502
  typesAreConsistent = false;
503
503
  }
504
504
  }
505
- else if (destTypeVarContext && !destTypeVarContext.isLocked()) {
505
+ else if (destConstraints && !destConstraints.isLocked()) {
506
506
  for (const typeParam of destType.shared.typeParams) {
507
- const typeArgEntry = protocolTypeVarContext.getMainSolutionSet().getTypeVar(typeParam);
507
+ const typeArgEntry = protocolConstraints.getMainConstraintSet().getTypeVar(typeParam);
508
508
  if (typeArgEntry) {
509
- (0, typeUtils_1.setTypeVarType)(destTypeVarContext, typeParam, typeArgEntry === null || typeArgEntry === void 0 ? void 0 : typeArgEntry.lowerBound, typeArgEntry === null || typeArgEntry === void 0 ? void 0 : typeArgEntry.lowerBoundNoLiterals, typeArgEntry === null || typeArgEntry === void 0 ? void 0 : typeArgEntry.upperBound);
509
+ destConstraints.setBounds(typeParam, typeArgEntry === null || typeArgEntry === void 0 ? void 0 : typeArgEntry.lowerBound, typeArgEntry === null || typeArgEntry === void 0 ? void 0 : typeArgEntry.lowerBoundNoLiterals, typeArgEntry === null || typeArgEntry === void 0 ? void 0 : typeArgEntry.upperBound);
510
510
  }
511
511
  }
512
512
  }
513
513
  }
514
514
  return typesAreConsistent;
515
515
  }
516
- // Given a (possibly-specialized) destType and an optional typeVarContext, creates
517
- // a new typeVarContext that combines the constraints from both the destType and
518
- // the destTypeVarContext.
519
- function createProtocolTypeVarContext(evaluator, destType, destTypeVarContext) {
520
- const protocolTypeVarContext = new typeVarContext_1.TypeVarContext((0, typeUtils_1.getTypeVarScopeId)(destType));
516
+ // Given a (possibly-specialized) destType and an optional constraint tracker,
517
+ // creates a new constraint tracker that combines the constraints from both the
518
+ // destType and the destConstraints.
519
+ function createProtocolConstraints(evaluator, destType, constraints) {
520
+ const protocolConstraints = new constraintTracker_1.ConstraintTracker();
521
521
  destType.shared.typeParams.forEach((typeParam, index) => {
522
- const entry = destTypeVarContext === null || destTypeVarContext === void 0 ? void 0 : destTypeVarContext.getMainSolutionSet().getTypeVar(typeParam);
522
+ const entry = constraints === null || constraints === void 0 ? void 0 : constraints.getMainConstraintSet().getTypeVar(typeParam);
523
523
  if (entry) {
524
- (0, typeUtils_1.setTypeVarType)(protocolTypeVarContext, typeParam, entry.lowerBound, entry.lowerBoundNoLiterals, entry.upperBound);
524
+ protocolConstraints.setBounds(typeParam, entry.lowerBound, entry.lowerBoundNoLiterals, entry.upperBound);
525
525
  }
526
526
  else if (destType.priv.typeArgs && index < destType.priv.typeArgs.length) {
527
527
  let typeArg = destType.priv.typeArgs[index];
528
528
  let flags;
529
529
  let hasUnsolvedTypeVars = (0, typeUtils_1.requiresSpecialization)(typeArg);
530
530
  // If the type argument has unsolved TypeVars, see if they have
531
- // solved values in the destTypeVarContext.
532
- if (hasUnsolvedTypeVars && destTypeVarContext) {
533
- typeArg = (0, typeUtils_1.applySolvedTypeVars)(typeArg, destTypeVarContext, { useLowerBoundOnly: true });
531
+ // solved values in the destConstraints.
532
+ if (hasUnsolvedTypeVars && constraints) {
533
+ typeArg = evaluator.solveAndApplyConstraints(typeArg, constraints, /* applyOptions */ undefined, {
534
+ useLowerBoundOnly: true,
535
+ });
534
536
  flags = 0 /* AssignTypeFlags.Default */;
535
537
  hasUnsolvedTypeVars = (0, typeUtils_1.requiresSpecialization)(typeArg);
536
538
  }
@@ -545,10 +547,10 @@ function createProtocolTypeVarContext(evaluator, destType, destTypeVarContext) {
545
547
  }
546
548
  }
547
549
  if (!hasUnsolvedTypeVars) {
548
- (0, constraintSolver_1.assignTypeToTypeVar)(evaluator, typeParam, typeArg, /* diag */ undefined, protocolTypeVarContext, flags);
550
+ (0, constraintSolver_1.assignTypeVar)(evaluator, typeParam, typeArg, /* diag */ undefined, protocolConstraints, flags);
549
551
  }
550
552
  }
551
553
  });
552
- return protocolTypeVarContext;
554
+ return protocolConstraints;
553
555
  }
554
556
  //# sourceMappingURL=protocols.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocols.js","sourceRoot":"","sources":["../../../../../src/analyzer/protocols.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocols.js","sourceRoot":"","sources":["../../../../../src/analyzer/protocols.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { DiagnosticAddendum } from '../common/diagnostic';
2
2
  import { SliceNode } from '../parser/parseNodes';
3
+ import { ConstraintTracker } from './constraintTracker';
3
4
  import { TypeEvaluator } from './typeEvaluatorTypes';
4
5
  import { ClassType, TupleTypeArg, Type } from './types';
5
6
  import { AssignTypeFlags } from './typeUtils';
6
- import { TypeVarContext } from './typeVarContext';
7
- export declare function assignTupleTypeArgs(evaluator: TypeEvaluator, destType: ClassType, srcType: ClassType, diag: DiagnosticAddendum | undefined, destTypeVarContext: TypeVarContext | undefined, srcTypeVarContext: TypeVarContext | undefined, flags: AssignTypeFlags, recursionCount: number): boolean;
7
+ export declare function assignTupleTypeArgs(evaluator: TypeEvaluator, destType: ClassType, srcType: ClassType, diag: DiagnosticAddendum | undefined, destConstraints: ConstraintTracker | undefined, srcConstraints: ConstraintTracker | undefined, flags: AssignTypeFlags, recursionCount: number): boolean;
8
8
  export declare function adjustTupleTypeArgs(evaluator: TypeEvaluator, destTypeArgs: TupleTypeArg[], srcTypeArgs: TupleTypeArg[], flags: AssignTypeFlags): boolean;
9
9
  export declare function getSlicedTupleType(evaluator: TypeEvaluator, tupleType: ClassType, sliceNode: SliceNode): Type | undefined;
@@ -15,7 +15,7 @@ const typeUtils_1 = require("./typeUtils");
15
15
  // Assigns the source type arguments to the dest type arguments. It assumed
16
16
  // the the caller has already verified that both the dest and source are
17
17
  // tuple classes.
18
- function assignTupleTypeArgs(evaluator, destType, srcType, diag, destTypeVarContext, srcTypeVarContext, flags, recursionCount) {
18
+ function assignTupleTypeArgs(evaluator, destType, srcType, diag, destConstraints, srcConstraints, flags, recursionCount) {
19
19
  var _a, _b;
20
20
  const destTypeArgs = [...((_a = destType.priv.tupleTypeArgs) !== null && _a !== void 0 ? _a : [])];
21
21
  const srcTypeArgs = [...((_b = srcType.priv.tupleTypeArgs) !== null && _b !== void 0 ? _b : [])];
@@ -27,12 +27,12 @@ function assignTupleTypeArgs(evaluator, destType, srcType, diag, destTypeVarCont
27
27
  // Handle the special case where the dest is a TypeVarTuple
28
28
  // and the source is a `*tuple[Any, ...]`. This is allowed.
29
29
  if ((0, types_1.isTypeVarTuple)(destArgType) &&
30
- destArgType.priv.isVariadicUnpacked &&
31
- !destArgType.priv.isVariadicInUnion &&
30
+ destArgType.priv.isUnpacked &&
31
+ !destArgType.priv.isInUnion &&
32
32
  (0, typeUtils_1.isTupleGradualForm)(srcArgType)) {
33
33
  return true;
34
34
  }
35
- if (!evaluator.assignType(destArgType, srcArgType, entryDiag === null || entryDiag === void 0 ? void 0 : entryDiag.createAddendum(), destTypeVarContext, srcTypeVarContext, flags, recursionCount)) {
35
+ if (!evaluator.assignType(destArgType, srcArgType, entryDiag === null || entryDiag === void 0 ? void 0 : entryDiag.createAddendum(), destConstraints, srcConstraints, flags, recursionCount)) {
36
36
  if (entryDiag) {
37
37
  entryDiag.addMessage(localize_1.LocAddendum.tupleEntryTypeMismatch().format({
38
38
  entry: argIndex + 1,
@@ -77,8 +77,9 @@ function assignTupleTypeArgs(evaluator, destType, srcType, diag, destTypeVarCont
77
77
  exports.assignTupleTypeArgs = assignTupleTypeArgs;
78
78
  // Adjusts the source and/or dest type arguments list to attempt to match
79
79
  // the length of the src type arguments list if the dest or source contain
80
- // entries with indeterminate length or variadic entries. It returns true
81
- // if the source is potentially compatible with the dest type, false otherwise.
80
+ // entries with indeterminate length or unpacked TypeVarTuple entries.
81
+ // It returns true if the source is potentially compatible with the dest
82
+ // type, false otherwise.
82
83
  function adjustTupleTypeArgs(evaluator, destTypeArgs, srcTypeArgs, flags) {
83
84
  const destUnboundedOrVariadicIndex = destTypeArgs.findIndex((t) => t.isUnbounded || (0, types_1.isTypeVarTuple)(t.type));
84
85
  const srcUnboundedIndex = srcTypeArgs.findIndex((t) => t.isUnbounded);
@@ -116,8 +117,8 @@ function adjustTupleTypeArgs(evaluator, destTypeArgs, srcTypeArgs, flags) {
116
117
  }
117
118
  const srcArgsToCapture = srcTypeArgs.length - destTypeArgs.length + 1;
118
119
  let skipAdjustSrc = false;
119
- // If we're doing reverse type mappings and the source contains a variadic
120
- // TypeVar, we need to adjust the dest so the reverse type mapping assignment
120
+ // If we're doing reverse type mappings and the source contains a TypeVarTuple,
121
+ // we need to adjust the dest so the reverse type mapping assignment
121
122
  // can be performed.
122
123
  if ((flags & 2 /* AssignTypeFlags.ReverseTypeVarMatching */) !== 0) {
123
124
  const destArgsToCapture = destTypeArgs.length - srcTypeArgs.length + 1;
@@ -189,7 +190,7 @@ function adjustTupleTypeArgs(evaluator, destTypeArgs, srcTypeArgs, flags) {
189
190
  (srcUnboundedIndex >= destUnboundedOrVariadicIndex &&
190
191
  srcUnboundedIndex < destUnboundedOrVariadicIndex + srcArgsToCapture)) {
191
192
  const removedArgTypes = srcTypeArgs.splice(destUnboundedOrVariadicIndex, srcArgsToCapture).map((t) => {
192
- if ((0, types_1.isTypeVar)(t.type) && (0, types_1.isUnpackedTypeVarTuple)(t.type) && !t.type.priv.isVariadicInUnion) {
193
+ if ((0, types_1.isTypeVar)(t.type) && (0, types_1.isUnpackedTypeVarTuple)(t.type) && !t.type.priv.isInUnion) {
193
194
  return types_1.TypeVarType.cloneForUnpacked(t.type, /* isInUnion */ true);
194
195
  }
195
196
  return t.type;
@@ -1 +1 @@
1
- {"version":3,"file":"tuples.js","sourceRoot":"","sources":["../../../../../src/analyzer/tuples.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tuples.js","sourceRoot":"","sources":["../../../../../src/analyzer/tuples.ts"],"names":[],"mappings":"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"}
@@ -23,15 +23,18 @@ function getComplexityScoreForType(type, recursionCount = 0) {
23
23
  recursionCount++;
24
24
  switch (type.category) {
25
25
  case 1 /* TypeCategory.Unknown */:
26
- case 2 /* TypeCategory.Any */:
27
- case 9 /* TypeCategory.TypeVar */: {
26
+ case 2 /* TypeCategory.Any */: {
28
27
  return 0.5;
29
28
  }
29
+ case 9 /* TypeCategory.TypeVar */: {
30
+ // Assume type[T] is more complex than T.
31
+ return types_1.TypeBase.isInstantiable(type) ? 0.55 : 0.5;
32
+ }
30
33
  case 4 /* TypeCategory.Function */:
31
34
  case 5 /* TypeCategory.OverloadedFunction */: {
32
35
  // Classes and unions should be preferred over functions,
33
36
  // so make this relatively high (more than 0.75).
34
- return 0.8;
37
+ return types_1.TypeBase.isInstantiable(type) ? 0.85 : 0.8;
35
38
  }
36
39
  case 0 /* TypeCategory.Unbound */:
37
40
  case 3 /* TypeCategory.Never */:
@@ -81,6 +84,11 @@ function getComplexityScoreForClass(classType, recursionCount) {
81
84
  });
82
85
  }
83
86
  const averageTypeArgComplexity = typeArgCount > 0 ? typeArgScoreSum / typeArgCount : 0;
84
- return 0.5 + averageTypeArgComplexity * 0.25;
87
+ let result = 0.5 + averageTypeArgComplexity * 0.25;
88
+ // Assume type[T] is more complex than T.
89
+ if ((0, types_1.isInstantiableClass)(classType)) {
90
+ result += 0.05;
91
+ }
92
+ return result;
85
93
  }
86
94
  //# sourceMappingURL=typeComplexity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"typeComplexity.js","sourceRoot":"","sources":["../../../../../src/analyzer/typeComplexity.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAEH,mCAAwF;AAExF,qEAAqE;AACrE,kEAAkE;AAClE,mEAAmE;AACnE,uCAAuC;AACvC,SAAgB,yBAAyB,CAAC,IAAU,EAAE,cAAc,GAAG,CAAC;IACpE,IAAI,cAAc,GAAG,6BAAqB,EAAE;QACxC,OAAO,CAAC,CAAC;KACZ;IACD,cAAc,EAAE,CAAC;IAEjB,QAAQ,IAAI,CAAC,QAAQ,EAAE;QACnB,kCAA0B;QAC1B,8BAAsB;QACtB,iCAAyB,CAAC,CAAC;YACvB,OAAO,GAAG,CAAC;SACd;QAED,mCAA2B;QAC3B,4CAAoC,CAAC,CAAC;YAClC,yDAAyD;YACzD,iDAAiD;YACjD,OAAO,GAAG,CAAC;SACd;QAED,kCAA0B;QAC1B;YACI,OAAO,GAAG,CAAC;QAEf,+BAAuB,CAAC,CAAC;YACrB,IAAI,QAAQ,GAAG,CAAC,CAAC;YAEjB,kEAAkE;YAClE,wDAAwD;YACxD,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,EAAE;gBAChC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBACnC,MAAM,YAAY,GAAG,yBAAyB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;oBACxE,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;gBAChD,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,QAAQ,GAAG,GAAG,CAAC;aAClB;YAED,OAAO,QAAQ,CAAC;SACnB;QAED,+BAAuB,CAAC,CAAC;YACrB,OAAO,0BAA0B,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;SAC3D;KACJ;IAED,4CAA4C;IAC5C,OAAO,CAAC,CAAC;AACb,CAAC;AAhDD,8DAgDC;AAED,SAAS,0BAA0B,CAAC,SAAoB,EAAE,cAAsB;IAC5E,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,IAAI,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE;QAC9B,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7C,eAAe,IAAI,yBAAyB,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;YAC3E,YAAY,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;KACN;SAAM,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE;QAChC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrC,eAAe,IAAI,yBAAyB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;YACnE,YAAY,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;KACN;SAAM,IAAI,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE;QACpC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACzC,eAAe,IAAI,yBAAyB,CAAC,eAAO,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC;YAC/E,YAAY,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;KACN;IAED,MAAM,wBAAwB,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IACvF,OAAO,GAAG,GAAG,wBAAwB,GAAG,IAAI,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"typeComplexity.js","sourceRoot":"","sources":["../../../../../src/analyzer/typeComplexity.ts"],"names":[],"mappings":"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"}