@zzzen/pyright-internal 1.2.0-dev.20240331 → 1.2.0-dev.20240407

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 (170) hide show
  1. package/dist/analyzer/analyzerFileInfo.d.ts +0 -1
  2. package/dist/analyzer/analyzerFileInfo.js.map +1 -1
  3. package/dist/analyzer/binder.js +11 -7
  4. package/dist/analyzer/binder.js.map +1 -1
  5. package/dist/analyzer/cacheManager.d.ts +11 -0
  6. package/dist/analyzer/cacheManager.js +59 -2
  7. package/dist/analyzer/cacheManager.js.map +1 -1
  8. package/dist/analyzer/checker.d.ts +2 -2
  9. package/dist/analyzer/checker.js +8 -8
  10. package/dist/analyzer/checker.js.map +1 -1
  11. package/dist/analyzer/codeFlowEngine.js +14 -2
  12. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  13. package/dist/analyzer/codeFlowTypes.d.ts +1 -0
  14. package/dist/analyzer/codeFlowTypes.js.map +1 -1
  15. package/dist/analyzer/constraintSolver.js +20 -3
  16. package/dist/analyzer/constraintSolver.js.map +1 -1
  17. package/dist/analyzer/constructorTransform.js +2 -2
  18. package/dist/analyzer/constructorTransform.js.map +1 -1
  19. package/dist/analyzer/dataClasses.js +5 -6
  20. package/dist/analyzer/dataClasses.js.map +1 -1
  21. package/dist/analyzer/enums.js +7 -3
  22. package/dist/analyzer/enums.js.map +1 -1
  23. package/dist/analyzer/functionTransform.js +1 -1
  24. package/dist/analyzer/functionTransform.js.map +1 -1
  25. package/dist/analyzer/importStatementUtils.d.ts +6 -6
  26. package/dist/analyzer/importStatementUtils.js +42 -42
  27. package/dist/analyzer/importStatementUtils.js.map +1 -1
  28. package/dist/analyzer/namedTuples.js +1 -1
  29. package/dist/analyzer/namedTuples.js.map +1 -1
  30. package/dist/analyzer/packageTypeVerifier.js +6 -6
  31. package/dist/analyzer/packageTypeVerifier.js.map +1 -1
  32. package/dist/analyzer/parseTreeUtils.d.ts +6 -5
  33. package/dist/analyzer/parseTreeUtils.js +12 -13
  34. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  35. package/dist/analyzer/patternMatching.js +1 -1
  36. package/dist/analyzer/patternMatching.js.map +1 -1
  37. package/dist/analyzer/program.d.ts +4 -3
  38. package/dist/analyzer/program.js +21 -12
  39. package/dist/analyzer/program.js.map +1 -1
  40. package/dist/analyzer/properties.js +10 -10
  41. package/dist/analyzer/properties.js.map +1 -1
  42. package/dist/analyzer/protocols.js +5 -5
  43. package/dist/analyzer/protocols.js.map +1 -1
  44. package/dist/analyzer/service.d.ts +3 -2
  45. package/dist/analyzer/service.js +7 -4
  46. package/dist/analyzer/service.js.map +1 -1
  47. package/dist/analyzer/sourceFile.d.ts +5 -3
  48. package/dist/analyzer/sourceFile.js +108 -71
  49. package/dist/analyzer/sourceFile.js.map +1 -1
  50. package/dist/analyzer/sourceFileInfoUtils.js +1 -1
  51. package/dist/analyzer/sourceMapper.js +6 -6
  52. package/dist/analyzer/symbol.d.ts +4 -1
  53. package/dist/analyzer/symbol.js +10 -0
  54. package/dist/analyzer/symbol.js.map +1 -1
  55. package/dist/analyzer/symbolUtils.d.ts +1 -0
  56. package/dist/analyzer/symbolUtils.js +11 -1
  57. package/dist/analyzer/symbolUtils.js.map +1 -1
  58. package/dist/analyzer/typeDocStringUtils.js +1 -1
  59. package/dist/analyzer/typeDocStringUtils.js.map +1 -1
  60. package/dist/analyzer/typeEvaluator.js +106 -49
  61. package/dist/analyzer/typeEvaluator.js.map +1 -1
  62. package/dist/analyzer/typeGuards.js +2 -2
  63. package/dist/analyzer/typeGuards.js.map +1 -1
  64. package/dist/analyzer/typeStubWriter.js +1 -1
  65. package/dist/analyzer/typeStubWriter.js.map +1 -1
  66. package/dist/analyzer/typeUtils.js +13 -16
  67. package/dist/analyzer/typeUtils.js.map +1 -1
  68. package/dist/analyzer/typedDicts.js +29 -20
  69. package/dist/analyzer/typedDicts.js.map +1 -1
  70. package/dist/analyzer/types.d.ts +5 -1
  71. package/dist/analyzer/types.js +20 -0
  72. package/dist/analyzer/types.js.map +1 -1
  73. package/dist/backgroundAnalysis.d.ts +1 -0
  74. package/dist/backgroundAnalysis.js +5 -1
  75. package/dist/backgroundAnalysis.js.map +1 -1
  76. package/dist/backgroundAnalysisBase.d.ts +2 -1
  77. package/dist/backgroundAnalysisBase.js +5 -0
  78. package/dist/backgroundAnalysisBase.js.map +1 -1
  79. package/dist/backgroundThreadBase.d.ts +1 -0
  80. package/dist/backgroundThreadBase.js +5 -1
  81. package/dist/backgroundThreadBase.js.map +1 -1
  82. package/dist/commands/dumpFileDebugInfoCommand.js +4 -4
  83. package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
  84. package/dist/common/extensibility.d.ts +3 -2
  85. package/dist/common/extensibility.js.map +1 -1
  86. package/dist/common/serviceProviderExtensions.d.ts +2 -0
  87. package/dist/common/serviceProviderExtensions.js +4 -0
  88. package/dist/common/serviceProviderExtensions.js.map +1 -1
  89. package/dist/common/textEditTracker.d.ts +5 -5
  90. package/dist/common/textEditTracker.js +33 -33
  91. package/dist/common/textEditTracker.js.map +1 -1
  92. package/dist/common/workspaceEditUtils.js +2 -2
  93. package/dist/common/workspaceEditUtils.js.map +1 -1
  94. package/dist/languageServerBase.d.ts +4 -4
  95. package/dist/languageServerBase.js +1 -1
  96. package/dist/languageServerBase.js.map +1 -1
  97. package/dist/languageService/autoImporter.d.ts +3 -3
  98. package/dist/languageService/autoImporter.js +2 -1
  99. package/dist/languageService/autoImporter.js.map +1 -1
  100. package/dist/languageService/callHierarchyProvider.js +2 -2
  101. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  102. package/dist/languageService/completionProvider.d.ts +2 -2
  103. package/dist/languageService/completionProvider.js +8 -9
  104. package/dist/languageService/completionProvider.js.map +1 -1
  105. package/dist/languageService/definitionProvider.js +1 -1
  106. package/dist/languageService/definitionProvider.js.map +1 -1
  107. package/dist/languageService/documentHighlightProvider.js +2 -2
  108. package/dist/languageService/documentHighlightProvider.js.map +1 -1
  109. package/dist/languageService/documentSymbolCollector.js +1 -1
  110. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  111. package/dist/languageService/documentSymbolProvider.js +1 -1
  112. package/dist/languageService/documentSymbolProvider.js.map +1 -1
  113. package/dist/languageService/hoverProvider.js +2 -2
  114. package/dist/languageService/hoverProvider.js.map +1 -1
  115. package/dist/languageService/importSorter.d.ts +2 -2
  116. package/dist/languageService/importSorter.js +1 -1
  117. package/dist/languageService/importSorter.js.map +1 -1
  118. package/dist/languageService/referencesProvider.d.ts +4 -4
  119. package/dist/languageService/referencesProvider.js +2 -2
  120. package/dist/languageService/referencesProvider.js.map +1 -1
  121. package/dist/languageService/signatureHelpProvider.js +2 -2
  122. package/dist/languageService/signatureHelpProvider.js.map +1 -1
  123. package/dist/languageService/symbolIndexer.d.ts +2 -2
  124. package/dist/languageService/symbolIndexer.js +1 -1
  125. package/dist/languageService/symbolIndexer.js.map +1 -1
  126. package/dist/languageService/workspaceSymbolProvider.js +1 -1
  127. package/dist/languageService/workspaceSymbolProvider.js.map +1 -1
  128. package/dist/localization/localize.d.ts +3 -0
  129. package/dist/localization/localize.js +1 -0
  130. package/dist/localization/localize.js.map +1 -1
  131. package/dist/localization/package.nls.en-us.json +1 -0
  132. package/dist/nodeMain.d.ts +1 -1
  133. package/dist/nodeMain.js +2 -2
  134. package/dist/nodeMain.js.map +1 -1
  135. package/dist/parser/parser.d.ts +7 -4
  136. package/dist/parser/parser.js +7 -5
  137. package/dist/parser/parser.js.map +1 -1
  138. package/dist/server.d.ts +3 -3
  139. package/dist/server.js +3 -3
  140. package/dist/server.js.map +1 -1
  141. package/dist/tests/cacheManager.test.js +35 -0
  142. package/dist/tests/cacheManager.test.js.map +1 -1
  143. package/dist/tests/chainedSourceFiles.test.js +7 -7
  144. package/dist/tests/chainedSourceFiles.test.js.map +1 -1
  145. package/dist/tests/harness/fourslash/testState.d.ts +4 -4
  146. package/dist/tests/harness/fourslash/testState.js +6 -5
  147. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  148. package/dist/tests/importStatementUtils.test.js +4 -4
  149. package/dist/tests/importStatementUtils.test.js.map +1 -1
  150. package/dist/tests/ipythonMode.test.js +1 -1
  151. package/dist/tests/ipythonMode.test.js.map +1 -1
  152. package/dist/tests/lsp/languageServer.js +1 -1
  153. package/dist/tests/lsp/languageServer.js.map +1 -1
  154. package/dist/tests/lsp/languageServerTestUtils.d.ts +1 -1
  155. package/dist/tests/parser.test.js +14 -14
  156. package/dist/tests/parser.test.js.map +1 -1
  157. package/dist/tests/signatureHelp.test.js +1 -1
  158. package/dist/tests/signatureHelp.test.js.map +1 -1
  159. package/dist/tests/testStateUtils.js +5 -3
  160. package/dist/tests/testStateUtils.js.map +1 -1
  161. package/dist/tests/testUtils.d.ts +4 -8
  162. package/dist/tests/testUtils.js +4 -7
  163. package/dist/tests/testUtils.js.map +1 -1
  164. package/dist/tests/textEditUtil.test.js +3 -3
  165. package/dist/tests/textEditUtil.test.js.map +1 -1
  166. package/dist/tests/typeEvaluator1.test.js +1 -1
  167. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  168. package/dist/tests/typeEvaluator3.test.js +10 -4
  169. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  170. package/package.json +1 -1
@@ -13,14 +13,42 @@ exports.CacheManager = void 0;
13
13
  const debug_1 = require("../common/debug");
14
14
  const memUtils_1 = require("../common/memUtils");
15
15
  class CacheManager {
16
- constructor() {
16
+ constructor(_maxWorkers = 0) {
17
+ this._maxWorkers = _maxWorkers;
17
18
  this._pausedCount = 0;
18
19
  this._cacheOwners = [];
20
+ this._sharedUsagePosition = 0;
19
21
  this._lastHeapStats = Date.now();
20
22
  }
21
23
  registerCacheOwner(provider) {
22
24
  this._cacheOwners.push(provider);
23
25
  }
26
+ addWorker(index, worker) {
27
+ // Send the sharedArrayBuffer to the worker so it can be used
28
+ // to keep track of heap usage on all threads.
29
+ const buffer = this._getSharedUsageBuffer();
30
+ if (buffer) {
31
+ // The SharedArrayBuffer needs to be separate from data in order for it
32
+ // to be marshalled correctly.
33
+ worker.postMessage({ requestType: 'cacheUsageBuffer', sharedUsageBuffer: buffer, data: index.toString() });
34
+ worker.on('exit', () => {
35
+ const view = new Float64Array(buffer);
36
+ view[index] = 0;
37
+ });
38
+ }
39
+ }
40
+ handleCachedUsageBufferMessage(msg) {
41
+ if (msg.requestType === 'cacheUsageBuffer') {
42
+ const index = parseInt(msg.data || '0');
43
+ const buffer = msg.sharedUsageBuffer;
44
+ // Index of zero is reserved for the main thread so if
45
+ // the index isn't passed, don't save the shared buffer.
46
+ if (buffer && index) {
47
+ this._sharedUsageBuffer = buffer;
48
+ this._sharedUsagePosition = index;
49
+ }
50
+ }
51
+ }
24
52
  unregisterCacheOwner(provider) {
25
53
  const index = this._cacheOwners.findIndex((p) => p === provider);
26
54
  if (index < 0) {
@@ -61,21 +89,50 @@ class CacheManager {
61
89
  // Returns a ratio of used bytes to total bytes.
62
90
  getUsedHeapRatio(console) {
63
91
  const heapStats = (0, memUtils_1.getHeapStatistics)();
92
+ let usage = this._getTotalHeapUsage(heapStats);
64
93
  if (console && Date.now() - this._lastHeapStats > 1000) {
65
94
  // This can fill up the user's console, so we only do it once per second.
66
95
  this._lastHeapStats = Date.now();
67
96
  console.info(`Heap stats: ` +
68
97
  `total_heap_size=${this._convertToMB(heapStats.total_heap_size)}, ` +
69
98
  `used_heap_size=${this._convertToMB(heapStats.used_heap_size)}, ` +
99
+ `cross_worker_used_heap_size=${this._convertToMB(usage)}, ` +
70
100
  `total_physical_size=${this._convertToMB(heapStats.total_physical_size)}, ` +
71
101
  `total_available_size=${this._convertToMB(heapStats.total_available_size)}, ` +
72
102
  `heap_size_limit=${this._convertToMB(heapStats.heap_size_limit)}`);
73
103
  }
74
- return heapStats.used_heap_size / heapStats.heap_size_limit;
104
+ // Total usage seems to be off by about 5%, so we'll add that back in
105
+ // to make the ratio more accurate. (200MB at 4GB)
106
+ usage += usage * 0.05;
107
+ return usage / heapStats.heap_size_limit;
75
108
  }
76
109
  _convertToMB(bytes) {
77
110
  return `${Math.round(bytes / (1024 * 1024))}MB`;
78
111
  }
112
+ _getSharedUsageBuffer() {
113
+ try {
114
+ if (!this._sharedUsageBuffer && this._maxWorkers > 0) {
115
+ // Allocate enough space for the workers and the main thread.
116
+ this._sharedUsageBuffer = new SharedArrayBuffer(8 * (this._maxWorkers + 1));
117
+ }
118
+ return this._sharedUsageBuffer;
119
+ }
120
+ catch {
121
+ // SharedArrayBuffer is not supported.
122
+ return undefined;
123
+ }
124
+ }
125
+ _getTotalHeapUsage(heapStats) {
126
+ // If the SharedArrayBuffer is supported, we'll use it to to get usage
127
+ // from other threads and add that to our own
128
+ const buffer = this._getSharedUsageBuffer();
129
+ if (buffer) {
130
+ const view = new Float64Array(buffer);
131
+ view[this._sharedUsagePosition] = heapStats.used_heap_size;
132
+ return view.reduce((a, b) => a + b, 0);
133
+ }
134
+ return heapStats.used_heap_size;
135
+ }
79
136
  }
80
137
  exports.CacheManager = CacheManager;
81
138
  (function (CacheManager) {
@@ -1 +1 @@
1
- {"version":3,"file":"cacheManager.js","sourceRoot":"","sources":["../../../../../src/analyzer/cacheManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cacheManager.js","sourceRoot":"","sources":["../../../../../src/analyzer/cacheManager.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { AssertNode, AssignmentExpressionNode, AssignmentNode, AugmentedAssignmentNode, AwaitNode, BinaryOperationNode, CallNode, CaseNode, ClassNode, DelNode, DictionaryNode, ErrorNode, ExceptNode, ForNode, FormatStringNode, FunctionNode, GlobalNode, IfNode, ImportAsNode, ImportFromAsNode, ImportFromNode, IndexNode, LambdaNode, ListComprehensionIfNode, ListComprehensionNode, ListNode, MatchNode, MemberAccessNode, ModuleNameNode, NameNode, NonlocalNode, ParseNode, PatternClassNode, RaiseNode, ReturnNode, SetNode, SliceNode, StatementListNode, StringListNode, SuiteNode, TernaryNode, TryNode, TupleNode, TypeAliasNode, TypeAnnotationNode, TypeParameterListNode, TypeParameterNode, UnaryOperationNode, UnpackNode, WhileNode, WithNode, YieldFromNode, YieldNode } from '../parser/parseNodes';
2
- import { ParseResults } from '../parser/parser';
2
+ import { ParserOutput } from '../parser/parser';
3
3
  import { ImportResolver } from './importResolver';
4
4
  import { ParseTreeWalker } from './parseTreeWalker';
5
5
  import { SourceMapper } from './sourceMapper';
@@ -14,7 +14,7 @@ export declare class Checker extends ParseTreeWalker {
14
14
  private _isUnboundCheckSuppressed;
15
15
  private _scopedNodes;
16
16
  private _typeParameterLists;
17
- constructor(_importResolver: ImportResolver, _evaluator: TypeEvaluator, parseResults: ParseResults, _sourceMapper: SourceMapper, _dependentFiles?: ParseResults[] | undefined);
17
+ constructor(_importResolver: ImportResolver, _evaluator: TypeEvaluator, parseResults: ParserOutput, _sourceMapper: SourceMapper, _dependentFiles?: ParserOutput[] | undefined);
18
18
  check(): void;
19
19
  walk(node: ParseNode): void;
20
20
  visitSuite(node: SuiteNode): boolean;
@@ -3423,7 +3423,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
3423
3423
  // Validates that any overridden member variables are not marked
3424
3424
  // as Final in parent classes.
3425
3425
  _validateFinalMemberOverrides(classType) {
3426
- classType.details.fields.forEach((localSymbol, name) => {
3426
+ types_1.ClassType.getSymbolTable(classType).forEach((localSymbol, name) => {
3427
3427
  const parentSymbol = (0, typeUtils_1.lookUpClassMember)(classType, name, 1 /* MemberAccessFlags.SkipOriginalClass */);
3428
3428
  if (parentSymbol && (0, types_1.isInstantiableClass)(parentSymbol.classType) && !SymbolNameUtils.isPrivateName(name)) {
3429
3429
  // Did the parent class explicitly declare the variable as final?
@@ -3475,7 +3475,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
3475
3475
  initMemberTypeResult = undefined;
3476
3476
  }
3477
3477
  }
3478
- classType.details.fields.forEach((symbol, name) => {
3478
+ types_1.ClassType.getSymbolTable(classType).forEach((symbol, name) => {
3479
3479
  var _a;
3480
3480
  // Enum members don't have type annotations.
3481
3481
  if (symbol.getTypedDeclarations().length > 0) {
@@ -3553,7 +3553,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
3553
3553
  const initOnlySymbolMap = new Map();
3554
3554
  types_1.ClassType.getReverseMro(classType).forEach((mroClass) => {
3555
3555
  if ((0, types_1.isClass)(mroClass) && types_1.ClassType.isDataClass(mroClass)) {
3556
- mroClass.details.fields.forEach((symbol, name) => {
3556
+ types_1.ClassType.getSymbolTable(mroClass).forEach((symbol, name) => {
3557
3557
  if (symbol.isInitVar()) {
3558
3558
  initOnlySymbolMap.set(name, symbol);
3559
3559
  }
@@ -3665,7 +3665,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
3665
3665
  if (types_1.ClassType.isFinal(classType)) {
3666
3666
  (0, typeUtils_1.getProtocolSymbolsRecursive)(classType, abstractSymbols, 2048 /* ClassTypeFlags.SupportsAbstractMethods */);
3667
3667
  }
3668
- classType.details.fields.forEach((localSymbol, name) => {
3668
+ types_1.ClassType.getSymbolTable(classType).forEach((localSymbol, name) => {
3669
3669
  abstractSymbols.delete(name);
3670
3670
  // This applies only to instance members.
3671
3671
  if (!localSymbol.isInstanceMember()) {
@@ -3833,7 +3833,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
3833
3833
  if (types_1.ClassType.isDataClass(classType)) {
3834
3834
  return;
3835
3835
  }
3836
- classType.details.fields.forEach((symbol, name) => {
3836
+ types_1.ClassType.getSymbolTable(classType).forEach((symbol, name) => {
3837
3837
  const decls = symbol.getDeclarations();
3838
3838
  const isDefinedBySlots = decls.some((decl) => decl.type === 1 /* DeclarationType.Variable */ && decl.isDefinedBySlots);
3839
3839
  if (isDefinedBySlots) {
@@ -4080,7 +4080,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
4080
4080
  const overrideSymbol = overrideClassAndSymbol.symbol;
4081
4081
  let overrideType = this._evaluator.getEffectiveTypeOfSymbol(overrideSymbol);
4082
4082
  overrideType = (0, typeUtils_1.partiallySpecializeType)(overrideType, overrideClassAndSymbol.classType);
4083
- const childOverrideSymbol = childClassType.details.fields.get(memberName);
4083
+ const childOverrideSymbol = types_1.ClassType.getSymbolTable(childClassType).get(memberName);
4084
4084
  const childOverrideType = childOverrideSymbol
4085
4085
  ? this._evaluator.getEffectiveTypeOfSymbol(childOverrideSymbol)
4086
4086
  : undefined;
@@ -4208,7 +4208,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
4208
4208
  // are decorated. For example, if the first overload is not marked @final
4209
4209
  // but subsequent ones are, an error should be reported.
4210
4210
  _validateOverloadDecoratorConsistency(classType) {
4211
- classType.details.fields.forEach((symbol, name) => {
4211
+ types_1.ClassType.getSymbolTable(classType).forEach((symbol, name) => {
4212
4212
  const primaryDecl = (0, symbolUtils_1.getLastTypedDeclaredForSymbol)(symbol);
4213
4213
  if (!primaryDecl || primaryDecl.type !== 5 /* DeclarationType.Function */) {
4214
4214
  return;
@@ -4331,7 +4331,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
4331
4331
  // types as the original method. Also marks the class as abstract if one
4332
4332
  // or more abstract methods are not overridden.
4333
4333
  _validateBaseClassOverrides(classType) {
4334
- classType.details.fields.forEach((symbol, name) => {
4334
+ types_1.ClassType.getSymbolTable(classType).forEach((symbol, name) => {
4335
4335
  // Private symbols do not need to match in type since their
4336
4336
  // names are mangled, and subclasses can't access the value in
4337
4337
  // the parent class.