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

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 (78) hide show
  1. package/dist/analyzer/backgroundAnalysisProgram.d.ts +4 -2
  2. package/dist/analyzer/backgroundAnalysisProgram.js +7 -2
  3. package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
  4. package/dist/analyzer/binder.js +18 -1
  5. package/dist/analyzer/binder.js.map +1 -1
  6. package/dist/analyzer/cacheManager.d.ts +14 -0
  7. package/dist/analyzer/cacheManager.js +65 -0
  8. package/dist/analyzer/cacheManager.js.map +1 -0
  9. package/dist/analyzer/checker.d.ts +1 -0
  10. package/dist/analyzer/checker.js +35 -0
  11. package/dist/analyzer/checker.js.map +1 -1
  12. package/dist/analyzer/codeFlowEngine.d.ts +6 -1
  13. package/dist/analyzer/codeFlowEngine.js +102 -87
  14. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  15. package/dist/analyzer/constraintSolver.js +1 -1
  16. package/dist/analyzer/constraintSolver.js.map +1 -1
  17. package/dist/analyzer/importResolver.d.ts +1 -0
  18. package/dist/analyzer/importResolver.js +3 -2
  19. package/dist/analyzer/importResolver.js.map +1 -1
  20. package/dist/analyzer/packageTypeVerifier.js +4 -4
  21. package/dist/analyzer/packageTypeVerifier.js.map +1 -1
  22. package/dist/analyzer/program.d.ts +10 -2
  23. package/dist/analyzer/program.js +67 -44
  24. package/dist/analyzer/program.js.map +1 -1
  25. package/dist/analyzer/service.d.ts +2 -0
  26. package/dist/analyzer/service.js +12 -3
  27. package/dist/analyzer/service.js.map +1 -1
  28. package/dist/analyzer/sourceFile.d.ts +1 -1
  29. package/dist/analyzer/sourceFile.js +4 -4
  30. package/dist/analyzer/sourceFile.js.map +1 -1
  31. package/dist/analyzer/sourceMapper.d.ts +6 -3
  32. package/dist/analyzer/sourceMapper.js +38 -14
  33. package/dist/analyzer/sourceMapper.js.map +1 -1
  34. package/dist/analyzer/sourceMapperUtils.d.ts +9 -0
  35. package/dist/analyzer/sourceMapperUtils.js +45 -0
  36. package/dist/analyzer/sourceMapperUtils.js.map +1 -0
  37. package/dist/analyzer/typeEvaluator.js +59 -42
  38. package/dist/analyzer/typeEvaluator.js.map +1 -1
  39. package/dist/analyzer/typeUtils.d.ts +1 -1
  40. package/dist/analyzer/typeUtils.js +4 -36
  41. package/dist/analyzer/typeUtils.js.map +1 -1
  42. package/dist/analyzer/types.d.ts +3 -1
  43. package/dist/analyzer/types.js +6 -0
  44. package/dist/analyzer/types.js.map +1 -1
  45. package/dist/backgroundAnalysisBase.js +1 -0
  46. package/dist/backgroundAnalysisBase.js.map +1 -1
  47. package/dist/languageServerBase.d.ts +3 -1
  48. package/dist/languageServerBase.js +12 -8
  49. package/dist/languageServerBase.js.map +1 -1
  50. package/dist/localization/localize.d.ts +4 -0
  51. package/dist/localization/localize.js +2 -0
  52. package/dist/localization/localize.js.map +1 -1
  53. package/dist/localization/package.nls.en-us.json +2 -0
  54. package/dist/parser/parser.js +21 -10
  55. package/dist/parser/parser.js.map +1 -1
  56. package/dist/tests/fourslash/findDefinitions.builtinClass.fourslash.js +8 -6
  57. package/dist/tests/fourslash/findDefinitions.builtinClass.fourslash.js.map +1 -1
  58. package/dist/tests/harness/fourslash/runner.js +1 -0
  59. package/dist/tests/harness/fourslash/runner.js.map +1 -1
  60. package/dist/tests/harness/fourslash/testState.d.ts +1 -0
  61. package/dist/tests/harness/fourslash/testState.js +3 -0
  62. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  63. package/dist/tests/parser.test.js +22 -0
  64. package/dist/tests/parser.test.js.map +1 -1
  65. package/dist/tests/sourceMapperUtils.test.d.ts +1 -0
  66. package/dist/tests/sourceMapperUtils.test.js +103 -0
  67. package/dist/tests/sourceMapperUtils.test.js.map +1 -0
  68. package/dist/tests/testUtils.js +3 -1
  69. package/dist/tests/testUtils.js.map +1 -1
  70. package/dist/tests/typeEvaluator2.test.js +8 -0
  71. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  72. package/dist/tests/typeEvaluator3.test.js +16 -0
  73. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  74. package/dist/tests/typeEvaluator4.test.js +4 -0
  75. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  76. package/dist/workspaceMap.js +2 -3
  77. package/dist/workspaceMap.js.map +1 -1
  78. package/package.json +1 -1
@@ -29,7 +29,6 @@ var __importStar = (this && this.__importStar) || function (mod) {
29
29
  };
30
30
  Object.defineProperty(exports, "__esModule", { value: true });
31
31
  exports.Program = exports.MaxWorkspaceIndexFileCount = void 0;
32
- const v8_1 = require("v8");
33
32
  const vscode_languageserver_1 = require("vscode-languageserver");
34
33
  const vscode_languageserver_types_1 = require("vscode-languageserver-types");
35
34
  const cancellationUtils_1 = require("../common/cancellationUtils");
@@ -49,6 +48,7 @@ const documentSymbolCollector_1 = require("../languageService/documentSymbolColl
49
48
  const referencesProvider_1 = require("../languageService/referencesProvider");
50
49
  const renameModuleProvider_1 = require("../languageService/renameModuleProvider");
51
50
  const AnalyzerNodeInfo = __importStar(require("./analyzerNodeInfo"));
51
+ const cacheManager_1 = require("./cacheManager");
52
52
  const circularDependency_1 = require("./circularDependency");
53
53
  const parseTreeUtils_1 = require("./parseTreeUtils");
54
54
  const scopeUtils_1 = require("./scopeUtils");
@@ -68,7 +68,7 @@ exports.MaxWorkspaceIndexFileCount = 2000;
68
68
  // Opened - temporarily opened in the editor
69
69
  // Shadowed - implementation file that shadows a type stub file
70
70
  class Program {
71
- constructor(initialImportResolver, initialConfigOptions, console, _extension, logTracker, _disableChecker) {
71
+ constructor(initialImportResolver, initialConfigOptions, console, _extension, logTracker, _disableChecker, cacheManager) {
72
72
  this._extension = _extension;
73
73
  this._disableChecker = _disableChecker;
74
74
  this._sourceFileList = [];
@@ -131,8 +131,13 @@ class Program {
131
131
  this._logTracker = logTracker !== null && logTracker !== void 0 ? logTracker : new logTracker_1.LogTracker(console, 'FG');
132
132
  this._importResolver = initialImportResolver;
133
133
  this._configOptions = initialConfigOptions;
134
+ this._cacheManager = cacheManager !== null && cacheManager !== void 0 ? cacheManager : new cacheManager_1.CacheManager();
135
+ this._cacheManager.registerCacheOwner(this);
134
136
  this._createNewEvaluator();
135
137
  }
138
+ dispose() {
139
+ this._cacheManager.unregisterCacheOwner(this);
140
+ }
136
141
  get evaluator() {
137
142
  return this._evaluator;
138
143
  }
@@ -371,12 +376,16 @@ class Program {
371
376
  return sourceFileInfo.sourceFile;
372
377
  }
373
378
  getBoundSourceFile(filePath) {
379
+ var _a;
380
+ return (_a = this.getBoundSourceFileInfo(filePath)) === null || _a === void 0 ? void 0 : _a.sourceFile;
381
+ }
382
+ getBoundSourceFileInfo(filePath) {
374
383
  const sourceFileInfo = this._getSourceFileInfoFromPath(filePath);
375
384
  if (!sourceFileInfo) {
376
385
  return undefined;
377
386
  }
378
387
  this._bindFile(sourceFileInfo);
379
- return this.getSourceFile(filePath);
388
+ return sourceFileInfo;
380
389
  }
381
390
  // Performs parsing and analysis of any source files in the program
382
391
  // that require it. If a limit time is specified, the operation
@@ -710,7 +719,20 @@ class Program {
710
719
  builtinsScope =
711
720
  (_b = (_a = getScopeIfAvailable(fileToAnalyze.chainedSourceFile)) !== null && _a !== void 0 ? _a : getScopeIfAvailable(fileToAnalyze.ipythonDisplayImport)) !== null && _b !== void 0 ? _b : getScopeIfAvailable(fileToAnalyze.builtinsImport);
712
721
  }
713
- fileToAnalyze.sourceFile.bind(this._configOptions, this._lookUpImport, builtinsScope);
722
+ let futureImports = fileToAnalyze.sourceFile.getParseResults().futureImports;
723
+ if (fileToAnalyze.chainedSourceFile) {
724
+ futureImports = this._getEffectiveFutureImports(futureImports, fileToAnalyze.chainedSourceFile);
725
+ }
726
+ fileToAnalyze.effectiveFutureImports = futureImports.size > 0 ? futureImports : undefined;
727
+ fileToAnalyze.sourceFile.bind(this._configOptions, this._lookUpImport, builtinsScope, futureImports);
728
+ }
729
+ _getEffectiveFutureImports(futureImports, chainedSourceFile) {
730
+ var _a;
731
+ const effectiveFutureImports = new Set(futureImports);
732
+ (_a = chainedSourceFile.effectiveFutureImports) === null || _a === void 0 ? void 0 : _a.forEach((value) => {
733
+ effectiveFutureImports.add(value);
734
+ });
735
+ return effectiveFutureImports;
714
736
  }
715
737
  // Build a map of all modules within this program and the module-
716
738
  // level scope that contains the symbol table for the module.
@@ -1006,7 +1028,7 @@ class Program {
1006
1028
  }
1007
1029
  this._bindFile(sourceFileInfo);
1008
1030
  const execEnv = this._configOptions.findExecEnvironment(filePath);
1009
- return sourceFileInfo.sourceFile.getDefinitionsForPosition(this._createSourceMapper(execEnv), position, filter, this._evaluator, token);
1031
+ return sourceFileInfo.sourceFile.getDefinitionsForPosition(this._createSourceMapper(execEnv, sourceFileInfo), position, filter, this._evaluator, token);
1010
1032
  });
1011
1033
  }
1012
1034
  getTypeDefinitionsForPosition(filePath, position, token) {
@@ -1017,7 +1039,7 @@ class Program {
1017
1039
  }
1018
1040
  this._bindFile(sourceFileInfo);
1019
1041
  const execEnv = this._configOptions.findExecEnvironment(filePath);
1020
- return sourceFileInfo.sourceFile.getTypeDefinitionsForPosition(this._createSourceMapper(execEnv, /* mapCompiled */ false, /* preferStubs */ true), position, this._evaluator, filePath, token);
1042
+ return sourceFileInfo.sourceFile.getTypeDefinitionsForPosition(this._createSourceMapper(execEnv, sourceFileInfo, /* mapCompiled */ false, /* preferStubs */ true), position, this._evaluator, filePath, token);
1021
1043
  });
1022
1044
  }
1023
1045
  reportReferencesForPosition(filePath, position, includeDeclaration, reporter, token) {
@@ -1029,7 +1051,7 @@ class Program {
1029
1051
  const invokedFromUserFile = (0, sourceFileInfoUtils_1.isUserCode)(sourceFileInfo);
1030
1052
  this._bindFile(sourceFileInfo);
1031
1053
  const execEnv = this._configOptions.findExecEnvironment(filePath);
1032
- const referencesResult = sourceFileInfo.sourceFile.getDeclarationForPosition(this._createSourceMapper(execEnv), position, this._evaluator, reporter, token);
1054
+ const referencesResult = sourceFileInfo.sourceFile.getDeclarationForPosition(this._createSourceMapper(execEnv, sourceFileInfo), position, this._evaluator, reporter, token);
1033
1055
  if (!referencesResult) {
1034
1056
  return;
1035
1057
  }
@@ -1159,7 +1181,7 @@ class Program {
1159
1181
  }
1160
1182
  this._bindFile(sourceFileInfo);
1161
1183
  const execEnv = this._configOptions.findExecEnvironment(filePath);
1162
- return sourceFileInfo.sourceFile.getHoverForPosition(this._createSourceMapper(execEnv, /* mapCompiled */ true), position, format, this._evaluator, token);
1184
+ return sourceFileInfo.sourceFile.getHoverForPosition(this._createSourceMapper(execEnv, sourceFileInfo, /* mapCompiled */ true), position, format, this._evaluator, token);
1163
1185
  });
1164
1186
  }
1165
1187
  getDocumentHighlight(filePath, position, token) {
@@ -1170,7 +1192,7 @@ class Program {
1170
1192
  }
1171
1193
  this._bindFile(sourceFileInfo);
1172
1194
  const execEnv = this._configOptions.findExecEnvironment(filePath);
1173
- return sourceFileInfo.sourceFile.getDocumentHighlight(this._createSourceMapper(execEnv), position, this._evaluator, token);
1195
+ return sourceFileInfo.sourceFile.getDocumentHighlight(this._createSourceMapper(execEnv, sourceFileInfo), position, this._evaluator, token);
1174
1196
  });
1175
1197
  }
1176
1198
  getSignatureHelpForPosition(filePath, position, format, token) {
@@ -1181,7 +1203,7 @@ class Program {
1181
1203
  }
1182
1204
  this._bindFile(sourceFileInfo);
1183
1205
  const execEnv = this._configOptions.findExecEnvironment(filePath);
1184
- return sourceFileInfo.sourceFile.getSignatureHelpForPosition(position, this._createSourceMapper(execEnv, /* mapCompiled */ true), this._evaluator, format, token);
1206
+ return sourceFileInfo.sourceFile.getSignatureHelpForPosition(position, this._createSourceMapper(execEnv, sourceFileInfo, /* mapCompiled */ true), this._evaluator, format, token);
1185
1207
  });
1186
1208
  }
1187
1209
  async getCompletionsForPosition(filePath, position, workspacePath, options, nameMap, libraryMap, token) {
@@ -1195,7 +1217,7 @@ class Program {
1195
1217
  const result = this._runEvaluatorWithCancellationToken(token, () => {
1196
1218
  this._bindFile(sourceFileInfo);
1197
1219
  const execEnv = this._configOptions.findExecEnvironment(filePath);
1198
- return sourceFileInfo.sourceFile.getCompletionsForPosition(position, workspacePath, this._configOptions, this._importResolver, this._lookUpImport, this._evaluator, options, this._createSourceMapper(execEnv, /* mapCompiled */ true), nameMap, libraryMap, () => this._buildModuleSymbolsMap(sourceFileInfo, !!libraryMap,
1220
+ return sourceFileInfo.sourceFile.getCompletionsForPosition(position, workspacePath, this._configOptions, this._importResolver, this._lookUpImport, this._evaluator, options, this._createSourceMapper(execEnv, sourceFileInfo, /* mapCompiled */ true), nameMap, libraryMap, () => this._buildModuleSymbolsMap(sourceFileInfo, !!libraryMap,
1199
1221
  /* includeIndexUserSymbols */ false, token), token);
1200
1222
  });
1201
1223
  ls.add(`found ${(_a = result === null || result === void 0 ? void 0 : result.completionMap.size) !== null && _a !== void 0 ? _a : 'null'} items`);
@@ -1227,7 +1249,7 @@ class Program {
1227
1249
  }
1228
1250
  this._bindFile(sourceFileInfo);
1229
1251
  const execEnv = this._configOptions.findExecEnvironment(filePath);
1230
- sourceFileInfo.sourceFile.resolveCompletionItem(this._configOptions, this._importResolver, this._lookUpImport, this._evaluator, options, this._createSourceMapper(execEnv, /* mapCompiled */ true), nameMap, libraryMap, () => this._buildModuleSymbolsMap(sourceFileInfo, !!libraryMap,
1252
+ sourceFileInfo.sourceFile.resolveCompletionItem(this._configOptions, this._importResolver, this._lookUpImport, this._evaluator, options, this._createSourceMapper(execEnv, sourceFileInfo, /* mapCompiled */ true), nameMap, libraryMap, () => this._buildModuleSymbolsMap(sourceFileInfo, !!libraryMap,
1231
1253
  /* includeIndexUserSymbols */ false, token), completionItem, token);
1232
1254
  });
1233
1255
  }
@@ -1272,7 +1294,7 @@ class Program {
1272
1294
  }
1273
1295
  const execEnv = this._configOptions.findExecEnvironment(filePath);
1274
1296
  const declarations = documentSymbolCollector_1.DocumentSymbolCollector.getDeclarationsForNode(node, this._evaluator,
1275
- /* resolveLocalNames */ false, token, this._createSourceMapper(execEnv));
1297
+ /* resolveLocalNames */ false, token, this._createSourceMapper(execEnv, fileInfo));
1276
1298
  const renameModuleProvider = renameModuleProvider_1.RenameModuleProvider.createForSymbol(this._importResolver, this._configOptions, this._evaluator, filePath, newFilePath, declarations, token);
1277
1299
  if (!renameModuleProvider) {
1278
1300
  return undefined;
@@ -1402,7 +1424,7 @@ class Program {
1402
1424
  }
1403
1425
  this._bindFile(sourceFileInfo);
1404
1426
  const execEnv = this._configOptions.findExecEnvironment(filePath);
1405
- const referencesResult = sourceFileInfo.sourceFile.getDeclarationForPosition(this._createSourceMapper(execEnv), position, this._evaluator, undefined, token);
1427
+ const referencesResult = sourceFileInfo.sourceFile.getDeclarationForPosition(this._createSourceMapper(execEnv, sourceFileInfo), position, this._evaluator, undefined, token);
1406
1428
  if (!referencesResult || referencesResult.declarations.length === 0) {
1407
1429
  return undefined;
1408
1430
  }
@@ -1416,7 +1438,7 @@ class Program {
1416
1438
  }
1417
1439
  this._bindFile(sourceFileInfo);
1418
1440
  const execEnv = this._configOptions.findExecEnvironment(filePath);
1419
- const referencesResult = sourceFileInfo.sourceFile.getDeclarationForPosition(this._createSourceMapper(execEnv), position, this._evaluator, undefined, token);
1441
+ const referencesResult = sourceFileInfo.sourceFile.getDeclarationForPosition(this._createSourceMapper(execEnv, sourceFileInfo), position, this._evaluator, undefined, token);
1420
1442
  if (!referencesResult || referencesResult.declarations.length === 0) {
1421
1443
  return undefined;
1422
1444
  }
@@ -1443,7 +1465,7 @@ class Program {
1443
1465
  }
1444
1466
  this._bindFile(sourceFileInfo);
1445
1467
  const execEnv = this._configOptions.findExecEnvironment(filePath);
1446
- const referencesResult = sourceFileInfo.sourceFile.getDeclarationForPosition(this._createSourceMapper(execEnv), position, this._evaluator, undefined, token);
1468
+ const referencesResult = sourceFileInfo.sourceFile.getDeclarationForPosition(this._createSourceMapper(execEnv, sourceFileInfo), position, this._evaluator, undefined, token);
1447
1469
  if (!referencesResult || referencesResult.declarations.length === 0) {
1448
1470
  return undefined;
1449
1471
  }
@@ -1458,8 +1480,24 @@ class Program {
1458
1480
  this._bindFile(sourceFileInfo);
1459
1481
  return sourceFileInfo.sourceFile.performQuickAction(command, args, token);
1460
1482
  }
1461
- test_createSourceMapper(execEnv) {
1462
- return this._createSourceMapper(execEnv, /* mapCompiled */ false);
1483
+ // Returns a value from 0 to 1 (or more) indicating how "full" the cache is
1484
+ // relative to some predetermined high-water mark. We'll compute this value
1485
+ // based on two easy-to-compute metrics: the number of entries in the type
1486
+ // cache and the number of parsed files.
1487
+ getCacheUsage() {
1488
+ const typeCacheEntryCount = this._evaluator.getTypeCacheEntryCount();
1489
+ const entryCountRatio = typeCacheEntryCount / 750000;
1490
+ const fileCountRatio = this._parsedFileCount / 1000;
1491
+ return Math.max(entryCountRatio, fileCountRatio);
1492
+ }
1493
+ // Discards any cached information associated with this program.
1494
+ emptyCache() {
1495
+ this._createNewEvaluator();
1496
+ this._discardCachedParseResults();
1497
+ this._parsedFileCount = 0;
1498
+ }
1499
+ test_createSourceMapper(execEnv, from) {
1500
+ return this._createSourceMapper(execEnv, /*from*/ from, /* mapCompiled */ false);
1463
1501
  }
1464
1502
  _getRenameSymbolMode(sourceFileInfo, referencesResult, isDefaultWorkspace) {
1465
1503
  // We have 2 different cases
@@ -1535,34 +1573,19 @@ class Program {
1535
1573
  }
1536
1574
  }
1537
1575
  _handleMemoryHighUsage() {
1538
- const typeCacheEntryCount = this._evaluator.getTypeCacheEntryCount();
1539
- const convertToMB = (bytes) => {
1540
- return `${Math.round(bytes / (1024 * 1024))}MB`;
1541
- };
1542
- // If the type cache size has exceeded a high-water mark, query the heap usage.
1543
- // Don't bother doing this until we hit this point because the heap usage may not
1544
- // drop immediately after we empty the cache due to garbage collection timing.
1545
- if (typeCacheEntryCount > 750000 || this._parsedFileCount > 1000) {
1546
- const heapStats = (0, v8_1.getHeapStatistics)();
1547
- if (this._configOptions.verboseOutput) {
1548
- this._console.info(`Heap stats: ` +
1549
- `total_heap_size=${convertToMB(heapStats.total_heap_size)}, ` +
1550
- `used_heap_size=${convertToMB(heapStats.used_heap_size)}, ` +
1551
- `total_physical_size=${convertToMB(heapStats.total_physical_size)}, ` +
1552
- `total_available_size=${convertToMB(heapStats.total_available_size)}, ` +
1553
- `heap_size_limit=${convertToMB(heapStats.heap_size_limit)}`);
1554
- }
1576
+ const cacheUsage = this._cacheManager.getCacheUsage();
1577
+ // If the total cache has exceeded 75%, determine whether we should empty
1578
+ // the cache.
1579
+ if (cacheUsage > 0.75) {
1580
+ const usedHeapRatio = this._cacheManager.getUsedHeapRatio(this._configOptions.verboseOutput ? this._console : undefined);
1555
1581
  // The type cache uses a Map, which has an absolute limit of 2^24 entries
1556
1582
  // before it will fail. If we cross the 95% mark, we'll empty the cache.
1557
1583
  const absoluteMaxCacheEntryCount = (1 << 24) * 0.9;
1584
+ const typeCacheEntryCount = this._evaluator.getTypeCacheEntryCount();
1558
1585
  // If we use more than 90% of the heap size limit, avoid a crash
1559
1586
  // by emptying the type cache.
1560
- if (typeCacheEntryCount > absoluteMaxCacheEntryCount ||
1561
- heapStats.used_heap_size > heapStats.heap_size_limit * 0.9) {
1562
- this._console.info(`Emptying type cache to avoid heap overflow. Used ${convertToMB(heapStats.used_heap_size)} out of ${convertToMB(heapStats.heap_size_limit)} (${typeCacheEntryCount} cache entries).`);
1563
- this._createNewEvaluator();
1564
- this._discardCachedParseResults();
1565
- this._parsedFileCount = 0;
1587
+ if (typeCacheEntryCount > absoluteMaxCacheEntryCount || usedHeapRatio > 0.9) {
1588
+ this._cacheManager.emptyCache(this._console);
1566
1589
  }
1567
1590
  }
1568
1591
  }
@@ -1589,7 +1612,7 @@ class Program {
1589
1612
  // An unexpected exception occurred, potentially leaving the current evaluator
1590
1613
  // in an inconsistent state. Discard it and replace it with a fresh one. It is
1591
1614
  // Cancellation exceptions are known to handle this correctly.
1592
- if (!(e instanceof cancellationUtils_1.OperationCanceledException)) {
1615
+ if (!cancellationUtils_1.OperationCanceledException.is(e)) {
1593
1616
  this._createNewEvaluator();
1594
1617
  }
1595
1618
  throw e;
@@ -1695,7 +1718,7 @@ class Program {
1695
1718
  }
1696
1719
  return false;
1697
1720
  }
1698
- _createSourceMapper(execEnv, mapCompiled, preferStubs) {
1721
+ _createSourceMapper(execEnv, from, mapCompiled, preferStubs) {
1699
1722
  const sourceMapper = new sourceMapper_1.SourceMapper(this._importResolver, execEnv, this._evaluator, (stubFilePath, implFilePath) => {
1700
1723
  const stubFileInfo = this._getSourceFileInfoFromPath(stubFilePath);
1701
1724
  if (!stubFileInfo) {
@@ -1703,7 +1726,7 @@ class Program {
1703
1726
  }
1704
1727
  this._addShadowedFile(stubFileInfo, implFilePath);
1705
1728
  return this.getBoundSourceFile(implFilePath);
1706
- }, (f) => this.getBoundSourceFile(f), mapCompiled !== null && mapCompiled !== void 0 ? mapCompiled : false, preferStubs !== null && preferStubs !== void 0 ? preferStubs : false);
1729
+ }, (f) => this.getBoundSourceFileInfo(f), mapCompiled !== null && mapCompiled !== void 0 ? mapCompiled : false, preferStubs !== null && preferStubs !== void 0 ? preferStubs : false, from);
1707
1730
  return sourceMapper;
1708
1731
  }
1709
1732
  _isImportAllowed(importer, importResult, isImportStubFile) {
@@ -1 +1 @@
1
- {"version":3,"file":"program.js","sourceRoot":"","sources":["../../../src/analyzer/program.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"program.js","sourceRoot":"","sources":["../../../src/analyzer/program.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,7 @@ import { ReferenceCallback } from '../languageService/referencesProvider';
21
21
  import { SignatureHelpResults } from '../languageService/signatureHelpProvider';
22
22
  import { AnalysisCompleteCallback } from './analysis';
23
23
  import { BackgroundAnalysisProgram, BackgroundAnalysisProgramFactory } from './backgroundAnalysisProgram';
24
+ import { CacheManager } from './cacheManager';
24
25
  import { ImportResolver, ImportResolverFactory } from './importResolver';
25
26
  import { MaxAnalysisTime, Program } from './program';
26
27
  import { IPythonMode } from './sourceFile';
@@ -38,6 +39,7 @@ export interface AnalyzerServiceOptions {
38
39
  backgroundAnalysisProgramFactory?: BackgroundAnalysisProgramFactory;
39
40
  cancellationProvider?: CancellationProvider;
40
41
  libraryReanalysisTimeProvider?: () => number;
42
+ cacheManager?: CacheManager;
41
43
  }
42
44
  export declare class AnalyzerService {
43
45
  private _instanceName;