@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
@@ -109,10 +109,7 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
109
109
  const incompleteEntries = cachedEntry.incompleteSubtypes;
110
110
  if (index < incompleteEntries.length) {
111
111
  const oldEntry = incompleteEntries[index];
112
- if (oldEntry.isIncomplete !== isIncomplete ||
113
- oldEntry.type === undefined ||
114
- type === undefined ||
115
- !(0, types_1.isTypeSame)(oldEntry.type, type)) {
112
+ if (oldEntry.isIncomplete !== isIncomplete || !(0, types_1.isTypeSame)(oldEntry.type, type)) {
116
113
  incompleteEntries[index] = { type, isIncomplete, isPending, evaluationCount };
117
114
  flowIncompleteGeneration++;
118
115
  }
@@ -198,7 +195,7 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
198
195
  // If the start flow node for this scope is reachable, the typeAtStart value is
199
196
  // returned.
200
197
  function getTypeFromFlowNode(flowNode) {
201
- var _a;
198
+ var _a, _b;
202
199
  let curFlowNode = flowNode;
203
200
  // This is a frequently-called routine, so it's a good place to call
204
201
  // the cancellation check. If the operation is canceled, an exception
@@ -219,7 +216,10 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
219
216
  }
220
217
  // Check for recursion.
221
218
  if (flowNodeTypeCache.pendingNodes.has(curFlowNode.id)) {
222
- return { type: cachedEntry === null || cachedEntry === void 0 ? void 0 : cachedEntry.type, isIncomplete: true };
219
+ return {
220
+ type: (_a = cachedEntry === null || cachedEntry === void 0 ? void 0 : cachedEntry.type) !== null && _a !== void 0 ? _a : types_1.UnknownType.create(/* isIncomplete */ true),
221
+ isIncomplete: true,
222
+ };
223
223
  }
224
224
  if (curFlowNode.flags & codeFlowTypes_1.FlowFlags.Unreachable) {
225
225
  // We can get here if there are nodes in a compound logical expression
@@ -273,7 +273,7 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
273
273
  // base type.
274
274
  if (targetNode.nodeType === 24 /* Index */ &&
275
275
  (0, parseTreeUtils_1.isMatchingExpression)(reference, targetNode.baseExpression)) {
276
- if (((_a = targetNode.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 3 /* Assignment */ &&
276
+ if (((_b = targetNode.parent) === null || _b === void 0 ? void 0 : _b.nodeType) === 3 /* Assignment */ &&
277
277
  targetNode.items.length === 1 &&
278
278
  !targetNode.trailingComma &&
279
279
  !targetNode.items[0].name &&
@@ -523,7 +523,9 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
523
523
  let sawPending = false;
524
524
  let isProvenReachable = reference === undefined &&
525
525
  ((_a = cacheEntry.incompleteSubtypes) === null || _a === void 0 ? void 0 : _a.some((subtype) => subtype.type !== undefined));
526
+ let firstAntecedentTypeIsIncomplete = false;
526
527
  loopNode.antecedents.forEach((antecedent, index) => {
528
+ var _a, _b;
527
529
  // If we've trying to determine reachability and we've already proven
528
530
  // reachability, then we're done.
529
531
  if (reference === undefined && isProvenReachable) {
@@ -551,19 +553,24 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
551
553
  const entryEvaluationCount = subtypeEntry === undefined ? 0 : subtypeEntry.evaluationCount;
552
554
  // Set this entry to "pending" to prevent infinite recursion.
553
555
  // We'll mark it "not pending" below.
554
- cacheEntry = setIncompleteSubtype(loopNode, index, subtypeEntry === null || subtypeEntry === void 0 ? void 0 : subtypeEntry.type,
556
+ cacheEntry = setIncompleteSubtype(loopNode, index, (_a = subtypeEntry === null || subtypeEntry === void 0 ? void 0 : subtypeEntry.type) !== null && _a !== void 0 ? _a : types_1.UnknownType.create(/* isIncomplete */ true),
555
557
  /* isIncomplete */ true,
556
558
  /* isPending */ true, entryEvaluationCount);
557
559
  try {
558
560
  const flowTypeResult = getTypeFromFlowNode(antecedent);
559
561
  if (flowTypeResult.isIncomplete) {
560
562
  sawIncomplete = true;
563
+ if (index === 0) {
564
+ firstAntecedentTypeIsIncomplete = true;
565
+ }
561
566
  }
562
- cacheEntry = setIncompleteSubtype(loopNode, index, flowTypeResult.type, flowTypeResult.isIncomplete,
567
+ cacheEntry = setIncompleteSubtype(loopNode, index, (_b = flowTypeResult.type) !== null && _b !== void 0 ? _b : (flowTypeResult.isIncomplete
568
+ ? types_1.UnknownType.create(/* isIncomplete */ true)
569
+ : types_1.NeverType.createNever()), flowTypeResult.isIncomplete,
563
570
  /* isPending */ false, entryEvaluationCount + 1);
564
571
  }
565
572
  catch (e) {
566
- setIncompleteSubtype(loopNode, index, undefined,
573
+ setIncompleteSubtype(loopNode, index, types_1.UnknownType.create(/* isIncomplete */ true),
567
574
  /* isIncomplete */ true,
568
575
  /* isPending */ false, entryEvaluationCount + 1);
569
576
  throw e;
@@ -597,7 +604,13 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
597
604
  // path, mark it as complete. If we couldn't evaluate a type along
598
605
  // any antecedent path, assume that some recursive call further
599
606
  // up the stack will be able to produce a valid type.
600
- const reportIncomplete = sawIncomplete && effectiveType === undefined;
607
+ let reportIncomplete = sawIncomplete;
608
+ if (!sawPending &&
609
+ effectiveType &&
610
+ !(0, typeUtils_1.isIncompleteUnknown)(effectiveType) &&
611
+ !firstAntecedentTypeIsIncomplete) {
612
+ reportIncomplete = false;
613
+ }
601
614
  // If we saw a pending entry, do not save over the top of the cache
602
615
  // entry because we'll overwrite a pending evaluation.
603
616
  return sawPending
@@ -1 +1 @@
1
- {"version":3,"file":"codeFlowEngine.js","sourceRoot":"","sources":["../../../src/analyzer/codeFlowEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codeFlowEngine.js","sourceRoot":"","sources":["../../../src/analyzer/codeFlowEngine.ts"],"names":[],"mappings":"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"}
@@ -39,6 +39,11 @@ function assignTypeToTypeVar(evaluator, destType, srcType, diag, typeVarContext,
39
39
  if ((0, types_1.isAnyOrUnknown)(srcType) || ((0, types_1.isClass)(srcType) && types_1.ClassType.derivesFromAnyOrUnknown(srcType))) {
40
40
  return true;
41
41
  }
42
+ // Never or NoReturn is always assignable to all type variables unless
43
+ // we're enforcing invariance.
44
+ if ((0, types_1.isNever)(srcType) && (flags & 1 /* EnforceInvariance */) === 0) {
45
+ return true;
46
+ }
42
47
  // If we're in "ignore type var scope" mode, don't generate
43
48
  // an error in this path.
44
49
  if ((flags & 512 /* IgnoreTypeVarScope */) !== 0) {
@@ -239,13 +244,7 @@ function assignTypeToTypeVar(evaluator, destType, srcType, diag, typeVarContext,
239
244
  let newNarrowTypeBound = curNarrowTypeBound;
240
245
  let newWideTypeBound = curWideTypeBound;
241
246
  const diagAddendum = diag ? new diagnostic_1.DiagnosticAddendum() : undefined;
242
- // Strip literals if the existing value contains no literals. This allows
243
- // for explicit (but no implicit) literal specialization of a generic class.
244
- const retainLiterals = (flags & 128 /* RetainLiteralsForTypeVar */) !== 0 ||
245
- typeVarContext.getRetainLiterals(destType) ||
246
- (destType.details.boundType && (0, typeUtils_1.containsLiteralType)(destType.details.boundType)) ||
247
- destType.details.constraints.some((t) => (0, typeUtils_1.containsLiteralType)(t));
248
- let adjSrcType = retainLiterals ? srcType : evaluator.stripLiteralValue(srcType);
247
+ let adjSrcType = srcType;
249
248
  if (types_1.TypeBase.isInstantiable(destType)) {
250
249
  if ((0, typeUtils_1.isEffectivelyInstantiable)(adjSrcType)) {
251
250
  adjSrcType = (0, typeUtils_1.convertToInstance)(adjSrcType, /* includeSubclasses */ false);
@@ -258,7 +257,21 @@ function assignTypeToTypeVar(evaluator, destType, srcType, diag, typeVarContext,
258
257
  return false;
259
258
  }
260
259
  }
261
- if (isContravariant || (flags & 4 /* AllowTypeVarNarrowing */) !== 0) {
260
+ if ((flags & 1024 /* PopulatingExpectedType */) !== 0) {
261
+ // If we're populating the expected type, constrain either the
262
+ // narrow type bound, wide type bound or both.
263
+ if ((flags & 1 /* EnforceInvariance */) !== 0) {
264
+ newNarrowTypeBound = adjSrcType;
265
+ newWideTypeBound = adjSrcType;
266
+ }
267
+ else if (isContravariant) {
268
+ newNarrowTypeBound = adjSrcType;
269
+ }
270
+ else {
271
+ newWideTypeBound = adjSrcType;
272
+ }
273
+ }
274
+ else if (isContravariant) {
262
275
  // Update the wide type bound.
263
276
  if (!curWideTypeBound) {
264
277
  newWideTypeBound = adjSrcType;
@@ -331,20 +344,22 @@ function assignTypeToTypeVar(evaluator, destType, srcType, diag, typeVarContext,
331
344
  }));
332
345
  return false;
333
346
  }
334
- // Don't allow widening for variadic type variables.
335
- const possibleVariadic = destType;
336
- if ((0, types_1.isVariadicTypeVar)(possibleVariadic)) {
337
- diag === null || diag === void 0 ? void 0 : diag.addMessage(localize_1.Localizer.DiagnosticAddendum.typeAssignmentMismatch().format({
338
- sourceType: evaluator.printType(curNarrowTypeBound),
339
- destType: evaluator.printType(adjSrcType),
340
- }));
341
- return false;
342
- }
343
347
  if (evaluator.assignType(adjSrcType, curNarrowTypeBound,
344
348
  /* diag */ undefined, new typeVarContext_1.TypeVarContext(destType.scopeId),
345
349
  /* srcTypeVarContext */ undefined, flags & 512 /* IgnoreTypeVarScope */, recursionCount)) {
346
350
  newNarrowTypeBound = adjSrcType;
347
351
  }
352
+ else if ((0, types_1.isVariadicTypeVar)(destType)) {
353
+ const widenedType = widenTypeForVariadicTypeVar(curNarrowTypeBound, adjSrcType);
354
+ if (!widenedType) {
355
+ diag === null || diag === void 0 ? void 0 : diag.addMessage(localize_1.Localizer.DiagnosticAddendum.typeAssignmentMismatch().format({
356
+ sourceType: evaluator.printType(curNarrowTypeBound),
357
+ destType: evaluator.printType(adjSrcType),
358
+ }));
359
+ return false;
360
+ }
361
+ newNarrowTypeBound = widenedType;
362
+ }
348
363
  else {
349
364
  const objectType = evaluator.getObjectType();
350
365
  // In some extreme edge cases, the narrow type bound can become
@@ -381,8 +396,9 @@ function assignTypeToTypeVar(evaluator, destType, srcType, diag, typeVarContext,
381
396
  makeConcrete = false;
382
397
  }
383
398
  }
384
- if (!evaluator.assignType(makeConcrete ? evaluator.makeTopLevelTypeVarsConcrete(curWideTypeBound) : curWideTypeBound, newNarrowTypeBound, diag === null || diag === void 0 ? void 0 : diag.createAddendum(), new typeVarContext_1.TypeVarContext(destType.scopeId),
385
- /* srcTypeVarContext */ undefined, flags & 512 /* IgnoreTypeVarScope */, recursionCount)) {
399
+ if (!evaluator.assignType(makeConcrete ? evaluator.makeTopLevelTypeVarsConcrete(curWideTypeBound) : curWideTypeBound, newNarrowTypeBound, diag === null || diag === void 0 ? void 0 : diag.createAddendum(),
400
+ /* destTypeVarContext */ undefined,
401
+ /* srcTypeVarContext */ undefined, 512 /* IgnoreTypeVarScope */, recursionCount)) {
386
402
  if (diag && diagAddendum) {
387
403
  diag.addMessage(localize_1.Localizer.DiagnosticAddendum.typeAssignmentMismatch().format({
388
404
  sourceType: evaluator.printType(adjSrcType),
@@ -424,7 +440,21 @@ function assignTypeToTypeVar(evaluator, destType, srcType, diag, typeVarContext,
424
440
  }
425
441
  }
426
442
  if (!typeVarContext.isLocked() && isTypeVarInScope) {
427
- typeVarContext.setTypeVarType(destType, newNarrowTypeBound, newWideTypeBound, retainLiterals);
443
+ let newNarrowTypeBoundNoLiterals;
444
+ if (newNarrowTypeBound &&
445
+ (flags & (1024 /* PopulatingExpectedType */ | 128 /* RetainLiteralsForTypeVar */)) === 0) {
446
+ const strippedLiteral = (0, types_1.isVariadicTypeVar)(destType)
447
+ ? stripLiteralValueForUnpackedTuple(evaluator, newNarrowTypeBound)
448
+ : evaluator.stripLiteralValue(newNarrowTypeBound);
449
+ // Strip the literals from the narrow type bound and see if it is still
450
+ // narrower than the wide bound.
451
+ if (strippedLiteral !== newNarrowTypeBound) {
452
+ if (!newWideTypeBound || evaluator.assignType(newWideTypeBound, strippedLiteral)) {
453
+ newNarrowTypeBoundNoLiterals = strippedLiteral;
454
+ }
455
+ }
456
+ }
457
+ typeVarContext.setTypeVarType(destType, newNarrowTypeBound, newNarrowTypeBoundNoLiterals, newWideTypeBound);
428
458
  }
429
459
  return true;
430
460
  }
@@ -547,7 +577,8 @@ function populateTypeVarContextBasedOnExpectedType(evaluator, type, expectedType
547
577
  // Skip this if the type argument is a TypeVar defined by the class scope because
548
578
  // we're potentially solving for these TypeVars.
549
579
  if (!(0, types_1.isTypeVar)(typeVarType) || typeVarType.scopeId !== type.details.typeVarScopeId) {
550
- typeVarContext.setTypeVarType(entry.typeVar, types_1.TypeVarType.getVariance(entry.typeVar) === 3 /* Covariant */ ? undefined : typeVarType, types_1.TypeVarType.getVariance(entry.typeVar) === 4 /* Contravariant */ ? undefined : typeVarType, entry.retainLiteral);
580
+ typeVarContext.setTypeVarType(entry.typeVar, types_1.TypeVarType.getVariance(entry.typeVar) === 3 /* Covariant */ ? undefined : typeVarType,
581
+ /* narrowBoundNoLiterals */ undefined, types_1.TypeVarType.getVariance(entry.typeVar) === 4 /* Contravariant */ ? undefined : typeVarType);
551
582
  }
552
583
  }
553
584
  });
@@ -594,7 +625,8 @@ function populateTypeVarContextBasedOnExpectedType(evaluator, type, expectedType
594
625
  expectedTypeArgValue = (0, typeUtils_1.transformExpectedTypeForConstructor)(expectedTypeArgValue, liveTypeVarScopes);
595
626
  }
596
627
  if (expectedTypeArgValue) {
597
- typeVarContext.setTypeVarType(targetTypeVar, types_1.TypeVarType.getVariance(typeVar) === 3 /* Covariant */ ? undefined : expectedTypeArgValue, types_1.TypeVarType.getVariance(typeVar) === 4 /* Contravariant */
628
+ typeVarContext.setTypeVarType(targetTypeVar, types_1.TypeVarType.getVariance(typeVar) === 3 /* Covariant */ ? undefined : expectedTypeArgValue,
629
+ /* narrowBoundNoLiterals */ undefined, types_1.TypeVarType.getVariance(typeVar) === 4 /* Contravariant */
598
630
  ? undefined
599
631
  : expectedTypeArgValue);
600
632
  }
@@ -609,4 +641,58 @@ function populateTypeVarContextBasedOnExpectedType(evaluator, type, expectedType
609
641
  return false;
610
642
  }
611
643
  exports.populateTypeVarContextBasedOnExpectedType = populateTypeVarContextBasedOnExpectedType;
644
+ // For normal TypeVars, the constraint solver can widen a type by combining
645
+ // two otherwise incompatible types into a union. For TypeVarTuples, we need
646
+ // to do the equivalent operation for unpacked tuples.
647
+ function widenTypeForVariadicTypeVar(type1, type2) {
648
+ // If the two types are not unpacked tuples, we can't combine them.
649
+ if (!(0, types_1.isUnpackedClass)(type1) || !(0, types_1.isUnpackedClass)(type2)) {
650
+ return undefined;
651
+ }
652
+ // If the two unpacked tuples are not the same length, we can't combine them.
653
+ if (!type1.tupleTypeArguments ||
654
+ !type2.tupleTypeArguments ||
655
+ type1.tupleTypeArguments.length !== type2.tupleTypeArguments.length) {
656
+ return undefined;
657
+ }
658
+ let canCombine = true;
659
+ const tupleTypeArgs = type1.tupleTypeArguments.map((arg1, index) => {
660
+ const arg2 = type2.tupleTypeArguments[index];
661
+ // If an entry is unbound in length and the corresponding entry in the
662
+ // other tuple is not (or vice versa), we can't combine them.
663
+ if (arg1.isUnbounded !== arg2.isUnbounded) {
664
+ canCombine = false;
665
+ }
666
+ return {
667
+ isUnbounded: arg1.isUnbounded,
668
+ type: (0, types_1.combineTypes)([arg1.type, arg2.type]),
669
+ };
670
+ });
671
+ if (!canCombine) {
672
+ return undefined;
673
+ }
674
+ return (0, typeUtils_1.specializeTupleClass)(type1, tupleTypeArgs, /* isTypeArgumentExplicit */ true, /* isUnpackedTuple */ true);
675
+ }
676
+ // If the provided type is an unpacked tuple, this function strips the
677
+ // literals from types of the corresponding elements.
678
+ function stripLiteralValueForUnpackedTuple(evaluator, type) {
679
+ if (!(0, types_1.isUnpackedClass)(type) || !type.tupleTypeArguments) {
680
+ return type;
681
+ }
682
+ let strippedLiteral = false;
683
+ const tupleTypeArgs = type.tupleTypeArguments.map((arg) => {
684
+ const strippedType = evaluator.stripLiteralValue(arg.type);
685
+ if (strippedType !== arg.type) {
686
+ strippedLiteral = true;
687
+ }
688
+ return {
689
+ isUnbounded: arg.isUnbounded,
690
+ type: strippedType,
691
+ };
692
+ });
693
+ if (!strippedLiteral) {
694
+ return type;
695
+ }
696
+ return (0, typeUtils_1.specializeTupleClass)(type, tupleTypeArgs, /* isTypeArgumentExplicit */ true, /* isUnpackedTuple */ true);
697
+ }
612
698
  //# sourceMappingURL=constraintSolver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constraintSolver.js","sourceRoot":"","sources":["../../../src/analyzer/constraintSolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constraintSolver.js","sourceRoot":"","sources":["../../../src/analyzer/constraintSolver.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
- import { NameNode } from '../parser/parseNodes';
1
+ import { ExpressionNode, NameNode } from '../parser/parseNodes';
2
2
  import { AliasDeclaration, Declaration } from './declaration';
3
3
  export declare function hasTypeForDeclaration(declaration: Declaration): boolean;
4
4
  export declare function areDeclarationsSame(decl1: Declaration, decl2: Declaration, treatModuleInImportAndFromImportSame?: boolean, skipRangeForAliases?: boolean): boolean;
5
5
  export declare function isFinalVariableDeclaration(decl: Declaration): boolean;
6
6
  export declare function isExplicitTypeAliasDeclaration(decl: Declaration): boolean;
7
7
  export declare function isPossibleTypeAliasDeclaration(decl: Declaration): boolean;
8
+ export declare function isLegalTypeAliasExpressionForm(node: ExpressionNode): boolean;
8
9
  export declare function getNameFromDeclaration(declaration: Declaration): string | undefined;
9
10
  export declare function getNameNodeForDeclaration(declaration: Declaration): NameNode | undefined;
10
11
  export declare function isDefinedInFile(decl: Declaration, filePath: string): boolean;
@@ -8,7 +8,7 @@
8
8
  * Collection of static methods that operate on declarations.
9
9
  */
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.createSynthesizedAliasDeclaration = exports.getDeclarationsWithUsesLocalNameRemoved = exports.isDefinedInFile = exports.getNameNodeForDeclaration = exports.getNameFromDeclaration = exports.isPossibleTypeAliasDeclaration = exports.isExplicitTypeAliasDeclaration = exports.isFinalVariableDeclaration = exports.areDeclarationsSame = exports.hasTypeForDeclaration = void 0;
11
+ exports.createSynthesizedAliasDeclaration = exports.getDeclarationsWithUsesLocalNameRemoved = exports.isDefinedInFile = exports.getNameNodeForDeclaration = exports.getNameFromDeclaration = exports.isLegalTypeAliasExpressionForm = exports.isPossibleTypeAliasDeclaration = exports.isExplicitTypeAliasDeclaration = exports.isFinalVariableDeclaration = exports.areDeclarationsSame = exports.hasTypeForDeclaration = void 0;
12
12
  const textRange_1 = require("../common/textRange");
13
13
  const declaration_1 = require("./declaration");
14
14
  const parseTreeUtils_1 = require("./parseTreeUtils");
@@ -102,8 +102,11 @@ function isPossibleTypeAliasDeclaration(decl) {
102
102
  }
103
103
  // Perform a sanity check on the RHS expression. Some expression
104
104
  // forms should never be considered legitimate for type aliases.
105
- const rhsOfAssignment = decl.node.parent.rightExpression;
106
- switch (rhsOfAssignment.nodeType) {
105
+ return isLegalTypeAliasExpressionForm(decl.node.parent.rightExpression);
106
+ }
107
+ exports.isPossibleTypeAliasDeclaration = isPossibleTypeAliasDeclaration;
108
+ function isLegalTypeAliasExpressionForm(node) {
109
+ switch (node.nodeType) {
107
110
  case 0 /* Error */:
108
111
  case 55 /* UnaryOperation */:
109
112
  case 4 /* AssignmentExpression */:
@@ -126,7 +129,7 @@ function isPossibleTypeAliasDeclaration(decl) {
126
129
  }
127
130
  return true;
128
131
  }
129
- exports.isPossibleTypeAliasDeclaration = isPossibleTypeAliasDeclaration;
132
+ exports.isLegalTypeAliasExpressionForm = isLegalTypeAliasExpressionForm;
130
133
  function getNameFromDeclaration(declaration) {
131
134
  var _a;
132
135
  switch (declaration.type) {