@zzzen/pyright-internal 1.2.0-dev.20221211 → 1.2.0-dev.20221225

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 (68) hide show
  1. package/dist/analyzer/binder.js +3 -0
  2. package/dist/analyzer/binder.js.map +1 -1
  3. package/dist/analyzer/checker.js +47 -31
  4. package/dist/analyzer/checker.js.map +1 -1
  5. package/dist/analyzer/codeFlowEngine.js +24 -11
  6. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  7. package/dist/analyzer/constraintSolver.js +108 -22
  8. package/dist/analyzer/constraintSolver.js.map +1 -1
  9. package/dist/analyzer/declarationUtils.d.ts +2 -1
  10. package/dist/analyzer/declarationUtils.js +7 -4
  11. package/dist/analyzer/declarationUtils.js.map +1 -1
  12. package/dist/analyzer/program.js +1 -1
  13. package/dist/analyzer/program.js.map +1 -1
  14. package/dist/analyzer/properties.js +9 -0
  15. package/dist/analyzer/properties.js.map +1 -1
  16. package/dist/analyzer/protocols.js +1 -1
  17. package/dist/analyzer/protocols.js.map +1 -1
  18. package/dist/analyzer/sourceFile.js +5 -2
  19. package/dist/analyzer/sourceFile.js.map +1 -1
  20. package/dist/analyzer/testWalker.js +5 -0
  21. package/dist/analyzer/testWalker.js.map +1 -1
  22. package/dist/analyzer/typeCache.d.ts +1 -1
  23. package/dist/analyzer/typeEvaluator.js +132 -85
  24. package/dist/analyzer/typeEvaluator.js.map +1 -1
  25. package/dist/analyzer/typeEvaluatorTypes.d.ts +1 -0
  26. package/dist/analyzer/typeUtils.d.ts +2 -3
  27. package/dist/analyzer/typeUtils.js +8 -10
  28. package/dist/analyzer/typeUtils.js.map +1 -1
  29. package/dist/analyzer/typeVarContext.d.ts +9 -8
  30. package/dist/analyzer/typeVarContext.js +63 -25
  31. package/dist/analyzer/typeVarContext.js.map +1 -1
  32. package/dist/analyzer/types.d.ts +2 -0
  33. package/dist/analyzer/types.js +10 -0
  34. package/dist/analyzer/types.js.map +1 -1
  35. package/dist/common/pathUtils.js +1 -1
  36. package/dist/common/pathUtils.js.map +1 -1
  37. package/dist/languageService/completionProvider.js +9 -1
  38. package/dist/languageService/completionProvider.js.map +1 -1
  39. package/dist/localization/localize.d.ts +7 -1
  40. package/dist/localization/localize.js +4 -1
  41. package/dist/localization/localize.js.map +1 -1
  42. package/dist/localization/package.nls.en-us.json +5 -2
  43. package/dist/parser/parseNodes.d.ts +1 -0
  44. package/dist/parser/parseNodes.js.map +1 -1
  45. package/dist/parser/parser.js +49 -21
  46. package/dist/parser/parser.js.map +1 -1
  47. package/dist/parser/tokenizer.js +20 -9
  48. package/dist/parser/tokenizer.js.map +1 -1
  49. package/dist/pyright.js +52 -12
  50. package/dist/pyright.js.map +1 -1
  51. package/dist/tests/checker.test.js +1 -1
  52. package/dist/tests/indentationUtils.ptvs.test.js +7 -3
  53. package/dist/tests/indentationUtils.ptvs.test.js.map +1 -1
  54. package/dist/tests/indentationUtils.test.js +4 -4
  55. package/dist/tests/parser.test.js +3 -3
  56. package/dist/tests/pathUtils.test.js +20 -5
  57. package/dist/tests/pathUtils.test.js.map +1 -1
  58. package/dist/tests/tokenizer.test.js +2 -2
  59. package/dist/tests/typeEvaluator1.test.js +4 -0
  60. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  61. package/dist/tests/typeEvaluator2.test.js +9 -1
  62. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  63. package/dist/tests/typeEvaluator3.test.js +30 -4
  64. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  65. package/dist/tests/typeEvaluator4.test.js +4 -0
  66. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  67. package/dist/tests/typeEvaluator5.test.js +1 -1
  68. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"sourceFile.js","sourceRoot":"","sources":["../../../src/analyzer/sourceFile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sourceFile.js","sourceRoot":"","sources":["../../../src/analyzer/sourceFile.ts"],"names":[],"mappings":"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"}
@@ -44,6 +44,11 @@ class TestWalker extends parseTreeWalker_1.ParseTreeWalker {
44
44
  if (child === node.typeAnnotationComment) {
45
45
  skipCheck = true;
46
46
  }
47
+ // Portions of chained assignments can occur outside of an
48
+ // assignment node's range.
49
+ if (child.nodeType === 3 /* Assignment */) {
50
+ skipCheck = true;
51
+ }
47
52
  }
48
53
  if (node.nodeType === 48 /* StringList */) {
49
54
  if (child === node.typeAnnotation) {
@@ -1 +1 @@
1
- {"version":3,"file":"testWalker.js","sourceRoot":"","sources":["../../../src/analyzer/testWalker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testWalker.js","sourceRoot":"","sources":["../../../src/analyzer/testWalker.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { Type } from './types';
3
3
  export declare type TypeCache = Map<number, CachedType | undefined>;
4
4
  export declare type CachedType = Type | IncompleteType;
5
5
  export interface IncompleteSubtypeInfo {
6
- type: Type | undefined;
6
+ type: Type;
7
7
  isIncomplete: boolean;
8
8
  isPending: boolean;
9
9
  evaluationCount: number;
@@ -918,24 +918,20 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
918
918
  return typeResult;
919
919
  }
920
920
  function stripLiteralValue(type) {
921
- if ((0, types_1.isClass)(type)) {
922
- if (type.literalValue !== undefined) {
923
- type = types_1.ClassType.cloneWithLiteral(type, /* value */ undefined);
924
- }
925
- else if (types_1.ClassType.isBuiltIn(type, 'LiteralString')) {
926
- // Handle "LiteralString" specially.
927
- if (strClassType && (0, types_1.isInstantiableClass)(strClassType)) {
928
- type = types_1.ClassType.cloneAsInstance(strClassType);
921
+ return (0, typeUtils_1.mapSubtypes)(type, (subtype) => {
922
+ if ((0, types_1.isClass)(subtype)) {
923
+ if (subtype.literalValue !== undefined) {
924
+ return types_1.ClassType.cloneWithLiteral(subtype, /* value */ undefined);
925
+ }
926
+ if (types_1.ClassType.isBuiltIn(subtype, 'LiteralString')) {
927
+ // Handle "LiteralString" specially.
928
+ if (strClassType && (0, types_1.isInstantiableClass)(strClassType)) {
929
+ return types_1.ClassType.cloneAsInstance(strClassType);
930
+ }
929
931
  }
930
932
  }
931
- return type;
932
- }
933
- if ((0, types_1.isUnion)(type)) {
934
- return (0, typeUtils_1.mapSubtypes)(type, (subtype) => {
935
- return stripLiteralValue(subtype);
936
- });
937
- }
938
- return type;
933
+ return subtype;
934
+ });
939
935
  }
940
936
  function getTypeOfParameterAnnotation(paramTypeNode, paramCategory) {
941
937
  return getTypeOfAnnotation(paramTypeNode, {
@@ -4518,14 +4514,14 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
4518
4514
  }
4519
4515
  return typeResult.type;
4520
4516
  }
4521
- if ((0, types_1.isNever)(concreteSubtype)) {
4522
- return types_1.UnknownType.create();
4517
+ if ((0, types_1.isNever)(concreteSubtype) || (0, types_1.isUnbound)(concreteSubtype)) {
4518
+ return types_1.NeverType.createNever();
4523
4519
  }
4524
4520
  if ((0, types_1.isNoneInstance)(concreteSubtype) && !isIncomplete) {
4525
4521
  addDiagnostic(AnalyzerNodeInfo.getFileInfo(node).diagnosticRuleSet.reportOptionalSubscript, diagnosticRules_1.DiagnosticRule.reportOptionalSubscript, localize_1.Localizer.Diagnostic.noneNotSubscriptable(), node.baseExpression);
4526
4522
  return types_1.UnknownType.create();
4527
4523
  }
4528
- if (!(0, types_1.isUnbound)(concreteSubtype) && !isIncomplete) {
4524
+ if (!isIncomplete) {
4529
4525
  const fileInfo = AnalyzerNodeInfo.getFileInfo(node);
4530
4526
  addDiagnostic(fileInfo.diagnosticRuleSet.reportGeneralTypeIssues, diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.Localizer.Diagnostic.typeNotSubscriptable().format({ type: printType(concreteSubtype) }), node.baseExpression);
4531
4527
  }
@@ -5382,6 +5378,8 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
5382
5378
  let matchedOverload;
5383
5379
  const argTypeOverride = expandedArgTypes[expandedTypesIndex];
5384
5380
  const hasArgTypeOverride = argTypeOverride.some((a) => a !== undefined);
5381
+ const possibleMatchResults = [];
5382
+ let isDefinitiveMatchFound = false;
5385
5383
  for (let overloadIndex = 0; overloadIndex < argParamMatches.length; overloadIndex++) {
5386
5384
  const overload = argParamMatches[overloadIndex].overload;
5387
5385
  let matchResults = argParamMatches[overloadIndex];
@@ -5421,10 +5419,44 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
5421
5419
  matchResults,
5422
5420
  typeVarContext: effectiveTypeVarContext,
5423
5421
  });
5424
- returnTypes.push(callResult.returnType);
5425
- break;
5422
+ if (callResult.isArgumentAnyOrUnknown) {
5423
+ possibleMatchResults.push(callResult.returnType);
5424
+ }
5425
+ else {
5426
+ returnTypes.push(callResult.returnType);
5427
+ isDefinitiveMatchFound = true;
5428
+ break;
5429
+ }
5426
5430
  }
5427
5431
  }
5432
+ // If we didn't find a definitive match that doesn't depend on
5433
+ // an Any or Unknown argument, fall back on the possible match.
5434
+ // If there were multiple possible matches, evaluate the type as
5435
+ // Unknown, but include the "possible types" to allow for completion
5436
+ // suggestions.
5437
+ if (!isDefinitiveMatchFound) {
5438
+ // Eliminate any return types that are subsumed by other return types.
5439
+ let dedupedMatchResults = [];
5440
+ possibleMatchResults.forEach((subtype) => {
5441
+ let isSubtypeSubsumed = false;
5442
+ for (let dedupedIndex = 0; dedupedIndex < dedupedMatchResults.length; dedupedIndex++) {
5443
+ if (assignType(dedupedMatchResults[dedupedIndex], subtype)) {
5444
+ isSubtypeSubsumed = true;
5445
+ break;
5446
+ }
5447
+ else if (assignType(subtype, dedupedMatchResults[dedupedIndex])) {
5448
+ dedupedMatchResults[dedupedIndex] = types_1.NeverType.createNever();
5449
+ break;
5450
+ }
5451
+ }
5452
+ if (!isSubtypeSubsumed) {
5453
+ dedupedMatchResults.push(subtype);
5454
+ }
5455
+ });
5456
+ dedupedMatchResults = dedupedMatchResults.filter((t) => !(0, types_1.isNever)(t));
5457
+ const combinedTypes = (0, types_1.combineTypes)(dedupedMatchResults);
5458
+ returnTypes.push(dedupedMatchResults.length > 1 ? types_1.UnknownType.createPossibleType(combinedTypes) : combinedTypes);
5459
+ }
5428
5460
  if (!matchedOverload) {
5429
5461
  return { argumentErrors: true, isTypeIncomplete };
5430
5462
  }
@@ -5447,6 +5479,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
5447
5479
  }
5448
5480
  return {
5449
5481
  argumentErrors: false,
5482
+ isArgumentAnyOrUnknown: finalCallResult.isArgumentAnyOrUnknown,
5450
5483
  returnType: (0, types_1.combineTypes)(returnTypes),
5451
5484
  isTypeIncomplete,
5452
5485
  specializedInitSelfType: finalCallResult.specializedInitSelfType,
@@ -7081,7 +7114,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
7081
7114
  }
7082
7115
  const effectiveReturnType = getFunctionEffectiveReturnType(type);
7083
7116
  let effectiveExpectedType = expectedType;
7084
- let effectiveFlags = 4 /* AllowTypeVarNarrowing */;
7117
+ let effectiveFlags = 0 /* Default */;
7085
7118
  if ((0, typeUtils_1.containsLiteralType)(effectiveExpectedType, /* includeTypeArgs */ true)) {
7086
7119
  effectiveFlags |= 128 /* RetainLiteralsForTypeVar */;
7087
7120
  }
@@ -7104,9 +7137,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
7104
7137
  if (effectiveExpectedType) {
7105
7138
  // Prepopulate the typeVarContext based on the specialized expected type if the
7106
7139
  // callee has a declared return type. This will allow us to more closely match
7107
- // the expected type if possible. We set the AllowTypeVarNarrowing and
7108
- // SkipStripLiteralForTypeVar flags so the type can be further narrowed
7109
- // and so literals are not stripped.
7140
+ // the expected type if possible.
7110
7141
  // If the return type is not the same as the expected type but is
7111
7142
  // assignable to the expected type, determine which type arguments
7112
7143
  // are needed to match the expected type.
@@ -7131,6 +7162,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
7131
7162
  let isTypeIncomplete = matchResults.isTypeIncomplete;
7132
7163
  let argumentErrors = false;
7133
7164
  let specializedInitSelfType;
7165
+ let isArgumentAnyOrUnknown = false;
7134
7166
  const typeCondition = (0, typeUtils_1.getTypeCondition)(type);
7135
7167
  if (type.boundTypeVarScopeId) {
7136
7168
  // If the function was bound to a class or object and was a constructor, a
@@ -7234,6 +7266,9 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
7234
7266
  if (argResult.condition) {
7235
7267
  condition = (_a = types_1.TypeCondition.combine(condition, argResult.condition)) !== null && _a !== void 0 ? _a : [];
7236
7268
  }
7269
+ if ((0, types_1.isAnyOrUnknown)(argResult.argType)) {
7270
+ isArgumentAnyOrUnknown = true;
7271
+ }
7237
7272
  if (type.details.paramSpec) {
7238
7273
  if (argParam.argument.argumentCategory === 1 /* UnpackedList */) {
7239
7274
  if ((0, types_1.isParamSpec)(argResult.argType) && argResult.argType.paramSpecAccess === 'args') {
@@ -7329,6 +7364,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
7329
7364
  }
7330
7365
  return {
7331
7366
  argumentErrors,
7367
+ isArgumentAnyOrUnknown,
7332
7368
  returnType: specializedReturnType,
7333
7369
  isTypeIncomplete,
7334
7370
  activeParam: matchResults.activeParam,
@@ -7371,16 +7407,14 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
7371
7407
  }
7372
7408
  // Determines whether the specified argument list satisfies the function
7373
7409
  // signature bound to the specified ParamSpec. Return value indicates success.
7374
- function validateFunctionArgumentsForParamSpec(errorNode, argList, paramSpec, typeVarContext, conditionFilter) {
7410
+ function validateFunctionArgumentsForParamSpec(errorNode, argList, paramSpec, destTypeVarContext, conditionFilter) {
7375
7411
  var _a;
7376
- const paramSpecValue = typeVarContext.getParamSpec(paramSpec);
7412
+ const paramSpecValue = destTypeVarContext.getParamSpec(paramSpec);
7413
+ const srcTypeVarContext = new typeVarContext_1.TypeVarContext(paramSpecValue === null || paramSpecValue === void 0 ? void 0 : paramSpecValue.typeVarScopeId);
7377
7414
  if (!paramSpecValue) {
7378
7415
  addDiagnostic(AnalyzerNodeInfo.getFileInfo(errorNode).diagnosticRuleSet.reportGeneralTypeIssues, diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.Localizer.Diagnostic.paramSpecNotBound().format({ type: printType(paramSpec) }), ((_a = argList[0]) === null || _a === void 0 ? void 0 : _a.valueExpression) || errorNode);
7379
7416
  return false;
7380
7417
  }
7381
- // If the ParamSpec was bound to a generic function, some TypeVars may
7382
- // not yet be solved. Add the TypeVar scope for the bound function.
7383
- typeVarContext.addSolveForScope(paramSpecValue.typeVarScopeId);
7384
7418
  let reportedArgError = false;
7385
7419
  // Build a map of all named parameters.
7386
7420
  const paramMap = new Map();
@@ -7443,7 +7477,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
7443
7477
  requiresTypeVarMatching: false,
7444
7478
  argument: arg,
7445
7479
  errorNode: arg.valueExpression || errorNode,
7446
- }, typeVarContext,
7480
+ }, srcTypeVarContext,
7447
7481
  /* functionType */ undefined,
7448
7482
  /* skipUnknownArgCheck */ false,
7449
7483
  /* skipOverloadArg */ false,
@@ -7473,6 +7507,9 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
7473
7507
  reportedArgError = true;
7474
7508
  }
7475
7509
  }
7510
+ if (!reportedArgError) {
7511
+ destTypeVarContext.applySourceContextTypeVars(srcTypeVarContext);
7512
+ }
7476
7513
  return !reportedArgError;
7477
7514
  }
7478
7515
  function validateArgType(argParam, typeVarContext, functionType, skipUnknownCheck, skipOverloadArg, useNarrowBoundOnly, conditionFilter) {
@@ -8269,6 +8306,35 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
8269
8306
  if ((0, types_1.isUnion)(newUnion)) {
8270
8307
  types_1.TypeBase.setSpecialForm(newUnion);
8271
8308
  }
8309
+ // Check for "stringified" forward reference type expressions. The "|" operator
8310
+ // doesn't support these except in certain circumstances. Notably, it can't be used
8311
+ // with other strings or with types that are not specialized using an index form.
8312
+ if (!fileInfo.isStubFile) {
8313
+ let stringNode;
8314
+ let otherNode;
8315
+ let otherType;
8316
+ if (leftExpression.nodeType === 48 /* StringList */) {
8317
+ stringNode = leftExpression;
8318
+ otherNode = rightExpression;
8319
+ otherType = rightType;
8320
+ }
8321
+ else if (rightExpression.nodeType === 48 /* StringList */) {
8322
+ stringNode = rightExpression;
8323
+ otherNode = leftExpression;
8324
+ otherType = leftType;
8325
+ }
8326
+ if (stringNode && otherNode && otherType) {
8327
+ let isAllowed = true;
8328
+ if ((0, types_1.isClass)(otherType)) {
8329
+ if (!otherType.isTypeArgumentExplicit || (0, types_1.isClassInstance)(otherType)) {
8330
+ isAllowed = false;
8331
+ }
8332
+ }
8333
+ if (!isAllowed) {
8334
+ addDiagnostic(fileInfo.diagnosticRuleSet.reportGeneralTypeIssues, diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.Localizer.Diagnostic.unionForwardReferenceNotAllowed(), stringNode);
8335
+ }
8336
+ }
8337
+ }
8272
8338
  return { type: newUnion };
8273
8339
  }
8274
8340
  }
@@ -9225,7 +9291,8 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
9225
9291
  // type explicitly includes literals.
9226
9292
  let typeVarContext = new typeVarContext_1.TypeVarContext(targetTypeVar.scopeId);
9227
9293
  if (useSynthesizedTypeVar) {
9228
- typeVarContext.setTypeVarType(targetTypeVar, isNarrowable ? undefined : expectedType, expectedType);
9294
+ typeVarContext.setTypeVarType(targetTypeVar, isNarrowable ? undefined : expectedType,
9295
+ /* narrowBoundNoLiterals */ undefined, expectedType);
9229
9296
  }
9230
9297
  if (entryTypes.every((entryType) => assignType(targetTypeVar, stripLiteralValue(entryType), /* diag */ undefined, typeVarContext))) {
9231
9298
  return (0, typeUtils_1.applySolvedTypeVars)(targetTypeVar, typeVarContext);
@@ -9233,8 +9300,8 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
9233
9300
  // Allocate a fresh typeVarContext before we try again with literals not stripped.
9234
9301
  typeVarContext = new typeVarContext_1.TypeVarContext(targetTypeVar.scopeId);
9235
9302
  if (useSynthesizedTypeVar) {
9236
- typeVarContext.setTypeVarType(targetTypeVar, isNarrowable ? undefined : expectedType, expectedType,
9237
- /* retainLiteral */ true);
9303
+ typeVarContext.setTypeVarType(targetTypeVar, isNarrowable ? undefined : expectedType,
9304
+ /* narrowBoundNoLiterals */ undefined, expectedType);
9238
9305
  }
9239
9306
  if (entryTypes.every((entryType) => assignType(targetTypeVar, entryType, /* diag */ undefined, typeVarContext))) {
9240
9307
  return (0, typeUtils_1.applySolvedTypeVars)(targetTypeVar, typeVarContext);
@@ -10539,6 +10606,9 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
10539
10606
  let isSpeculativeTypeAlias = false;
10540
10607
  if (isDeclaredTypeAlias(node.leftExpression)) {
10541
10608
  typeAliasNameNode = node.leftExpression.valueExpression;
10609
+ if (!(0, declarationUtils_1.isLegalTypeAliasExpressionForm)(node.rightExpression)) {
10610
+ addDiagnostic(fileInfo.diagnosticRuleSet.reportGeneralTypeIssues, diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.Localizer.Diagnostic.typeAliasIllegalExpressionForm(), node.rightExpression);
10611
+ }
10542
10612
  }
10543
10613
  else if (node.leftExpression.nodeType === 38 /* Name */) {
10544
10614
  const symbolWithScope = lookUpSymbolRecursive(node.leftExpression, node.leftExpression.value,
@@ -10697,6 +10767,9 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
10697
10767
  typeParameters = evaluateTypeParameterList(node.typeParameters);
10698
10768
  typeAliasTypeVar.details.recursiveTypeParameters = typeParameters;
10699
10769
  }
10770
+ if (!(0, declarationUtils_1.isLegalTypeAliasExpressionForm)(node.expression)) {
10771
+ addDiagnostic(AnalyzerNodeInfo.getFileInfo(node).diagnosticRuleSet.reportGeneralTypeIssues, diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.Localizer.Diagnostic.typeAliasIllegalExpressionForm(), node.expression);
10772
+ }
10700
10773
  const aliasTypeResult = getTypeOfExpressionExpectingType(node.expression);
10701
10774
  let isIncomplete = false;
10702
10775
  let aliasType = aliasTypeResult.type;
@@ -15167,7 +15240,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
15167
15240
  const removedArgs = srcTypeArgs.splice(destVariadicIndex, srcArgsToCapture);
15168
15241
  // Package up the remaining type arguments into a tuple object.
15169
15242
  const variadicTuple = (0, typeUtils_1.convertToInstance)((0, typeUtils_1.specializeTupleClass)(tupleClassType, removedArgs.map((typeArg) => {
15170
- return { type: stripLiteralValue(typeArg.type), isUnbounded: typeArg.isUnbounded };
15243
+ return { type: typeArg.type, isUnbounded: typeArg.isUnbounded };
15171
15244
  }),
15172
15245
  /* isTypeArgumentExplicit */ true,
15173
15246
  /* isUnpackedTuple */ true));
@@ -15195,7 +15268,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
15195
15268
  for (let argIndex = 0; argIndex < srcTypeArgs.length; argIndex++) {
15196
15269
  const entryDiag = diag === null || diag === void 0 ? void 0 : diag.createAddendum();
15197
15270
  if (!assignType(destTypeArgs[argIndex].type, srcTypeArgs[argIndex].type, entryDiag === null || entryDiag === void 0 ? void 0 : entryDiag.createAddendum(), typeVarContext,
15198
- /* srcTypeVarContext */ undefined, flags | 128 /* RetainLiteralsForTypeVar */, recursionCount)) {
15271
+ /* srcTypeVarContext */ undefined, flags, recursionCount)) {
15199
15272
  if (entryDiag) {
15200
15273
  entryDiag.addMessage(localize_1.Localizer.DiagnosticAddendum.tupleEntryTypeMismatch().format({
15201
15274
  entry: argIndex + 1,
@@ -15299,7 +15372,8 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
15299
15372
  for (let i = 0; i < destType.details.typeParameters.length; i++) {
15300
15373
  const typeArgType = i < srcTypeArgs.length ? srcTypeArgs[i] : types_1.UnknownType.create();
15301
15374
  destTypeVarContext.setTypeVarType(destType.details.typeParameters[i],
15302
- /* narrowBound */ undefined, typeArgType);
15375
+ /* narrowBound */ undefined,
15376
+ /* narrowBoundNoLiterals */ undefined, typeArgType);
15303
15377
  }
15304
15378
  }
15305
15379
  return true;
@@ -15436,24 +15510,22 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
15436
15510
  }
15437
15511
  else {
15438
15512
  // Have we already recursed once?
15439
- if ((flags & 2048 /* SkipRecursiveTypeCheck */) !== 0) {
15513
+ if ((flags & 4 /* SkipRecursiveTypeCheck */) !== 0) {
15440
15514
  return true;
15441
15515
  }
15442
15516
  // Note that we are comparing two recursive types and do
15443
15517
  // not recursive more than once.
15444
- flags |= 2048 /* SkipRecursiveTypeCheck */;
15518
+ flags |= 4 /* SkipRecursiveTypeCheck */;
15445
15519
  }
15446
15520
  }
15447
15521
  // Transform recursive type aliases if necessary.
15448
15522
  const transformedDestType = (0, typeUtils_1.transformPossibleRecursiveTypeAlias)(destType);
15449
15523
  const transformedSrcType = (0, typeUtils_1.transformPossibleRecursiveTypeAlias)(srcType);
15450
- // Did both the source and dest include recursive type aliases?
15451
- // If so, we are potentially dealing with different recursive type
15452
- // aliases that are defined in the same way.
15453
- if (transformedDestType !== destType &&
15454
- transformedSrcType !== srcType &&
15455
- (0, types_1.isUnion)(transformedDestType) &&
15456
- (0, types_1.isUnion)(transformedSrcType)) {
15524
+ // Did either the source or dest include recursive type aliases?
15525
+ // If so, we could be dealing with different recursive type aliases
15526
+ // or a recursive type alias and a recursive protocol definition.
15527
+ if ((transformedDestType !== destType && (0, types_1.isUnion)(transformedDestType)) ||
15528
+ (transformedSrcType !== srcType && (0, types_1.isUnion)(transformedSrcType))) {
15457
15529
  // Use a smaller recursive limit in this case to prevent runaway recursion.
15458
15530
  if (recursionCount > maxRecursiveTypeAliasRecursionCount) {
15459
15531
  return true;
@@ -15471,9 +15543,9 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
15471
15543
  if ((flags & 16 /* OverloadOverlapCheck */) !== 0) {
15472
15544
  srcType = makeTopLevelTypeVarsConcrete(srcType);
15473
15545
  }
15474
- // Strip a few of the flags we don't want to propagate to other calls.
15546
+ // Strip flags we don't want to propagate to other calls.
15475
15547
  const originalFlags = flags;
15476
- flags &= ~(64 /* AllowBoolTypeGuard */ | 4 /* AllowTypeVarNarrowing */);
15548
+ flags &= ~64 /* AllowBoolTypeGuard */;
15477
15549
  // Before performing any other checks, see if the dest type is a
15478
15550
  // TypeVar that we are attempting to match.
15479
15551
  if ((0, types_1.isTypeVar)(destType)) {
@@ -15551,27 +15623,14 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
15551
15623
  /* srcTypeVarContext */ undefined, originalFlags, recursionCount);
15552
15624
  }
15553
15625
  else {
15554
- // Reverse the order of assignment to populate the TypeVarContext for
15555
- // the source TypeVar. Normally we set the AllowTypeVarNarrowing flag
15556
- // so the wide type bound of the TypeVar is set rather than the narrow
15557
- // type bound. This allows the type to be further narrowed through other
15558
- // assignments. However, if we're populating the expected type in the
15559
- // TypeVarContext, we don't want to allow further narrowing.
15560
- let effectiveFlags = originalFlags;
15561
- if ((originalFlags & 1024 /* PopulatingExpectedType */) !== 0) {
15562
- effectiveFlags &= ~(2 /* ReverseTypeVarMatching */ | 4 /* AllowTypeVarNarrowing */);
15563
- }
15564
- else {
15565
- effectiveFlags |= 4 /* AllowTypeVarNarrowing */;
15566
- }
15567
- if ((0, constraintSolver_1.assignTypeToTypeVar)(evaluatorInterface, srcType, destType, diag, srcTypeVarContext, effectiveFlags, recursionCount)) {
15626
+ if ((0, constraintSolver_1.assignTypeToTypeVar)(evaluatorInterface, srcType, destType, diag, srcTypeVarContext, originalFlags, recursionCount)) {
15568
15627
  return true;
15569
15628
  }
15570
15629
  // If the dest type is a union, only one of the subtypes needs to match.
15571
15630
  let isAssignable = false;
15572
15631
  if ((0, types_1.isUnion)(destType)) {
15573
15632
  (0, typeUtils_1.doForEachSubtype)(destType, (destSubtype) => {
15574
- if ((0, constraintSolver_1.assignTypeToTypeVar)(evaluatorInterface, srcType, destSubtype, diag, srcTypeVarContext, originalFlags | 4 /* AllowTypeVarNarrowing */, recursionCount)) {
15633
+ if ((0, constraintSolver_1.assignTypeToTypeVar)(evaluatorInterface, srcType, destSubtype, diag, srcTypeVarContext, originalFlags, recursionCount)) {
15575
15634
  isAssignable = true;
15576
15635
  }
15577
15636
  });
@@ -15938,17 +15997,14 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
15938
15997
  // to eliminate as many exact type matches between the src and dest.
15939
15998
  if ((0, types_1.isUnion)(destType)) {
15940
15999
  // Handle the special case where the dest is a union of Any and
15941
- // a type variable and AssignTypeFlags.AllowTypeVarNarrowing is
15942
- // in effect. This occurs, for example, with the return type of
16000
+ // a type variable. This occurs, for example, with the return type of
15943
16001
  // the getattr function.
15944
- if ((flags & 4 /* AllowTypeVarNarrowing */) !== 0) {
15945
- const nonAnySubtypes = destType.subtypes.filter((t) => !(0, types_1.isAnyOrUnknown)(t));
15946
- if (nonAnySubtypes.length === 1 && (0, types_1.isTypeVar)(nonAnySubtypes[0])) {
15947
- assignType(nonAnySubtypes[0], srcType,
15948
- /* diag */ undefined, destTypeVarContext, srcTypeVarContext, flags, recursionCount);
15949
- // This always succeeds because the destination contains Any.
15950
- return true;
15951
- }
16002
+ const nonAnySubtypes = destType.subtypes.filter((t) => !(0, types_1.isAnyOrUnknown)(t));
16003
+ if (nonAnySubtypes.length === 1 && (0, types_1.isTypeVar)(nonAnySubtypes[0])) {
16004
+ assignType(nonAnySubtypes[0], srcType,
16005
+ /* diag */ undefined, destTypeVarContext, srcTypeVarContext, flags, recursionCount);
16006
+ // This always succeeds because the destination contains Any.
16007
+ return true;
15952
16008
  }
15953
16009
  const remainingDestSubtypes = [];
15954
16010
  let remainingSrcSubtypes = [...srcType.subtypes];
@@ -16818,18 +16874,6 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
16818
16874
  assignType(typeVarEntry.typeVar, effectiveSrcTypeVarContext.getTypeVarType(typeVarEntry.typeVar),
16819
16875
  /* diag */ undefined, destTypeVarContext, srcTypeVarContext, 0 /* Default */, recursionCount);
16820
16876
  });
16821
- // Perform partial specialization of type variables to allow for
16822
- // "higher-order" type variables.
16823
- if (!destTypeVarContext.isLocked()) {
16824
- destTypeVarContext.getTypeVars().forEach((entry) => {
16825
- if (entry.narrowBound) {
16826
- const specializedType = (0, typeUtils_1.applySolvedTypeVars)(entry.narrowBound, destTypeVarContext);
16827
- if (specializedType !== entry.narrowBound) {
16828
- destTypeVarContext.setTypeVarType(entry.typeVar, specializedType, entry.wideBound, entry.retainLiteral);
16829
- }
16830
- }
16831
- });
16832
- }
16833
16877
  // Are we assigning to a function with a ParamSpec?
16834
16878
  if (targetIncludesParamSpec) {
16835
16879
  const effectiveDestType = (flags & 2 /* ReverseTypeVarMatching */) === 0 ? destType : srcType;
@@ -16953,6 +16997,9 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
16953
16997
  }
16954
16998
  }
16955
16999
  }
17000
+ // Apply any solved source TypeVars to the dest TypeVar solutions. This
17001
+ // allows for higher-order functions to accept generic callbacks.
17002
+ destTypeVarContext.applySourceContextTypeVars(srcTypeVarContext);
16956
17003
  return canAssign;
16957
17004
  }
16958
17005
  // If the declaredType contains type arguments that are "Any" and