@zzzen/pyright-internal 1.2.0-dev.20221002 → 1.2.0-dev.20221009

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 (40) hide show
  1. package/dist/analyzer/binder.js +18 -1
  2. package/dist/analyzer/binder.js.map +1 -1
  3. package/dist/analyzer/cacheManager.d.ts +14 -0
  4. package/dist/analyzer/cacheManager.js +63 -0
  5. package/dist/analyzer/cacheManager.js.map +1 -0
  6. package/dist/analyzer/codeFlowEngine.d.ts +6 -1
  7. package/dist/analyzer/codeFlowEngine.js +102 -87
  8. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  9. package/dist/analyzer/constraintSolver.js +1 -1
  10. package/dist/analyzer/constraintSolver.js.map +1 -1
  11. package/dist/analyzer/packageTypeVerifier.js +4 -4
  12. package/dist/analyzer/packageTypeVerifier.js.map +1 -1
  13. package/dist/analyzer/program.d.ts +5 -0
  14. package/dist/analyzer/program.js +43 -25
  15. package/dist/analyzer/program.js.map +1 -1
  16. package/dist/analyzer/service.js +1 -0
  17. package/dist/analyzer/service.js.map +1 -1
  18. package/dist/analyzer/sourceFile.d.ts +1 -1
  19. package/dist/analyzer/sourceFile.js +4 -4
  20. package/dist/analyzer/sourceFile.js.map +1 -1
  21. package/dist/analyzer/typeEvaluator.js +48 -38
  22. package/dist/analyzer/typeEvaluator.js.map +1 -1
  23. package/dist/analyzer/typeUtils.d.ts +1 -1
  24. package/dist/analyzer/typeUtils.js +4 -31
  25. package/dist/analyzer/typeUtils.js.map +1 -1
  26. package/dist/languageServerBase.js +6 -6
  27. package/dist/languageServerBase.js.map +1 -1
  28. package/dist/parser/parser.js +21 -10
  29. package/dist/parser/parser.js.map +1 -1
  30. package/dist/tests/parser.test.js +22 -0
  31. package/dist/tests/parser.test.js.map +1 -1
  32. package/dist/tests/testUtils.js +3 -1
  33. package/dist/tests/testUtils.js.map +1 -1
  34. package/dist/tests/typeEvaluator2.test.js +4 -0
  35. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  36. package/dist/tests/typeEvaluator3.test.js +12 -0
  37. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  38. package/dist/workspaceMap.js +2 -0
  39. package/dist/workspaceMap.js.map +1 -1
  40. package/package.json +1 -1
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ /*
3
+ * cacheManager.ts
4
+ * Copyright (c) Microsoft Corporation.
5
+ * Licensed under the MIT license.
6
+ * Author: Eric Traut
7
+ *
8
+ * A singleton that tracks the size of caches and empty them
9
+ * if memory usage approaches the max heap space.
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.CacheManager = void 0;
13
+ const v8_1 = require("v8");
14
+ const debug_1 = require("../common/debug");
15
+ class CacheManager {
16
+ static registerCacheOwner(provider) {
17
+ CacheManager._cacheOwners.push(provider);
18
+ }
19
+ static unregisterCacheOwner(provider) {
20
+ const index = CacheManager._cacheOwners.findIndex((p) => p === provider);
21
+ if (index < 0) {
22
+ (0, debug_1.fail)('Specified cache provider not found');
23
+ }
24
+ else {
25
+ CacheManager._cacheOwners.splice(index, 1);
26
+ }
27
+ }
28
+ static getCacheUsage() {
29
+ let totalUsage = 0;
30
+ CacheManager._cacheOwners.forEach((p) => {
31
+ totalUsage += p.getCacheUsage();
32
+ });
33
+ return totalUsage;
34
+ }
35
+ static emptyCache(console) {
36
+ if (console) {
37
+ const heapStats = (0, v8_1.getHeapStatistics)();
38
+ console.info(`Emptying type cache to avoid heap overflow. Used ${this._convertToMB(heapStats.used_heap_size)} out of ${this._convertToMB(heapStats.heap_size_limit)}.`);
39
+ }
40
+ CacheManager._cacheOwners.forEach((p) => {
41
+ p.emptyCache();
42
+ });
43
+ }
44
+ // Returns a ratio of used bytes to total bytes.
45
+ static getUsedHeapRatio(console) {
46
+ const heapStats = (0, v8_1.getHeapStatistics)();
47
+ if (console) {
48
+ console.info(`Heap stats: ` +
49
+ `total_heap_size=${this._convertToMB(heapStats.total_heap_size)}, ` +
50
+ `used_heap_size=${this._convertToMB(heapStats.used_heap_size)}, ` +
51
+ `total_physical_size=${this._convertToMB(heapStats.total_physical_size)}, ` +
52
+ `total_available_size=${this._convertToMB(heapStats.total_available_size)}, ` +
53
+ `heap_size_limit=${this._convertToMB(heapStats.heap_size_limit)}`);
54
+ }
55
+ return heapStats.used_heap_size / heapStats.heap_size_limit;
56
+ }
57
+ static _convertToMB(bytes) {
58
+ return `${Math.round(bytes / (1024 * 1024))}MB`;
59
+ }
60
+ }
61
+ exports.CacheManager = CacheManager;
62
+ CacheManager._cacheOwners = [];
63
+ //# sourceMappingURL=cacheManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cacheManager.js","sourceRoot":"","sources":["../../../src/analyzer/cacheManager.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH,2BAAuC;AAGvC,2CAAuC;AAWvC,MAAa,YAAY;IAGrB,MAAM,CAAC,kBAAkB,CAAC,QAAoB;QAC1C,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,oBAAoB,CAAC,QAAoB;QAC5C,MAAM,KAAK,GAAG,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;QACzE,IAAI,KAAK,GAAG,CAAC,EAAE;YACX,IAAA,YAAI,EAAC,oCAAoC,CAAC,CAAC;SAC9C;aAAM;YACH,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SAC9C;IACL,CAAC;IAED,MAAM,CAAC,aAAa;QAChB,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACpC,UAAU,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,OAA0B;QACxC,IAAI,OAAO,EAAE;YACT,MAAM,SAAS,GAAG,IAAA,sBAAiB,GAAE,CAAC;YAEtC,OAAO,CAAC,IAAI,CACR,oDAAoD,IAAI,CAAC,YAAY,CACjE,SAAS,CAAC,cAAc,CAC3B,WAAW,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,CAC9D,CAAC;SACL;QAED,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACpC,CAAC,CAAC,UAAU,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,gDAAgD;IAChD,MAAM,CAAC,gBAAgB,CAAC,OAA0B;QAC9C,MAAM,SAAS,GAAG,IAAA,sBAAiB,GAAE,CAAC;QAEtC,IAAI,OAAO,EAAE;YACT,OAAO,CAAC,IAAI,CACR,cAAc;gBACV,mBAAmB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI;gBACnE,kBAAkB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI;gBACjE,uBAAuB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI;gBAC3E,wBAAwB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI;gBAC7E,mBAAmB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CACxE,CAAC;SACL;QAED,OAAO,SAAS,CAAC,cAAc,GAAG,SAAS,CAAC,eAAe,CAAC;IAChE,CAAC;IAEO,MAAM,CAAC,YAAY,CAAC,KAAa;QACrC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC;IACpD,CAAC;;AA9DL,oCA+DC;AA9DkB,yBAAY,GAAiB,EAAE,CAAC"}
@@ -10,8 +10,13 @@ export interface FlowNodeTypeResult {
10
10
  incompleteType?: Type | undefined;
11
11
  incompleteSubtypes?: IncompleteSubtypeInfo[] | undefined;
12
12
  }
13
+ export interface FlowNodeTypeOptions {
14
+ isInitialTypeIncomplete?: boolean;
15
+ skipNoReturnCallAnalysis?: boolean;
16
+ skipConditionalNarrowing?: boolean;
17
+ }
13
18
  export interface CodeFlowAnalyzer {
14
- getTypeFromCodeFlow: (flowNode: FlowNode, reference: CodeFlowReferenceExpressionNode | undefined, targetSymbolId: number | undefined, initialType: Type | undefined, isInitialTypeIncomplete: boolean, ignoreNoReturn: boolean) => FlowNodeTypeResult;
19
+ getTypeFromCodeFlow: (flowNode: FlowNode, reference: CodeFlowReferenceExpressionNode | undefined, targetSymbolId: number | undefined, initialType: Type | undefined, options?: FlowNodeTypeOptions) => FlowNodeTypeResult;
15
20
  }
16
21
  export interface CodeFlowEngine {
17
22
  createCodeFlowAnalyzer: () => CodeFlowAnalyzer;
@@ -51,7 +51,7 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
51
51
  }
52
52
  return flowNodeTypeCache;
53
53
  }
54
- function getTypeFromCodeFlow(flowNode, reference, targetSymbolId, initialType, isInitialTypeIncomplete, ignoreNoReturn) {
54
+ function getTypeFromCodeFlow(flowNode, reference, targetSymbolId, initialType, options) {
55
55
  if (isPrintControlFlowGraphEnabled) {
56
56
  printControlFlowGraph(flowNode, reference, 'getTypeFromCodeFlow');
57
57
  }
@@ -228,7 +228,7 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
228
228
  // If this function returns a "NoReturn" type, that means
229
229
  // it always raises an exception or otherwise doesn't return,
230
230
  // so we can assume that the code before this is unreachable.
231
- if (!ignoreNoReturn && isCallNoReturn(evaluator, callFlowNode)) {
231
+ if (!(options === null || options === void 0 ? void 0 : options.skipNoReturnCallAnalysis) && isCallNoReturn(evaluator, callFlowNode)) {
232
232
  return setCacheEntry(curFlowNode, /* type */ undefined, /* isIncomplete */ false);
233
233
  }
234
234
  curFlowNode = callFlowNode.antecedent;
@@ -299,7 +299,7 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
299
299
  // The type of "a.b" can no longer be assumed to be Literal[3].
300
300
  return {
301
301
  type: initialType,
302
- isIncomplete: isInitialTypeIncomplete,
302
+ isIncomplete: !!(options === null || options === void 0 ? void 0 : options.isInitialTypeIncomplete),
303
303
  };
304
304
  }
305
305
  }
@@ -351,7 +351,7 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
351
351
  }
352
352
  if (curFlowNode.flags & (codeFlowTypes_1.FlowFlags.TrueCondition | codeFlowTypes_1.FlowFlags.FalseCondition)) {
353
353
  const conditionalFlowNode = curFlowNode;
354
- if (reference) {
354
+ if (!(options === null || options === void 0 ? void 0 : options.skipConditionalNarrowing) && reference) {
355
355
  const narrowedResult = preventRecursion(curFlowNode, () => {
356
356
  const typeNarrowingCallback = (0, typeGuards_1.getTypeNarrowingCallback)(evaluator, reference, conditionalFlowNode.expression, !!(conditionalFlowNode.flags &
357
357
  (codeFlowTypes_1.FlowFlags.TrueCondition | codeFlowTypes_1.FlowFlags.TrueNeverCondition)));
@@ -374,7 +374,7 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
374
374
  }
375
375
  if (curFlowNode.flags & (codeFlowTypes_1.FlowFlags.TrueNeverCondition | codeFlowTypes_1.FlowFlags.FalseNeverCondition)) {
376
376
  const conditionalFlowNode = curFlowNode;
377
- if (conditionalFlowNode.reference) {
377
+ if (!(options === null || options === void 0 ? void 0 : options.skipConditionalNarrowing) && conditionalFlowNode.reference) {
378
378
  // Don't allow apply if the conditional expression references the expression
379
379
  // we're already narrowing. This case will be handled by the TrueCondition
380
380
  // or FalseCondition node.
@@ -452,7 +452,7 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
452
452
  return getTypeFromPostFinallyFlowNode(curFlowNode);
453
453
  }
454
454
  if (curFlowNode.flags & codeFlowTypes_1.FlowFlags.Start) {
455
- return setCacheEntry(curFlowNode, initialType, isInitialTypeIncomplete);
455
+ return setCacheEntry(curFlowNode, initialType, !!(options === null || options === void 0 ? void 0 : options.isInitialTypeIncomplete));
456
456
  }
457
457
  if (curFlowNode.flags & codeFlowTypes_1.FlowFlags.WildcardImport) {
458
458
  const wildcardImportFlowNode = curFlowNode;
@@ -503,97 +503,112 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
503
503
  });
504
504
  }
505
505
  function getTypeFromLoopFlowNode(loopNode, cacheEntry) {
506
+ var _a;
506
507
  // The type result from one antecedent may depend on the type
507
508
  // result from another, so loop up to one time for each
508
509
  // antecedent in the loop.
509
510
  const maxAttemptCount = loopNode.antecedents.length;
510
- return preventRecursion(loopNode, () => {
511
- var _a, _b;
512
- if (cacheEntry === undefined) {
513
- // We haven't been here before, so create a new incomplete cache entry.
514
- cacheEntry = setCacheEntry(loopNode, reference ? undefined : initialType,
515
- /* isIncomplete */ true);
516
- }
517
- else if ((_a = cacheEntry.incompleteSubtypes) === null || _a === void 0 ? void 0 : _a.some((subtype) => subtype.isPending)) {
518
- // If there are pending entries that have not been evaluated even once,
519
- // treat it as incomplete.
520
- const isIncomplete = cacheEntry.incompleteSubtypes.length < loopNode.antecedents.length ||
521
- cacheEntry.incompleteSubtypes.some((subtype) => subtype.isPending && subtype.evaluationCount < maxAttemptCount);
522
- return { type: cacheEntry.type, isIncomplete };
523
- }
524
- let attemptCount = 0;
525
- while (true) {
526
- let sawIncomplete = false;
527
- let isProvenReachable = reference === undefined &&
528
- ((_b = cacheEntry.incompleteSubtypes) === null || _b === void 0 ? void 0 : _b.some((subtype) => subtype.type !== undefined));
529
- loopNode.antecedents.forEach((antecedent, index) => {
530
- var _a;
531
- // If we've trying to determine reachability and we've already proven
532
- // reachability, then we're done.
533
- if (reference === undefined && isProvenReachable) {
534
- return;
535
- }
536
- cacheEntry = getCacheEntry(loopNode);
537
- // Have we already been here (i.e. does the entry exist and is
538
- // not marked "pending")? If so, we can use the type that was already
539
- // computed if it is complete.
540
- const subtypeEntry = cacheEntry.incompleteSubtypes !== undefined &&
541
- index < cacheEntry.incompleteSubtypes.length
542
- ? cacheEntry.incompleteSubtypes[index]
543
- : undefined;
544
- if (subtypeEntry === undefined ||
545
- (!(subtypeEntry === null || subtypeEntry === void 0 ? void 0 : subtypeEntry.isPending) && (subtypeEntry === null || subtypeEntry === void 0 ? void 0 : subtypeEntry.isIncomplete))) {
546
- const entryEvaluationCount = subtypeEntry === undefined ? 0 : subtypeEntry.evaluationCount;
547
- // Set this entry to "pending" to prevent infinite recursion.
548
- // We'll mark it "not pending" below.
549
- cacheEntry = setIncompleteSubtype(loopNode, index, (_a = subtypeEntry === null || subtypeEntry === void 0 ? void 0 : subtypeEntry.type) !== null && _a !== void 0 ? _a : (reference ? undefined : initialType),
550
- /* isIncomplete */ true,
551
- /* isPending */ true, entryEvaluationCount);
552
- try {
553
- const flowTypeResult = getTypeFromFlowNode(antecedent);
554
- if (flowTypeResult.isIncomplete) {
555
- sawIncomplete = true;
556
- }
557
- cacheEntry = setIncompleteSubtype(loopNode, index, flowTypeResult.type, flowTypeResult.isIncomplete,
558
- /* isPending */ false, entryEvaluationCount + 1);
559
- }
560
- catch (e) {
561
- setIncompleteSubtype(loopNode, index, undefined,
562
- /* isIncomplete */ true,
563
- /* isPending */ false, entryEvaluationCount + 1);
564
- throw e;
511
+ if (cacheEntry === undefined) {
512
+ // We haven't been here before, so create a new incomplete cache entry.
513
+ cacheEntry = setCacheEntry(loopNode, reference ? undefined : initialType, /* isIncomplete */ true);
514
+ }
515
+ else if (cacheEntry.incompleteSubtypes &&
516
+ cacheEntry.incompleteSubtypes.length === loopNode.antecedents.length &&
517
+ cacheEntry.incompleteSubtypes.some((subtype) => subtype.isPending)) {
518
+ // If entries have been added for all antecedents and there are pending entries
519
+ // that have not been evaluated even once, treat it as incomplete.
520
+ return { type: cacheEntry.type, isIncomplete: true };
521
+ }
522
+ let attemptCount = 0;
523
+ while (true) {
524
+ let sawIncomplete = false;
525
+ let sawPending = false;
526
+ let isProvenReachable = reference === undefined &&
527
+ ((_a = cacheEntry.incompleteSubtypes) === null || _a === void 0 ? void 0 : _a.some((subtype) => subtype.type !== undefined));
528
+ loopNode.antecedents.forEach((antecedent, index) => {
529
+ var _a;
530
+ // If we've trying to determine reachability and we've already proven
531
+ // reachability, then we're done.
532
+ if (reference === undefined && isProvenReachable) {
533
+ return;
534
+ }
535
+ cacheEntry = getCacheEntry(loopNode);
536
+ // Is this entry marked "pending"? If so, we have recursed and there
537
+ // is another call on the stack that is actively evaluating this
538
+ // antecedent. Skip it here to avoid infinite recursion but note that
539
+ // we skipped a "pending" antecedent.
540
+ if (cacheEntry.incompleteSubtypes &&
541
+ index < cacheEntry.incompleteSubtypes.length &&
542
+ cacheEntry.incompleteSubtypes[index].isPending) {
543
+ sawIncomplete = true;
544
+ sawPending = true;
545
+ return;
546
+ }
547
+ // Have we already been here (i.e. does the entry exist and is
548
+ // not marked "pending")? If so, we can use the type that was already
549
+ // computed if it is complete.
550
+ const subtypeEntry = cacheEntry.incompleteSubtypes !== undefined && index < cacheEntry.incompleteSubtypes.length
551
+ ? cacheEntry.incompleteSubtypes[index]
552
+ : undefined;
553
+ if (subtypeEntry === undefined || (!(subtypeEntry === null || subtypeEntry === void 0 ? void 0 : subtypeEntry.isPending) && (subtypeEntry === null || subtypeEntry === void 0 ? void 0 : subtypeEntry.isIncomplete))) {
554
+ const entryEvaluationCount = subtypeEntry === undefined ? 0 : subtypeEntry.evaluationCount;
555
+ // Set this entry to "pending" to prevent infinite recursion.
556
+ // We'll mark it "not pending" below.
557
+ cacheEntry = setIncompleteSubtype(loopNode, index, (_a = subtypeEntry === null || subtypeEntry === void 0 ? void 0 : subtypeEntry.type) !== null && _a !== void 0 ? _a : (reference ? undefined : initialType),
558
+ /* isIncomplete */ true,
559
+ /* isPending */ true, entryEvaluationCount);
560
+ try {
561
+ const flowTypeResult = getTypeFromFlowNode(antecedent);
562
+ if (flowTypeResult.isIncomplete) {
563
+ sawIncomplete = true;
565
564
  }
565
+ cacheEntry = setIncompleteSubtype(loopNode, index, flowTypeResult.type, flowTypeResult.isIncomplete,
566
+ /* isPending */ false, entryEvaluationCount + 1);
566
567
  }
567
- if (reference === undefined && (cacheEntry === null || cacheEntry === void 0 ? void 0 : cacheEntry.type) !== undefined) {
568
- isProvenReachable = true;
568
+ catch (e) {
569
+ setIncompleteSubtype(loopNode, index, undefined,
570
+ /* isIncomplete */ true,
571
+ /* isPending */ false, entryEvaluationCount + 1);
572
+ throw e;
569
573
  }
570
- });
571
- if (isProvenReachable) {
572
- return setCacheEntry(loopNode, initialType, /* isIncomplete */ false);
573
574
  }
574
- let effectiveType = cacheEntry.type;
575
- if (sawIncomplete) {
576
- // If there is an incomplete "Unknown" type within a union type, remove
577
- // it. Otherwise we might end up resolving the cycle with a type
578
- // that includes an undesirable unknown.
579
- if (effectiveType) {
580
- const typeWithoutUnknown = (0, types_1.removeIncompleteUnknownFromUnion)(effectiveType);
581
- if (!(0, types_1.isNever)(typeWithoutUnknown)) {
582
- effectiveType = typeWithoutUnknown;
583
- }
584
- }
575
+ if (reference === undefined && (cacheEntry === null || cacheEntry === void 0 ? void 0 : cacheEntry.type) !== undefined) {
576
+ isProvenReachable = true;
585
577
  }
586
- if (!sawIncomplete || attemptCount >= maxAttemptCount) {
587
- // If we were able to evaluate a type along at least one antecedent
588
- // path, mark it as complete. If we couldn't evaluate a type along
589
- // any antecedent path, assume that some recursive call further
590
- // up the stack will be able to produce a valid type.
591
- const reportIncomplete = sawIncomplete && effectiveType === undefined;
592
- return setCacheEntry(loopNode, effectiveType, reportIncomplete);
578
+ });
579
+ if (isProvenReachable) {
580
+ // If we saw a pending entry, do not save over the top of the cache
581
+ // entry because we'll overwrite a pending evaluation.
582
+ return sawPending
583
+ ? { type: initialType, isIncomplete: false }
584
+ : setCacheEntry(loopNode, initialType, /* isIncomplete */ false);
585
+ }
586
+ let effectiveType = cacheEntry.type;
587
+ if (sawIncomplete) {
588
+ // If there is an incomplete "Unknown" type within a union type, remove
589
+ // it. Otherwise we might end up resolving the cycle with a type
590
+ // that includes an undesirable unknown.
591
+ if (effectiveType) {
592
+ const typeWithoutUnknown = (0, types_1.removeIncompleteUnknownFromUnion)(effectiveType);
593
+ if (!(0, types_1.isNever)(typeWithoutUnknown)) {
594
+ effectiveType = typeWithoutUnknown;
595
+ }
593
596
  }
594
- attemptCount++;
595
597
  }
596
- });
598
+ if (!sawIncomplete || attemptCount >= maxAttemptCount) {
599
+ // If we were able to evaluate a type along at least one antecedent
600
+ // path, mark it as complete. If we couldn't evaluate a type along
601
+ // any antecedent path, assume that some recursive call further
602
+ // up the stack will be able to produce a valid type.
603
+ const reportIncomplete = sawIncomplete && effectiveType === undefined;
604
+ // If we saw a pending entry, do not save over the top of the cache
605
+ // entry because we'll overwrite a pending evaluation.
606
+ return sawPending
607
+ ? { type: effectiveType, isIncomplete: reportIncomplete }
608
+ : setCacheEntry(loopNode, effectiveType, reportIncomplete);
609
+ }
610
+ attemptCount++;
611
+ }
597
612
  }
598
613
  function getTypeFromPreFinallyGateFlowNode(preFinallyFlowNode) {
599
614
  if (preFinallyFlowNode.isGateClosed) {
@@ -636,7 +651,7 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
636
651
  // referenced types).
637
652
  return {
638
653
  type: initialType,
639
- isIncomplete: isInitialTypeIncomplete,
654
+ isIncomplete: !!(options === null || options === void 0 ? void 0 : options.isInitialTypeIncomplete),
640
655
  };
641
656
  }
642
657
  return getTypeFromFlowNode(flowNode);
@@ -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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"}
@@ -581,7 +581,7 @@ function populateTypeVarContextBasedOnExpectedType(evaluator, type, expectedType
581
581
  if (index < expectedTypeArgs.length) {
582
582
  let expectedTypeArgValue = (0, typeUtils_1.transformPossibleRecursiveTypeAlias)(expectedTypeArgs[index]);
583
583
  if (liveTypeVarScopes) {
584
- expectedTypeArgValue = (0, typeUtils_1.transformExpectedTypeForConstructor)(expectedTypeArgValue, typeVarContext, liveTypeVarScopes);
584
+ expectedTypeArgValue = (0, typeUtils_1.transformExpectedTypeForConstructor)(expectedTypeArgValue, liveTypeVarScopes);
585
585
  }
586
586
  if (expectedTypeArgValue) {
587
587
  typeVarContext.setTypeVarType(targetTypeVar, types_1.TypeVarType.getVariance(typeVar) === 3 /* Covariant */ ? undefined : expectedTypeArgValue, types_1.TypeVarType.getVariance(typeVar) === 4 /* Contravariant */