@zzzen/pyright-internal 1.2.0-dev.20220925 → 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 (64) hide show
  1. package/dist/analyzer/analyzerFileInfo.d.ts +1 -1
  2. package/dist/analyzer/analyzerFileInfo.js +1 -1
  3. package/dist/analyzer/analyzerFileInfo.js.map +1 -1
  4. package/dist/analyzer/binder.js +41 -24
  5. package/dist/analyzer/binder.js.map +1 -1
  6. package/dist/analyzer/cacheManager.d.ts +14 -0
  7. package/dist/analyzer/cacheManager.js +63 -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 +17 -0
  11. package/dist/analyzer/checker.js.map +1 -1
  12. package/dist/analyzer/codeFlowEngine.d.ts +8 -1
  13. package/dist/analyzer/codeFlowEngine.js +106 -85
  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/packageTypeVerifier.js +4 -4
  18. package/dist/analyzer/packageTypeVerifier.js.map +1 -1
  19. package/dist/analyzer/program.d.ts +5 -0
  20. package/dist/analyzer/program.js +62 -44
  21. package/dist/analyzer/program.js.map +1 -1
  22. package/dist/analyzer/service.js +1 -0
  23. package/dist/analyzer/service.js.map +1 -1
  24. package/dist/analyzer/sourceFile.d.ts +1 -1
  25. package/dist/analyzer/sourceFile.js +5 -5
  26. package/dist/analyzer/sourceFile.js.map +1 -1
  27. package/dist/analyzer/typeEvaluator.js +58 -40
  28. package/dist/analyzer/typeEvaluator.js.map +1 -1
  29. package/dist/analyzer/typeEvaluatorTypes.d.ts +5 -0
  30. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  31. package/dist/analyzer/typeStubWriter.js +6 -6
  32. package/dist/analyzer/typeStubWriter.js.map +1 -1
  33. package/dist/analyzer/typeUtils.d.ts +1 -1
  34. package/dist/analyzer/typeUtils.js +4 -31
  35. package/dist/analyzer/typeUtils.js.map +1 -1
  36. package/dist/analyzer/typedDicts.js +6 -6
  37. package/dist/analyzer/typedDicts.js.map +1 -1
  38. package/dist/analyzer/types.js +1 -1
  39. package/dist/analyzer/types.js.map +1 -1
  40. package/dist/commands/commandController.d.ts +1 -0
  41. package/dist/commands/commandController.js +5 -0
  42. package/dist/commands/commandController.js.map +1 -1
  43. package/dist/commands/commands.d.ts +7 -1
  44. package/dist/commands/commands.js +6 -0
  45. package/dist/commands/commands.js.map +1 -1
  46. package/dist/commands/dumpFileDebugInfoCommand.d.ts +8 -0
  47. package/dist/commands/dumpFileDebugInfoCommand.js +983 -0
  48. package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -0
  49. package/dist/languageServerBase.js +6 -6
  50. package/dist/languageServerBase.js.map +1 -1
  51. package/dist/parser/parser.d.ts +2 -2
  52. package/dist/parser/parser.js +40 -29
  53. package/dist/parser/parser.js.map +1 -1
  54. package/dist/tests/parser.test.js +22 -0
  55. package/dist/tests/parser.test.js.map +1 -1
  56. package/dist/tests/testUtils.js +4 -2
  57. package/dist/tests/testUtils.js.map +1 -1
  58. package/dist/tests/typeEvaluator2.test.js +4 -0
  59. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  60. package/dist/tests/typeEvaluator3.test.js +16 -0
  61. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  62. package/dist/workspaceMap.js +2 -0
  63. package/dist/workspaceMap.js.map +1 -1
  64. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"packageTypeVerifier.js","sourceRoot":"","sources":["../../../src/analyzer/packageTypeVerifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"packageTypeVerifier.js","sourceRoot":"","sources":["../../../src/analyzer/packageTypeVerifier.ts"],"names":[],"mappings":"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"}
@@ -34,6 +34,7 @@ export interface SourceFileInfo {
34
34
  builtinsImport?: SourceFileInfo | undefined;
35
35
  ipythonDisplayImport?: SourceFileInfo | undefined;
36
36
  chainedSourceFile?: SourceFileInfo | undefined;
37
+ effectiveFutureImports?: Set<string>;
37
38
  isTracked: boolean;
38
39
  isOpenByClient: boolean;
39
40
  imports: SourceFileInfo[];
@@ -72,6 +73,7 @@ export declare class Program {
72
73
  private _parsedFileCount;
73
74
  private _preCheckCallback;
74
75
  constructor(initialImportResolver: ImportResolver, initialConfigOptions: ConfigOptions, console?: ConsoleInterface, _extension?: LanguageServiceExtension | undefined, logTracker?: LogTracker, _disableChecker?: boolean | undefined);
76
+ dispose(): void;
75
77
  get evaluator(): TypeEvaluator | undefined;
76
78
  setConfigOptions(configOptions: ConfigOptions): void;
77
79
  setImportResolver(importResolver: ImportResolver): void;
@@ -110,6 +112,7 @@ export declare class Program {
110
112
  private _createNewEvaluator;
111
113
  private _parseFile;
112
114
  private _bindFile;
115
+ private _getEffectiveFutureImports;
113
116
  private _lookUpImport;
114
117
  private _buildModuleSymbolsMap;
115
118
  private _shouldCheckFile;
@@ -144,6 +147,8 @@ export declare class Program {
144
147
  getIncomingCallsForPosition(filePath: string, position: Position, token: CancellationToken): CallHierarchyIncomingCall[] | undefined;
145
148
  getOutgoingCallsForPosition(filePath: string, position: Position, token: CancellationToken): CallHierarchyOutgoingCall[] | undefined;
146
149
  performQuickAction(filePath: string, command: string, args: any[], token: CancellationToken): TextEditAction[] | undefined;
150
+ getCacheUsage(): number;
151
+ emptyCache(): void;
147
152
  test_createSourceMapper(execEnv: ExecutionEnvironment): SourceMapper;
148
153
  private _getRenameSymbolMode;
149
154
  private _supportRenameModule;
@@ -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");
@@ -131,8 +131,12 @@ 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
+ cacheManager_1.CacheManager.registerCacheOwner(this);
134
135
  this._createNewEvaluator();
135
136
  }
137
+ dispose() {
138
+ cacheManager_1.CacheManager.unregisterCacheOwner(this);
139
+ }
136
140
  get evaluator() {
137
141
  return this._evaluator;
138
142
  }
@@ -261,7 +265,7 @@ class Program {
261
265
  ? this._getSourceFileInfoFromPath(chainedFilePath)
262
266
  : undefined;
263
267
  sourceFileInfo.sourceFile.markDirty();
264
- this._markFileDirtyRecursive(sourceFileInfo, new Map());
268
+ this._markFileDirtyRecursive(sourceFileInfo, new Set());
265
269
  }
266
270
  }
267
271
  setFileClosed(filePath) {
@@ -275,7 +279,7 @@ class Program {
275
279
  // people who use diagnosticMode Workspace.
276
280
  if (sourceFileInfo.sourceFile.didContentsChangeOnDisk()) {
277
281
  sourceFileInfo.sourceFile.markDirty();
278
- this._markFileDirtyRecursive(sourceFileInfo, new Map());
282
+ this._markFileDirtyRecursive(sourceFileInfo, new Set());
279
283
  }
280
284
  }
281
285
  return this._removeUnneededFiles();
@@ -284,7 +288,7 @@ class Program {
284
288
  return this._getSourceFileInfoFromPath(filePath) !== undefined;
285
289
  }
286
290
  markAllFilesDirty(evenIfContentsAreSame, indexingNeeded = true) {
287
- const markDirtyMap = new Map();
291
+ const markDirtySet = new Set();
288
292
  this._sourceFileList.forEach((sourceFileInfo) => {
289
293
  if (evenIfContentsAreSame) {
290
294
  sourceFileInfo.sourceFile.markDirty(indexingNeeded);
@@ -293,15 +297,15 @@ class Program {
293
297
  sourceFileInfo.sourceFile.markDirty(indexingNeeded);
294
298
  // Mark any files that depend on this file as dirty
295
299
  // also. This will retrigger analysis of these other files.
296
- this._markFileDirtyRecursive(sourceFileInfo, markDirtyMap);
300
+ this._markFileDirtyRecursive(sourceFileInfo, markDirtySet);
297
301
  }
298
302
  });
299
- if (markDirtyMap.size > 0) {
303
+ if (markDirtySet.size > 0) {
300
304
  this._createNewEvaluator();
301
305
  }
302
306
  }
303
307
  markFilesDirty(filePaths, evenIfContentsAreSame, indexingNeeded = true) {
304
- const markDirtyMap = new Map();
308
+ const markDirtySet = new Set();
305
309
  filePaths.forEach((filePath) => {
306
310
  const sourceFileInfo = this._getSourceFileInfoFromPath(filePath);
307
311
  if (sourceFileInfo) {
@@ -320,11 +324,11 @@ class Program {
320
324
  sourceFileInfo.sourceFile.markDirty(indexingNeeded);
321
325
  // Mark any files that depend on this file as dirty
322
326
  // also. This will retrigger analysis of these other files.
323
- this._markFileDirtyRecursive(sourceFileInfo, markDirtyMap);
327
+ this._markFileDirtyRecursive(sourceFileInfo, markDirtySet);
324
328
  }
325
329
  }
326
330
  });
327
- if (markDirtyMap.size > 0) {
331
+ if (markDirtySet.size > 0) {
328
332
  this._createNewEvaluator();
329
333
  }
330
334
  }
@@ -673,8 +677,8 @@ class Program {
673
677
  fileToParse.isTracked = false;
674
678
  // Mark any files that depend on this file as dirty
675
679
  // also. This will retrigger analysis of these other files.
676
- const markDirtyMap = new Map();
677
- this._markFileDirtyRecursive(fileToParse, markDirtyMap);
680
+ const markDirtySet = new Set();
681
+ this._markFileDirtyRecursive(fileToParse, markDirtySet);
678
682
  // Invalidate the import resolver's cache as well.
679
683
  this._importResolver.invalidateCache();
680
684
  }
@@ -710,7 +714,20 @@ class Program {
710
714
  builtinsScope =
711
715
  (_b = (_a = getScopeIfAvailable(fileToAnalyze.chainedSourceFile)) !== null && _a !== void 0 ? _a : getScopeIfAvailable(fileToAnalyze.ipythonDisplayImport)) !== null && _b !== void 0 ? _b : getScopeIfAvailable(fileToAnalyze.builtinsImport);
712
716
  }
713
- fileToAnalyze.sourceFile.bind(this._configOptions, this._lookUpImport, builtinsScope);
717
+ let futureImports = fileToAnalyze.sourceFile.getParseResults().futureImports;
718
+ if (fileToAnalyze.chainedSourceFile) {
719
+ futureImports = this._getEffectiveFutureImports(futureImports, fileToAnalyze.chainedSourceFile);
720
+ }
721
+ fileToAnalyze.effectiveFutureImports = futureImports.size > 0 ? futureImports : undefined;
722
+ fileToAnalyze.sourceFile.bind(this._configOptions, this._lookUpImport, builtinsScope, futureImports);
723
+ }
724
+ _getEffectiveFutureImports(futureImports, chainedSourceFile) {
725
+ var _a;
726
+ const effectiveFutureImports = new Set(futureImports);
727
+ (_a = chainedSourceFile.effectiveFutureImports) === null || _a === void 0 ? void 0 : _a.forEach((value) => {
728
+ effectiveFutureImports.add(value);
729
+ });
730
+ return effectiveFutureImports;
714
731
  }
715
732
  // Build a map of all modules within this program and the module-
716
733
  // level scope that contains the symbol table for the module.
@@ -874,17 +891,17 @@ class Program {
874
891
  (0, debug_1.assert)(firstSourceFile !== undefined);
875
892
  firstSourceFile.sourceFile.addCircularDependency(circDep);
876
893
  }
877
- _markFileDirtyRecursive(sourceFileInfo, markMap, forceRebinding = false) {
894
+ _markFileDirtyRecursive(sourceFileInfo, markSet, forceRebinding = false) {
878
895
  const filePath = (0, pathUtils_1.normalizePathCase)(this._fs, sourceFileInfo.sourceFile.getFilePath());
879
896
  // Don't mark it again if it's already been visited.
880
- if (!markMap.has(filePath)) {
897
+ if (!markSet.has(filePath)) {
881
898
  sourceFileInfo.sourceFile.markReanalysisRequired(forceRebinding);
882
- markMap.set(filePath, true);
899
+ markSet.add(filePath);
883
900
  sourceFileInfo.importedBy.forEach((dep) => {
884
901
  // Changes on chained source file can change symbols in the symbol table and
885
902
  // dependencies on the dependent file. Force rebinding.
886
903
  const forceRebinding = dep.chainedSourceFile === sourceFileInfo;
887
- this._markFileDirtyRecursive(dep, markMap, forceRebinding);
904
+ this._markFileDirtyRecursive(dep, markSet, forceRebinding);
888
905
  });
889
906
  }
890
907
  }
@@ -1458,6 +1475,22 @@ class Program {
1458
1475
  this._bindFile(sourceFileInfo);
1459
1476
  return sourceFileInfo.sourceFile.performQuickAction(command, args, token);
1460
1477
  }
1478
+ // Returns a value from 0 to 1 (or more) indicating how "full" the cache is
1479
+ // relative to some predetermined high-water mark. We'll compute this value
1480
+ // based on two easy-to-compute metrics: the number of entries in the type
1481
+ // cache and the number of parsed files.
1482
+ getCacheUsage() {
1483
+ const typeCacheEntryCount = this._evaluator.getTypeCacheEntryCount();
1484
+ const entryCountRatio = typeCacheEntryCount / 750000;
1485
+ const fileCountRatio = this._parsedFileCount / 1000;
1486
+ return Math.max(entryCountRatio, fileCountRatio);
1487
+ }
1488
+ // Discards any cached information associated with this program.
1489
+ emptyCache() {
1490
+ this._createNewEvaluator();
1491
+ this._discardCachedParseResults();
1492
+ this._parsedFileCount = 0;
1493
+ }
1461
1494
  test_createSourceMapper(execEnv) {
1462
1495
  return this._createSourceMapper(execEnv, /* mapCompiled */ false);
1463
1496
  }
@@ -1535,34 +1568,19 @@ class Program {
1535
1568
  }
1536
1569
  }
1537
1570
  _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
- }
1571
+ const cacheUsage = cacheManager_1.CacheManager.getCacheUsage();
1572
+ // If the total cache has exceeded 75%, determine whether we should empty
1573
+ // the cache.
1574
+ if (cacheUsage > 0.75) {
1575
+ const usedHeapRatio = cacheManager_1.CacheManager.getUsedHeapRatio(this._configOptions.verboseOutput ? this._console : undefined);
1555
1576
  // The type cache uses a Map, which has an absolute limit of 2^24 entries
1556
1577
  // before it will fail. If we cross the 95% mark, we'll empty the cache.
1557
1578
  const absoluteMaxCacheEntryCount = (1 << 24) * 0.9;
1579
+ const typeCacheEntryCount = this._evaluator.getTypeCacheEntryCount();
1558
1580
  // If we use more than 90% of the heap size limit, avoid a crash
1559
1581
  // 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;
1582
+ if (typeCacheEntryCount > absoluteMaxCacheEntryCount || usedHeapRatio > 0.9) {
1583
+ cacheManager_1.CacheManager.emptyCache(this._console);
1566
1584
  }
1567
1585
  }
1568
1586
  }
@@ -1676,20 +1694,20 @@ class Program {
1676
1694
  // by a tracked file but then abandoned. The import cycle
1677
1695
  // will keep the entire group "alive" if we don't detect
1678
1696
  // the condition and garbage collect them.
1679
- return this._isImportNeededRecursive(fileInfo, new Map());
1697
+ return this._isImportNeededRecursive(fileInfo, new Set());
1680
1698
  }
1681
- _isImportNeededRecursive(fileInfo, recursionMap) {
1699
+ _isImportNeededRecursive(fileInfo, recursionSet) {
1682
1700
  if (fileInfo.isTracked || fileInfo.isOpenByClient || fileInfo.shadows.length > 0) {
1683
1701
  return true;
1684
1702
  }
1685
1703
  const filePath = (0, pathUtils_1.normalizePathCase)(this._fs, fileInfo.sourceFile.getFilePath());
1686
1704
  // Avoid infinite recursion.
1687
- if (recursionMap.has(filePath)) {
1705
+ if (recursionSet.has(filePath)) {
1688
1706
  return false;
1689
1707
  }
1690
- recursionMap.set(filePath, true);
1708
+ recursionSet.add(filePath);
1691
1709
  for (const importerInfo of fileInfo.importedBy) {
1692
- if (this._isImportNeededRecursive(importerInfo, recursionMap)) {
1710
+ if (this._isImportNeededRecursive(importerInfo, recursionSet)) {
1693
1711
  return true;
1694
1712
  }
1695
1713
  }