@zzzen/pyright-internal 1.2.0-dev.20260621 → 1.2.0-dev.20260628

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 (113) hide show
  1. package/dist/analyzer/codeFlowEngine.js +6 -0
  2. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  3. package/dist/analyzer/docStringUtils.d.ts +1 -0
  4. package/dist/analyzer/docStringUtils.js +78 -0
  5. package/dist/analyzer/docStringUtils.js.map +1 -1
  6. package/dist/analyzer/importResolver.js +69 -4
  7. package/dist/analyzer/importResolver.js.map +1 -1
  8. package/dist/analyzer/importStatementUtils.js +19 -1
  9. package/dist/analyzer/importStatementUtils.js.map +1 -1
  10. package/dist/analyzer/parseTreeUtils.js +8 -0
  11. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  12. package/dist/analyzer/patternMatching.js +44 -0
  13. package/dist/analyzer/patternMatching.js.map +1 -1
  14. package/dist/analyzer/program.js +6 -1
  15. package/dist/analyzer/program.js.map +1 -1
  16. package/dist/analyzer/pythonPathUtils.js +2 -2
  17. package/dist/analyzer/pythonPathUtils.js.map +1 -1
  18. package/dist/analyzer/staticExpressions.js +91 -19
  19. package/dist/analyzer/staticExpressions.js.map +1 -1
  20. package/dist/analyzer/typeEvaluator.js +53 -61
  21. package/dist/analyzer/typeEvaluator.js.map +1 -1
  22. package/dist/analyzer/typeEvaluatorTypes.d.ts +1 -0
  23. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  24. package/dist/analyzer/typeGuards.js +52 -4
  25. package/dist/analyzer/typeGuards.js.map +1 -1
  26. package/dist/common/docStringService.d.ts +2 -0
  27. package/dist/common/docStringService.js +5 -1
  28. package/dist/common/docStringService.js.map +1 -1
  29. package/dist/common/fullAccessHost.d.ts +2 -1
  30. package/dist/common/fullAccessHost.js +43 -9
  31. package/dist/common/fullAccessHost.js.map +1 -1
  32. package/dist/common/host.d.ts +2 -2
  33. package/dist/common/host.js +1 -1
  34. package/dist/common/host.js.map +1 -1
  35. package/dist/common/uri/fileUri.d.ts +1 -0
  36. package/dist/common/uri/fileUri.js +20 -0
  37. package/dist/common/uri/fileUri.js.map +1 -1
  38. package/dist/common/uri/memoization.js +5 -1
  39. package/dist/common/uri/memoization.js.map +1 -1
  40. package/dist/common/uri/uriUtils.d.ts +2 -0
  41. package/dist/common/uri/uriUtils.js +22 -0
  42. package/dist/common/uri/uriUtils.js.map +1 -1
  43. package/dist/languageServerBase.js +6 -1
  44. package/dist/languageServerBase.js.map +1 -1
  45. package/dist/languageService/completionProvider.d.ts +6 -0
  46. package/dist/languageService/completionProvider.js +194 -46
  47. package/dist/languageService/completionProvider.js.map +1 -1
  48. package/dist/languageService/completionProviderUtils.d.ts +2 -0
  49. package/dist/languageService/completionProviderUtils.js.map +1 -1
  50. package/dist/languageService/documentSymbolCollector.d.ts +15 -1
  51. package/dist/languageService/documentSymbolCollector.js +64 -41
  52. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  53. package/dist/languageService/hoverProvider.js +22 -0
  54. package/dist/languageService/hoverProvider.js.map +1 -1
  55. package/dist/languageService/importStatementCandidates.d.ts +16 -0
  56. package/dist/languageService/importStatementCandidates.js +100 -0
  57. package/dist/languageService/importStatementCandidates.js.map +1 -0
  58. package/dist/languageService/referencesProvider.d.ts +16 -9
  59. package/dist/languageService/referencesProvider.js +188 -32
  60. package/dist/languageService/referencesProvider.js.map +1 -1
  61. package/dist/languageService/renameProvider.d.ts +7 -2
  62. package/dist/languageService/renameProvider.js +45 -17
  63. package/dist/languageService/renameProvider.js.map +1 -1
  64. package/dist/localization/localize.d.ts +6 -0
  65. package/dist/localization/localize.js +4 -0
  66. package/dist/localization/localize.js.map +1 -1
  67. package/dist/localization/package.nls.en-us.json +3 -0
  68. package/dist/parser/parser.js +9 -0
  69. package/dist/parser/parser.js.map +1 -1
  70. package/dist/readonlyAugmentedFileSystem.js +13 -6
  71. package/dist/readonlyAugmentedFileSystem.js.map +1 -1
  72. package/dist/tests/checker.test.js +4 -0
  73. package/dist/tests/checker.test.js.map +1 -1
  74. package/dist/tests/completions.test.js +118 -9
  75. package/dist/tests/completions.test.js.map +1 -1
  76. package/dist/tests/docStringReturnExtraction.test.d.ts +1 -0
  77. package/dist/tests/docStringReturnExtraction.test.js +125 -0
  78. package/dist/tests/docStringReturnExtraction.test.js.map +1 -0
  79. package/dist/tests/fourslash/completions.call.unpackedGenericTypedDict.fourslash.d.ts +1 -0
  80. package/dist/tests/fourslash/completions.call.unpackedGenericTypedDict.fourslash.js +35 -0
  81. package/dist/tests/fourslash/completions.call.unpackedGenericTypedDict.fourslash.js.map +1 -0
  82. package/dist/tests/fourslash/completions.keywords.expressionContext.fourslash.d.ts +1 -0
  83. package/dist/tests/fourslash/completions.keywords.expressionContext.fourslash.js +86 -0
  84. package/dist/tests/fourslash/completions.keywords.expressionContext.fourslash.js.map +1 -0
  85. package/dist/tests/fourslash/diagnostics.missingModuleSource.compiledModule.fourslash.d.ts +1 -0
  86. package/dist/tests/fourslash/diagnostics.missingModuleSource.compiledModule.fourslash.js +122 -0
  87. package/dist/tests/fourslash/diagnostics.missingModuleSource.compiledModule.fourslash.js.map +1 -0
  88. package/dist/tests/harness/testAccessHost.d.ts +1 -1
  89. package/dist/tests/harness/testAccessHost.js +1 -1
  90. package/dist/tests/harness/testAccessHost.js.map +1 -1
  91. package/dist/tests/importResolver.test.js +33 -0
  92. package/dist/tests/importResolver.test.js.map +1 -1
  93. package/dist/tests/importStatementUtils.test.js +92 -0
  94. package/dist/tests/importStatementUtils.test.js.map +1 -1
  95. package/dist/tests/lsp/languageServerTestUtils.d.ts +1 -1
  96. package/dist/tests/lsp/languageServerTestUtils.js +1 -1
  97. package/dist/tests/lsp/languageServerTestUtils.js.map +1 -1
  98. package/dist/tests/parser.test.js +18 -0
  99. package/dist/tests/parser.test.js.map +1 -1
  100. package/dist/tests/pyrightFileSystem.test.js +25 -0
  101. package/dist/tests/pyrightFileSystem.test.js.map +1 -1
  102. package/dist/tests/signatureHelp.test.js +73 -0
  103. package/dist/tests/signatureHelp.test.js.map +1 -1
  104. package/dist/tests/typeEvaluator1.test.js +4 -0
  105. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  106. package/dist/tests/typeEvaluator2.test.js +6 -0
  107. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  108. package/dist/tests/typeEvaluator4.test.js +22 -0
  109. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  110. package/dist/tests/typeEvaluator8.test.js +23 -21
  111. package/dist/tests/typeEvaluator8.test.js.map +1 -1
  112. package/dist/types.d.ts +1 -0
  113. package/package.json +4 -4
@@ -60,7 +60,12 @@ const textRange_1 = require("../common/textRange");
60
60
  const documentSymbolCollector_1 = require("./documentSymbolCollector");
61
61
  const navigationUtils_1 = require("./navigationUtils");
62
62
  class ReferencesResult {
63
- constructor(requiresGlobalSearch, nodeAtOffset, symbolNames, declarations, useCase, providers, _reporter) {
63
+ constructor(requiresGlobalSearch, nodeAtOffset, symbolNames,
64
+ // Invariant: this array only ever grows, and only via `mergeSeedDeclarations`. Its `length` is
65
+ // reused as a free monotonic "seed version" for the per-file watermark skip in
66
+ // `collectWorkspaceReferences`, so anything that appends here for a non-seed reason would
67
+ // silently bump that version and drop needed re-walks. Do not push to it from elsewhere.
68
+ declarations, useCase, providers, _reporter) {
64
69
  this.requiresGlobalSearch = requiresGlobalSearch;
65
70
  this.nodeAtOffset = nodeAtOffset;
66
71
  this.symbolNames = symbolNames;
@@ -113,42 +118,39 @@ class ReferencesResult {
113
118
  }
114
119
  exports.ReferencesResult = ReferencesResult;
115
120
  class FindReferencesTreeWalker {
116
- constructor(_program, _fileUri, _referencesResult, _includeDeclaration, _cancellationToken, _createDocumentRange = FindReferencesTreeWalker.createDocumentRange) {
121
+ constructor(_program, _fileUri, _referencesResult, _includeDeclaration, _cancellationToken, _createDocumentRange = FindReferencesTreeWalker.createDocumentRange, _previousResultRanges) {
117
122
  this._program = _program;
118
123
  this._fileUri = _fileUri;
119
124
  this._referencesResult = _referencesResult;
120
125
  this._includeDeclaration = _includeDeclaration;
121
126
  this._cancellationToken = _cancellationToken;
122
127
  this._createDocumentRange = _createDocumentRange;
128
+ this._previousResultRanges = _previousResultRanges;
123
129
  this._parseResults = this._program.getParseResults(this._fileUri);
124
130
  }
125
131
  findReferences(rootNode = this._parseResults?.parserOutput.parseTree) {
126
132
  const results = [];
127
133
  if (!this._parseResults) {
128
- return results;
134
+ return { results, discoveredDeclarations: [] };
129
135
  }
130
136
  const collector = new documentSymbolCollector_1.DocumentSymbolCollector(this._program, this._referencesResult.symbolNames, this._referencesResult.declarations, rootNode, this._cancellationToken, {
131
137
  treatModuleInImportAndFromImportSame: true,
132
138
  skipUnreachableCode: false,
133
139
  useCase: this._referencesResult.useCase,
134
140
  providers: this._referencesResult.providers,
141
+ previousResultRanges: this._previousResultRanges,
135
142
  });
136
143
  for (const result of collector.collect()) {
137
- // Is it the same symbol?
144
+ // `result.node` is inspected only here, while this file's parse tree is still live; we do
145
+ // not store it on the committed result so the tree can be dropped after this file is walked.
138
146
  if (this._includeDeclaration || result.node !== this._referencesResult.nodeAtOffset) {
139
147
  results.push({
140
- node: result.node,
141
148
  location: this._createDocumentRange(this._fileUri, result, this._parseResults),
142
- parentRange: result.node.parent
143
- ? {
144
- start: (0, positionUtils_1.convertOffsetToPosition)(result.node.parent.start, this._parseResults.tokenizerOutput.lines),
145
- end: (0, positionUtils_1.convertOffsetToPosition)(textRange_1.TextRange.getEnd(result.node.parent), this._parseResults.tokenizerOutput.lines),
146
- }
147
- : undefined,
149
+ range: result.range,
148
150
  });
149
151
  }
150
152
  }
151
- return results;
153
+ return { results, discoveredDeclarations: collector.getSeedDeclarations() };
152
154
  }
153
155
  static createDocumentRange(fileUri, result, parseResults) {
154
156
  return {
@@ -183,6 +185,9 @@ class ReferencesProvider {
183
185
  ? (range) => resultReporter.report((0, navigationUtils_1.convertDocumentRangesToLocation)(this._program.fileSystem, range, this._convertToLocation))
184
186
  : (range) => (0, collectionUtils_1.appendArray)(locations, (0, navigationUtils_1.convertDocumentRangesToLocation)(this._program.fileSystem, range, this._convertToLocation));
185
187
  const invokedFromUserFile = (0, sourceFileInfoUtils_1.isUserCode)(sourceFileInfo);
188
+ // A file participates in find-all-references when it is open in the editor, or the request
189
+ // originated from non-user code, or it is user code.
190
+ const isReferenceCandidateFile = (info) => info.isOpenByClient || !invokedFromUserFile || (0, sourceFileInfoUtils_1.isUserCode)(info);
186
191
  const referencesResult = ReferencesProvider.getDeclarationForPosition(this._program, fileUri, position, reporter, extensibility_1.ReferenceUseCase.References, this._token);
187
192
  if (!referencesResult) {
188
193
  return;
@@ -191,22 +196,11 @@ class ReferencesProvider {
191
196
  if (!referencesResult.requiresGlobalSearch) {
192
197
  this.addReferencesToResult(sourceFileInfo.uri, includeDeclaration, referencesResult);
193
198
  }
194
- for (const curSourceFileInfo of this._program.getSourceFileInfoList()) {
195
- (0, cancellationUtils_1.throwIfCancellationRequested)(this._token);
196
- // "Find all references" will only include references from user code
197
- // unless the file is explicitly opened in the editor or it is invoked from non user files.
198
- if (curSourceFileInfo.isOpenByClient || !invokedFromUserFile || (0, sourceFileInfoUtils_1.isUserCode)(curSourceFileInfo)) {
199
- // See if the reference symbol's string is located somewhere within the file.
200
- // If not, we can skip additional processing for the file.
201
- const fileContents = curSourceFileInfo.contents;
202
- if (!fileContents || referencesResult.symbolNames.some((s) => fileContents.indexOf(s) >= 0)) {
203
- this.addReferencesToResult(curSourceFileInfo.uri, includeDeclaration, referencesResult);
204
- }
205
- // This operation can consume significant memory, so check
206
- // for situations where we need to discard the type cache.
207
- this._program.handleMemoryHighUsage();
208
- }
209
- }
199
+ // Collect references across the workspace. Some symbols are found as a group (protocol
200
+ // members and TypedDict keys that share a name), and the rest of the group only becomes
201
+ // known once their usages in other files are examined. A single workspace walk pulls in
202
+ // those related declarations so the result covers the entire group.
203
+ this.collectWorkspaceReferences(referencesResult, includeDeclaration, isReferenceCandidateFile);
210
204
  // Make sure to include declarations regardless where they are defined
211
205
  // if includeDeclaration is set.
212
206
  if (includeDeclaration) {
@@ -243,13 +237,157 @@ class ReferencesProvider {
243
237
  }
244
238
  return dedupedLocations;
245
239
  }
246
- addReferencesToResult(fileUri, includeDeclaration, referencesResult) {
240
+ // Collects references in a single file without committing them to `referencesResult`, returning
241
+ // the per-file results plus any seed declarations the usage providers discovered while walking.
242
+ collectFileReferences(fileUri, includeDeclaration, referencesResult, previousResultRanges) {
247
243
  const parseResults = this._program.getParseResults(fileUri);
248
244
  if (!parseResults) {
249
- return;
245
+ return { results: [], discoveredDeclarations: [] };
246
+ }
247
+ const refTreeWalker = new FindReferencesTreeWalker(this._program, fileUri, referencesResult, includeDeclaration, this._token, this._createDocumentRange, previousResultRanges);
248
+ return refTreeWalker.findReferences();
249
+ }
250
+ addReferencesToResult(fileUri, includeDeclaration, referencesResult) {
251
+ const collected = this.collectFileReferences(fileUri, includeDeclaration, referencesResult);
252
+ referencesResult.addResults(...collected.results);
253
+ }
254
+ // Walks the workspace to collect references into `referencesResult`. For ordinary symbols the seed
255
+ // declaration set cannot grow, so this is a single pass and results stream out per file as they are
256
+ // found.
257
+ //
258
+ // Seed-usage providers (protocol members, TypedDict keys) can reveal additional declarations
259
+ // only after a usage in one file is matched, and that declaration may live in a file walked
260
+ // before the one that reveals it. When such a provider is active we repeat the workspace walk
261
+ // until the declaration set stops growing. Results are not discarded between passes: each pass
262
+ // streams only that file's newly found locations (its delta) into `referencesResult`, which
263
+ // accumulates across passes (it is never cleared), so the running result is always exactly
264
+ // previous + deltas. This is the same `DocumentSymbolCollector` run that collects references, so
265
+ // growth costs no extra walk beyond the re-passes growth requires.
266
+ //
267
+ // Cost model: when nothing propagates -- ordinary symbols, or a seed symbol whose first pass
268
+ // discovers no new declarations -- this is a single workspace walk, identical to the non-seed path.
269
+ // When the seed grows we re-walk, but each later pass skips every file already processed at the
270
+ // current seed version: we keep a per-file watermark of the seed version it was last walked at
271
+ // (`referencesResult.declarations.length`, a free monotonically increasing version) and re-examine a
272
+ // file only after the seed grows past that watermark. A file is therefore re-collected only when new
273
+ // declarations could give it new matches, and a converged file is visited at most once more to
274
+ // confirm no new matches at the final seed -- not once per pass. We deliberately never pay the worst
275
+ // case up front: there is no eager pre-pass that scans the whole workspace just to harvest every
276
+ // declaration before collecting results. Work grows lazily, only when we discover more to search.
277
+ //
278
+ // The loop runs to a genuine fixpoint with no pass cap: the declaration set grows monotonically
279
+ // and is bounded by the finite set of declarations in the workspace, so convergence is guaranteed.
280
+ // A cap would risk emitting a silently incomplete rename/reference set (broken edit) on a deep
281
+ // cross-file chain; the only acceptable early exit is cancellation, which aborts the whole request
282
+ // rather than returning a partial result.
283
+ //
284
+ // NOTE: keep observable behavior in lockstep with AsyncReferencesProvider.collectWorkspaceReferences.
285
+ collectWorkspaceReferences(referencesResult, includeDeclaration, isCandidateFile) {
286
+ // Whether the seed can grow is the usage providers' policy, not this engine's. A provider that
287
+ // exposes `appendSeedDeclarationsAt` may contribute sibling declarations during the walk, so the
288
+ // result set is not final until the workspace-wide fixpoint settles. (Today's protocol/TypedDict
289
+ // providers expose it only for rename and leave it unbound for Find All References, but the engine
290
+ // no longer depends on that -- it just checks the hook.)
291
+ const canGrowSeed = referencesResult.providers.some((p) => p.appendSeedDeclarationsAt !== undefined);
292
+ // Per-file delta handle. When the seed can grow we re-walk files as the seed expands, and the same
293
+ // location can be re-found on several passes. To avoid re-reporting it, each file keeps the set of
294
+ // result ranges already found in it (keyed via `getResultRangeKey`) and hands that
295
+ // set to the collector as its read-only "previous result" (modeled on the semantic-tokens /
296
+ // pull-diagnostics delta APIs). The collector returns only that file's delta -- the locations new
297
+ // since the previous result -- without ever mutating the set; this provider then merges the delta
298
+ // back into the set (below) so the next re-walk yields just the seed-growth additions. Each delta is
299
+ // streamed straight into `referencesResult`, so the running result is exactly previous + deltas with
300
+ // no separate dedup pass. (The non-growing path needs no handle: each file is walked once, so its
301
+ // first results are final and stream immediately.)
302
+ const previousResultRangesByFile = canGrowSeed ? new Map() : undefined;
303
+ // Per-file watermark of the seed version (`referencesResult.declarations.length`) each file was
304
+ // last walked at. Lets later passes skip files already processed at the current seed version,
305
+ // re-collecting a file only after the seed grows past its watermark.
306
+ const lastWalkedSeedVersion = canGrowSeed ? new Map() : undefined;
307
+ // Design decision -- correctness over performance: this fixpoint walk is intentionally NOT
308
+ // capped for performance, and it never truncates the result to "go faster". Returning a
309
+ // broken/partial answer in the name of perf is the worst possible outcome here: a partial rename
310
+ // silently corrupts code, and a partial reference set misleads the user. The only acceptable way
311
+ // to stop early is user cancellation (`throwIfCancellationRequested` below); short of that we
312
+ // always run to a complete, correct result. If a large workspace makes this slow, the answer is
313
+ // for the user to cancel -- not for us to return a wrong answer.
314
+ //
315
+ // Growth is monotonic over the finite set of workspace declarations, so the loop is guaranteed to
316
+ // converge as long as `mergeSeedDeclarations` only reports growth when the deduped
317
+ // (`areDeclarationsSame`) declaration set actually increases.
318
+ let grew = true;
319
+ while (grew) {
320
+ (0, cancellationUtils_1.throwIfCancellationRequested)(this._token);
321
+ grew = false;
322
+ for (const curSourceFileInfo of this._program.getSourceFileInfoList()) {
323
+ (0, cancellationUtils_1.throwIfCancellationRequested)(this._token);
324
+ // "Find all references" will only include references from user code unless the file
325
+ // is explicitly opened in the editor or it is invoked from non user files.
326
+ if (!isCandidateFile(curSourceFileInfo)) {
327
+ continue;
328
+ }
329
+ const fileKey = curSourceFileInfo.uri.key;
330
+ // `referencesResult.declarations.length` is a free, monotonically increasing seed version
331
+ // (it only grows via mergeSeedDeclarations). Capture it before the walk so it reflects the
332
+ // seed this file is matched against. Unused (0) when the seed can't grow.
333
+ const seedVersion = canGrowSeed ? referencesResult.declarations.length : 0;
334
+ // Seed-version skip: a file re-processed at the same seed version yields identical results,
335
+ // so skip any file already walked (or examined) at the current version. A file with no
336
+ // watermark is always considered, so later seed/name growth still reaches it.
337
+ if (canGrowSeed && lastWalkedSeedVersion.get(fileKey) === seedVersion) {
338
+ continue;
339
+ }
340
+ // Record the seed version BEFORE matching this file, so the watermark reflects exactly the
341
+ // seed snapshot the entire walk of this file is matched against. collectFileReferences
342
+ // matches the whole file against the seed as it stands now; the seed only grows afterward
343
+ // (via mergeSeedDeclarations below), which bumps the global version past this watermark and
344
+ // triggers exactly one more re-walk of this file against the final seed. Recording it here --
345
+ // rather than after the walk -- guarantees a file is never matched against a seed newer than
346
+ // its watermark, so no single file can be matched against two different seed versions.
347
+ lastWalkedSeedVersion?.set(fileKey, seedVersion);
348
+ // See if the reference symbol's string is located somewhere within the file.
349
+ // If not, we can skip additional processing for the file.
350
+ const fileContents = curSourceFileInfo.contents;
351
+ if (fileContents && !referencesResult.symbolNames.some((s) => fileContents.indexOf(s) >= 0)) {
352
+ // No possible match at this seed version; re-examine only after the seed (and thus the
353
+ // symbol-name set) grows past the watermark recorded above.
354
+ continue;
355
+ }
356
+ // Per-file delta handle: reuse the same set across passes so the collector treats it as the
357
+ // previous result and returns only this file's seed-growth additions. Absent when the seed
358
+ // cannot grow (single walk).
359
+ const previousResultRanges = previousResultRangesByFile
360
+ ? (0, collectionUtils_1.getOrAdd)(previousResultRangesByFile, fileKey, () => new Set())
361
+ : undefined;
362
+ const collected = this.collectFileReferences(curSourceFileInfo.uri, includeDeclaration, referencesResult, previousResultRanges);
363
+ if (canGrowSeed && mergeSeedDeclarations(referencesResult, collected.discoveredDeclarations)) {
364
+ grew = true;
365
+ }
366
+ // The collector returns only this file's delta: locations not in the previous-result set it
367
+ // was given (the whole result on a file's first walk, just the seed-growth additions on a
368
+ // re-walk). Appending each delta as it arrives builds the full result incrementally -- full
369
+ // result = previous result + streamed deltas -- so results stream out even while the seed is
370
+ // still growing, with no separate dedup pass.
371
+ referencesResult.addResults(...collected.results);
372
+ // Provider owns the delta merge: fold this file's newly collected ranges into its read-only
373
+ // previous-result set so the next seed-growth pass skips them. The collector returned only
374
+ // the delta and never touched the set.
375
+ if (previousResultRanges) {
376
+ for (const loc of collected.results) {
377
+ previousResultRanges.add((0, documentSymbolCollector_1.getResultRangeKey)(loc.range));
378
+ }
379
+ }
380
+ // This operation can consume significant memory, so check
381
+ // for situations where we need to discard the type cache.
382
+ this._program.handleMemoryHighUsage();
383
+ }
384
+ if (!canGrowSeed) {
385
+ // Single streaming pass; results were already committed above.
386
+ return;
387
+ }
388
+ // Seed-growth path: the collector streamed each location exactly once -- as the per-file delta
389
+ // on the pass it was first found -- so once the seed stops growing there is nothing left to commit.
250
390
  }
251
- const refTreeWalker = new FindReferencesTreeWalker(this._program, fileUri, referencesResult, includeDeclaration, this._token, this._createDocumentRange);
252
- referencesResult.addResults(...refTreeWalker.findReferences());
253
391
  }
254
392
  static getDeclarationForNode(program, fileUri, node, reporter, useCase, token) {
255
393
  (0, cancellationUtils_1.throwIfCancellationRequested)(token);
@@ -295,6 +433,24 @@ class ReferencesProvider {
295
433
  }
296
434
  }
297
435
  exports.ReferencesProvider = ReferencesProvider;
436
+ // Merges newly discovered seed declarations into `referencesResult`, also widening `symbolNames`
437
+ // with any new declaration names so later passes and the result loop scan the right files. Returns
438
+ // whether the declaration set actually grew.
439
+ function mergeSeedDeclarations(referencesResult, discovered) {
440
+ let grew = false;
441
+ for (const decl of discovered) {
442
+ const before = referencesResult.declarations.length;
443
+ (0, documentSymbolCollector_1.addDeclarationIfUnique)(referencesResult.declarations, decl);
444
+ if (referencesResult.declarations.length !== before) {
445
+ grew = true;
446
+ const name = (0, declarationUtils_1.getNameFromDeclaration)(decl);
447
+ if (name && !referencesResult.symbolNames.includes(name)) {
448
+ referencesResult.symbolNames.push(name);
449
+ }
450
+ }
451
+ }
452
+ return grew;
453
+ }
298
454
  function isVisibleOutside(evaluator, currentUri, node, declarations) {
299
455
  const result = evaluator.lookUpSymbolRecursive(node, node.d.value, /* honorCodeFlow */ false);
300
456
  if (result && !isExternallyVisible(result.symbol)) {
@@ -1 +1 @@
1
- {"version":3,"file":"referencesProvider.js","sourceRoot":"","sources":["../../../../../src/languageService/referencesProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"referencesProvider.js","sourceRoot":"","sources":["../../../../../src/languageService/referencesProvider.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,13 @@
1
1
  import { CancellationToken, WorkspaceEdit } from 'vscode-languageserver';
2
- import { ProgramView } from '../common/extensibility';
3
- import { Position, Range } from '../common/textRange';
2
+ import { Declaration } from '../analyzer/declaration';
3
+ import { ProgramView, SourceFileInfo } from '../common/extensibility';
4
+ import { Position, Range, TextRange } from '../common/textRange';
5
+ import { TextRangeCollection } from '../common/textRangeCollection';
4
6
  import { Uri } from '../common/uri/uri';
5
7
  import { ReferencesResult } from '../languageService/referencesProvider';
8
+ import { ParseNode } from '../parser/parseNodes';
9
+ export declare function assertRenameTargetsAreUserCode(getSourceFileInfo: (uri: Uri) => SourceFileInfo | undefined, declarations: readonly Declaration[], symbolName: string): void;
10
+ export declare function getRenameSymbolRange(nodeAtOffset: ParseNode, lines: TextRangeCollection<TextRange>): Range;
6
11
  export declare class RenameProvider {
7
12
  private _program;
8
13
  private _fileUri;
@@ -9,6 +9,9 @@
9
9
  */
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
11
  exports.RenameProvider = void 0;
12
+ exports.assertRenameTargetsAreUserCode = assertRenameTargetsAreUserCode;
13
+ exports.getRenameSymbolRange = getRenameSymbolRange;
14
+ const vscode_languageserver_1 = require("vscode-languageserver");
12
15
  const sourceFileInfoUtils_1 = require("../analyzer/sourceFileInfoUtils");
13
16
  const cancellationUtils_1 = require("../common/cancellationUtils");
14
17
  const debug_1 = require("../common/debug");
@@ -16,6 +19,36 @@ const extensibility_1 = require("../common/extensibility");
16
19
  const positionUtils_1 = require("../common/positionUtils");
17
20
  const workspaceEditUtils_1 = require("../common/workspaceEditUtils");
18
21
  const referencesProvider_1 = require("../languageService/referencesProvider");
22
+ const localize_1 = require("../localization/localize");
23
+ // Rename must never modify non-user code (library or stub files). A rename group can grow during the
24
+ // multi-file workspace walk -- protocol members and TypedDict keys that share a name are renamed as a
25
+ // group, and the related declarations only become known once their usages in other files are examined.
26
+ // That growth can pull in a declaration that lives in non-user code. Editing only the user-code
27
+ // occurrences would leave the symbol partially renamed and the code inconsistent, so we abort loudly --
28
+ // naming the exact declaration(s) that block the rename and why -- instead of returning a partial edit.
29
+ //
30
+ // `getSourceFileInfo` is passed as a callback so this helper works for both the sync `ProgramView` and the
31
+ // async program snapshot without coupling to either type.
32
+ function assertRenameTargetsAreUserCode(getSourceFileInfo, declarations, symbolName) {
33
+ const nonUserDeclarations = declarations.filter((d) => !(0, sourceFileInfoUtils_1.isUserCode)(getSourceFileInfo(d.uri)));
34
+ if (nonUserDeclarations.length === 0) {
35
+ return;
36
+ }
37
+ const locations = nonUserDeclarations
38
+ .map((d) => ` - ${d.uri.toUserVisibleString()}:${d.range.start.line + 1}`)
39
+ .join('\n');
40
+ throw new vscode_languageserver_1.ResponseError(vscode_languageserver_1.LSPErrorCodes.RequestFailed, localize_1.Localizer.Rename.cannotRenameNonUserCode().format({ symbolName, locations }));
41
+ }
42
+ // Computes the prepareRename range for the symbol at the cursor. For a single parenthesized name
43
+ // (e.g. `(A)`), the parser widens the NameNode's range to span the surrounding parens (see
44
+ // `_parseTupleAtom`), while the identifier token keeps the bare-name extent. Use the token range so
45
+ // the rename prompt shows/replaces just the name rather than the parens (pylance-release #5372).
46
+ // Shared by the sync `RenameProvider` and the async aggregated rename provider to keep both paths
47
+ // identical.
48
+ function getRenameSymbolRange(nodeAtOffset, lines) {
49
+ const rangeSource = nodeAtOffset.nodeType === 38 /* ParseNodeType.Name */ ? nodeAtOffset.d.token : nodeAtOffset;
50
+ return (0, positionUtils_1.convertTextRangeToRange)(rangeSource, lines);
51
+ }
19
52
  class RenameProvider {
20
53
  constructor(_program, _fileUri, _position, _token) {
21
54
  this._program = _program;
@@ -38,7 +71,7 @@ class RenameProvider {
38
71
  return null;
39
72
  }
40
73
  // Return the range of the symbol.
41
- return (0, positionUtils_1.convertTextRangeToRange)(referencesResult.nodeAtOffset, this._parseResults.tokenizerOutput.lines);
74
+ return getRenameSymbolRange(referencesResult.nodeAtOffset, this._parseResults.tokenizerOutput.lines);
42
75
  }
43
76
  renameSymbol(newName, isDefaultWorkspace, isUntitled) {
44
77
  (0, cancellationUtils_1.throwIfCancellationRequested)(this._token);
@@ -56,22 +89,17 @@ class RenameProvider {
56
89
  referenceProvider.addReferencesToResult(this._fileUri, /* includeDeclaration */ true, referencesResult);
57
90
  break;
58
91
  case 'multiFileMode': {
59
- for (const curSourceFileInfo of this._program.getSourceFileInfoList()) {
60
- // Make sure we only add user code to the references to prevent us
61
- // from accidentally changing third party library or type stub.
62
- if ((0, sourceFileInfoUtils_1.isUserCode)(curSourceFileInfo)) {
63
- // Make sure searching symbol name exists in the file.
64
- const content = curSourceFileInfo.contents ?? '';
65
- if (!referencesResult.symbolNames.some((s) => content.search(s) >= 0)) {
66
- continue;
67
- }
68
- referenceProvider.addReferencesToResult(curSourceFileInfo.uri,
69
- /* includeDeclaration */ true, referencesResult);
70
- }
71
- // This operation can consume significant memory, so check
72
- // for situations where we need to discard the type cache.
73
- this._program.handleMemoryHighUsage();
74
- }
92
+ // Rename every reference across the workspace. Some symbols are renamed as a group
93
+ // (protocol members and TypedDict keys that share a name), and the rest of the group
94
+ // only becomes known once their usages in other files are examined. Collecting the
95
+ // whole workspace in one walk pulls in those related declarations so the rename
96
+ // covers the entire group.
97
+ referenceProvider.collectWorkspaceReferences(referencesResult, /* includeDeclaration */ true, (info) => (0, sourceFileInfoUtils_1.isUserCode)(info));
98
+ // The group may have grown (during the walk) to include a declaration that lives in
99
+ // non-user code. getRenameSymbolMode only verified the pre-walk seed was all user code,
100
+ // so re-assert the invariant now and abort loudly rather than silently renaming only
101
+ // the editable subset.
102
+ assertRenameTargetsAreUserCode((uri) => this._program.getSourceFileInfo(uri), referencesResult.declarations, referencesResult.symbolNames[0] ?? newName);
75
103
  break;
76
104
  }
77
105
  case 'none':
@@ -1 +1 @@
1
- {"version":3,"file":"renameProvider.js","sourceRoot":"","sources":["../../../../../src/languageService/renameProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renameProvider.js","sourceRoot":"","sources":["../../../../../src/languageService/renameProvider.ts"],"names":[],"mappings":"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"}
@@ -1760,6 +1760,12 @@ export declare namespace Localizer {
1760
1760
  const autoImportDetail: () => string;
1761
1761
  const indexValueDetail: () => string;
1762
1762
  }
1763
+ namespace Rename {
1764
+ const cannotRenameNonUserCode: () => ParameterizedString<{
1765
+ symbolName: string;
1766
+ locations: string;
1767
+ }>;
1768
+ }
1763
1769
  namespace Service {
1764
1770
  const longOperation: () => string;
1765
1771
  }
@@ -1029,6 +1029,10 @@ var Localizer;
1029
1029
  Completion.autoImportDetail = () => getRawString('Completion.autoImportDetail');
1030
1030
  Completion.indexValueDetail = () => getRawString('Completion.indexValueDetail');
1031
1031
  })(Completion = Localizer.Completion || (Localizer.Completion = {}));
1032
+ let Rename;
1033
+ (function (Rename) {
1034
+ Rename.cannotRenameNonUserCode = () => new ParameterizedString(getRawString('Rename.cannotRenameNonUserCode'));
1035
+ })(Rename = Localizer.Rename || (Localizer.Rename = {}));
1032
1036
  let Service;
1033
1037
  (function (Service) {
1034
1038
  Service.longOperation = () => getRawString('Service.longOperation');