@zzzen/pyright-internal 1.2.0-dev.20230101 → 1.2.0-dev.20230115

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 (145) hide show
  1. package/dist/analyzer/analyzerFileInfo.js +14 -1
  2. package/dist/analyzer/analyzerFileInfo.js.map +1 -1
  3. package/dist/analyzer/backgroundAnalysisProgram.d.ts +3 -3
  4. package/dist/analyzer/backgroundAnalysisProgram.js +4 -4
  5. package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
  6. package/dist/analyzer/checker.d.ts +1 -1
  7. package/dist/analyzer/checker.js +145 -53
  8. package/dist/analyzer/checker.js.map +1 -1
  9. package/dist/analyzer/codeFlowEngine.js +26 -11
  10. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  11. package/dist/analyzer/constraintSolver.js +4 -2
  12. package/dist/analyzer/constraintSolver.js.map +1 -1
  13. package/dist/analyzer/dataClasses.js +6 -1
  14. package/dist/analyzer/dataClasses.js.map +1 -1
  15. package/dist/analyzer/importResolver.d.ts +2 -1
  16. package/dist/analyzer/importResolver.js +18 -3
  17. package/dist/analyzer/importResolver.js.map +1 -1
  18. package/dist/analyzer/patternMatching.js +2 -2
  19. package/dist/analyzer/patternMatching.js.map +1 -1
  20. package/dist/analyzer/program.d.ts +1 -0
  21. package/dist/analyzer/program.js +54 -32
  22. package/dist/analyzer/program.js.map +1 -1
  23. package/dist/analyzer/regions.js +14 -5
  24. package/dist/analyzer/regions.js.map +1 -1
  25. package/dist/analyzer/service.d.ts +3 -2
  26. package/dist/analyzer/service.js +14 -12
  27. package/dist/analyzer/service.js.map +1 -1
  28. package/dist/analyzer/sourceFile.d.ts +4 -3
  29. package/dist/analyzer/sourceFile.js +4 -4
  30. package/dist/analyzer/sourceFile.js.map +1 -1
  31. package/dist/analyzer/sourceMapper.d.ts +2 -2
  32. package/dist/analyzer/sourceMapper.js +14 -5
  33. package/dist/analyzer/sourceMapper.js.map +1 -1
  34. package/dist/analyzer/typeCacheUtils.d.ts +0 -1
  35. package/dist/analyzer/typeCacheUtils.js +3 -3
  36. package/dist/analyzer/typeCacheUtils.js.map +1 -1
  37. package/dist/analyzer/typeDocStringUtils.d.ts +2 -1
  38. package/dist/analyzer/typeDocStringUtils.js +18 -7
  39. package/dist/analyzer/typeDocStringUtils.js.map +1 -1
  40. package/dist/analyzer/typeEvaluator.js +494 -423
  41. package/dist/analyzer/typeEvaluator.js.map +1 -1
  42. package/dist/analyzer/typeEvaluatorTypes.d.ts +20 -13
  43. package/dist/analyzer/typeEvaluatorTypes.js +15 -15
  44. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  45. package/dist/analyzer/typeGuards.d.ts +5 -1
  46. package/dist/analyzer/typeGuards.js +204 -44
  47. package/dist/analyzer/typeGuards.js.map +1 -1
  48. package/dist/analyzer/typeUtils.d.ts +8 -0
  49. package/dist/analyzer/typeUtils.js +15 -4
  50. package/dist/analyzer/typeUtils.js.map +1 -1
  51. package/dist/analyzer/types.d.ts +3 -0
  52. package/dist/analyzer/types.js +10 -2
  53. package/dist/analyzer/types.js.map +1 -1
  54. package/dist/backgroundAnalysisBase.d.ts +4 -1
  55. package/dist/backgroundAnalysisBase.js +1 -1
  56. package/dist/backgroundAnalysisBase.js.map +1 -1
  57. package/dist/backgroundThreadBase.d.ts +5 -2
  58. package/dist/backgroundThreadBase.js.map +1 -1
  59. package/dist/commands/createTypeStub.js +3 -0
  60. package/dist/commands/createTypeStub.js.map +1 -1
  61. package/dist/commands/quickActionCommand.js +1 -1
  62. package/dist/commands/quickActionCommand.js.map +1 -1
  63. package/dist/common/collectionUtils.d.ts +1 -0
  64. package/dist/common/collectionUtils.js +9 -1
  65. package/dist/common/collectionUtils.js.map +1 -1
  66. package/dist/common/configOptions.d.ts +1 -0
  67. package/dist/common/configOptions.js +4 -0
  68. package/dist/common/configOptions.js.map +1 -1
  69. package/dist/common/diagnosticRules.d.ts +1 -0
  70. package/dist/common/diagnosticRules.js +1 -0
  71. package/dist/common/diagnosticRules.js.map +1 -1
  72. package/dist/common/fileSystem.d.ts +1 -0
  73. package/dist/common/fileSystem.js.map +1 -1
  74. package/dist/common/textEditUtils.d.ts +3 -2
  75. package/dist/common/textEditUtils.js +11 -10
  76. package/dist/common/textEditUtils.js.map +1 -1
  77. package/dist/languageServerBase.d.ts +1 -1
  78. package/dist/languageServerBase.js +2 -2
  79. package/dist/languageServerBase.js.map +1 -1
  80. package/dist/languageService/completionProvider.d.ts +3 -0
  81. package/dist/languageService/completionProvider.js +212 -159
  82. package/dist/languageService/completionProvider.js.map +1 -1
  83. package/dist/languageService/documentSymbolCollector.d.ts +12 -4
  84. package/dist/languageService/documentSymbolCollector.js +103 -22
  85. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  86. package/dist/languageService/documentSymbolProvider.js +6 -0
  87. package/dist/languageService/documentSymbolProvider.js.map +1 -1
  88. package/dist/languageService/hoverProvider.d.ts +0 -1
  89. package/dist/languageService/hoverProvider.js +7 -20
  90. package/dist/languageService/hoverProvider.js.map +1 -1
  91. package/dist/languageService/indentationUtils.d.ts +1 -1
  92. package/dist/languageService/indentationUtils.js +74 -29
  93. package/dist/languageService/indentationUtils.js.map +1 -1
  94. package/dist/languageService/referencesProvider.d.ts +5 -4
  95. package/dist/languageService/referencesProvider.js +15 -10
  96. package/dist/languageService/referencesProvider.js.map +1 -1
  97. package/dist/languageService/renameModuleProvider.js +11 -11
  98. package/dist/languageService/renameModuleProvider.js.map +1 -1
  99. package/dist/languageService/tooltipUtils.d.ts +5 -1
  100. package/dist/languageService/tooltipUtils.js +28 -4
  101. package/dist/languageService/tooltipUtils.js.map +1 -1
  102. package/dist/localization/localize.d.ts +3 -0
  103. package/dist/localization/localize.js +3 -0
  104. package/dist/localization/localize.js.map +1 -1
  105. package/dist/localization/package.nls.en-us.json +3 -0
  106. package/dist/parser/tokenizer.js +6 -2
  107. package/dist/parser/tokenizer.js.map +1 -1
  108. package/dist/tests/checker.test.js +16 -0
  109. package/dist/tests/checker.test.js.map +1 -1
  110. package/dist/tests/completions.test.d.ts +1 -0
  111. package/dist/tests/completions.test.js +331 -0
  112. package/dist/tests/completions.test.js.map +1 -0
  113. package/dist/tests/documentSymbolCollector.test.js +86 -5
  114. package/dist/tests/documentSymbolCollector.test.js.map +1 -1
  115. package/dist/tests/filesystem.test.js +11 -0
  116. package/dist/tests/filesystem.test.js.map +1 -1
  117. package/dist/tests/fourslash/rename.init.fourslash.d.ts +1 -0
  118. package/dist/tests/fourslash/rename.init.fourslash.js +23 -0
  119. package/dist/tests/fourslash/rename.init.fourslash.js.map +1 -0
  120. package/dist/tests/harness/fourslash/testState.d.ts +2 -2
  121. package/dist/tests/harness/fourslash/testState.js +10 -7
  122. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  123. package/dist/tests/harness/vfs/filesystem.d.ts +2 -2
  124. package/dist/tests/harness/vfs/filesystem.js +5 -1
  125. package/dist/tests/harness/vfs/filesystem.js.map +1 -1
  126. package/dist/tests/hoverProvider.test.d.ts +1 -0
  127. package/dist/tests/hoverProvider.test.js +247 -0
  128. package/dist/tests/hoverProvider.test.js.map +1 -0
  129. package/dist/tests/indentationUtils.ptvs.test.js +13 -13
  130. package/dist/tests/indentationUtils.ptvs.test.js.map +1 -1
  131. package/dist/tests/indentationUtils.test.js +68 -10
  132. package/dist/tests/indentationUtils.test.js.map +1 -1
  133. package/dist/tests/typeEvaluator1.test.js +24 -0
  134. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  135. package/dist/tests/typeEvaluator2.test.js +5 -1
  136. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  137. package/dist/tests/typeEvaluator3.test.js +10 -2
  138. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  139. package/dist/tests/typeEvaluator4.test.js +4 -0
  140. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  141. package/dist/tests/typeEvaluator5.test.js +6 -0
  142. package/dist/tests/typeEvaluator5.test.js.map +1 -1
  143. package/dist/workspaceMap.js +1 -3
  144. package/dist/workspaceMap.js.map +1 -1
  145. package/package.json +6 -6
@@ -7,18 +7,18 @@
7
7
  * Provides code to get indentation and re-indent code to the given indentation.
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.createIndentationString = exports.getIndentationFromText = exports.findPreviousNonWhitespaceToken = exports.reindentSpan = exports.getIndentation = void 0;
10
+ exports.createIndentationString = exports.getIndentationFromText = exports.findPreviousNonWhitespaceToken = exports.reindentSpan = exports.getNewlineIndentation = void 0;
11
11
  const parseTreeUtils_1 = require("../analyzer/parseTreeUtils");
12
12
  const collectionUtils_1 = require("../common/collectionUtils");
13
13
  const positionUtils_1 = require("../common/positionUtils");
14
14
  const textRange_1 = require("../common/textRange");
15
15
  const tokenizer_1 = require("../parser/tokenizer");
16
16
  const insertionPointUtils_1 = require("./insertionPointUtils");
17
- function getIndentation(parseResults, offset, preferDedent) {
17
+ function getNewlineIndentation(parseResults, newlineOffset, preferDedent) {
18
18
  // ex)
19
19
  // a = """
20
20
  // | <= here
21
- const strIndent = _tryHandleStringLiterals(parseResults, offset);
21
+ const strIndent = _tryHandleStringLiterals(parseResults, newlineOffset);
22
22
  if (strIndent !== undefined) {
23
23
  return strIndent;
24
24
  }
@@ -28,14 +28,14 @@ function getIndentation(parseResults, offset, preferDedent) {
28
28
  // or
29
29
  // a = (1 +
30
30
  // | <= here
31
- const exprIndent = _tryHandleMultilineConstructs(parseResults, offset);
31
+ const exprIndent = _tryHandleMultilineConstructs(parseResults, newlineOffset);
32
32
  if (exprIndent !== undefined) {
33
33
  return exprIndent;
34
34
  }
35
- preferDedent = preferDedent !== null && preferDedent !== void 0 ? preferDedent : _shouldDedentAfterKeyword(parseResults, offset);
36
- return Math.max(_getIndentation(parseResults, offset, preferDedent).indentation, 0);
35
+ preferDedent = preferDedent !== null && preferDedent !== void 0 ? preferDedent : _shouldDedentAfterKeyword(parseResults, newlineOffset);
36
+ return Math.max(_getIndentation(parseResults, newlineOffset, preferDedent).indentation, 0);
37
37
  }
38
- exports.getIndentation = getIndentation;
38
+ exports.getNewlineIndentation = getNewlineIndentation;
39
39
  function reindentSpan(parseResults, span, indentation, indentFirstToken = true) {
40
40
  let indentDelta = 0;
41
41
  const texts = [];
@@ -113,7 +113,7 @@ function _getIndentation(parseResults, offset, preferDedent) {
113
113
  return _getIndentationForNode(parseResults, offset, parseResults.parseTree, node);
114
114
  }
115
115
  const suiteSpan = (0, positionUtils_1.convertTextRangeToRange)(suite, parseResults.tokenizerOutput.lines);
116
- if (preferDedent || suiteSpan.start.line === suiteSpan.end.line) {
116
+ if (preferDedent || (suiteSpan.start.line === suiteSpan.end.line && suite.statements.length > 0)) {
117
117
  // Go one more level up.
118
118
  const outerContainer = (0, insertionPointUtils_1.getContainer)(suite, /*includeSelf*/ false);
119
119
  return _getIndentationForNode(parseResults, offset, outerContainer !== null && outerContainer !== void 0 ? outerContainer : parseResults.parseTree, suite);
@@ -213,6 +213,7 @@ function _getIndentationFromIndentToken(tokens, index) {
213
213
  }
214
214
  function _tryHandleMultilineConstructs(parseResults, offset) {
215
215
  const tokens = parseResults.tokenizerOutput.tokens;
216
+ const lines = parseResults.tokenizerOutput.lines;
216
217
  // Make sure we use next token to get line delta.
217
218
  // This is just to handle how tokenizer associates new lines to which token.
218
219
  // ex) a = 1 + \
@@ -222,8 +223,6 @@ function _tryHandleMultilineConstructs(parseResults, offset) {
222
223
  if (index < 0) {
223
224
  return undefined;
224
225
  }
225
- const lines = parseResults.tokenizerOutput.lines;
226
- const tabSize = _getTabSize(parseResults);
227
226
  for (let i = index; i > 0; i--) {
228
227
  const token = _getTokenAtIndex(tokens, i);
229
228
  if (textRange_1.TextRange.getEnd(token) < offset) {
@@ -234,26 +233,9 @@ function _tryHandleMultilineConstructs(parseResults, offset) {
234
233
  const previousTokenSpan = previousToken ? (0, positionUtils_1.convertTextRangeToRange)(previousToken, lines) : undefined;
235
234
  if (tokenSpan &&
236
235
  previousTokenSpan &&
237
- previousTokenSpan.end.line < tokenSpan.start.line &&
236
+ previousTokenSpan.start.line < tokenSpan.start.line &&
238
237
  previousToken.type !== 2 /* NewLine */) {
239
- const indentationResult = _getIndentation(parseResults, previousToken.start, /* preferDedent */ false);
240
- const currentPosition = (0, positionUtils_1.convertOffsetToPosition)(offset, lines);
241
- // Handle multiline constructs (explicit or implicit)
242
- // ex) def foo \
243
- // | <= here
244
- // or
245
- // i = \
246
- // \
247
- // | <= here
248
- // or
249
- // a = (
250
- // | <= here
251
- const lineDelta = currentPosition.line -
252
- (indentationResult.token
253
- ? (0, positionUtils_1.convertOffsetToPosition)(indentationResult.token.start, lines).line
254
- : previousTokenSpan.start.line);
255
- const indentation = _getFirstNonBlankLineIndentationFromText(parseResults, currentPosition.line, previousTokenSpan.start.line);
256
- return indentation + (lineDelta === 1 ? tabSize : 0);
238
+ return _getIndentationForNextLine(parseResults, previousToken, token, offset);
257
239
  }
258
240
  }
259
241
  return undefined;
@@ -289,6 +271,69 @@ function _tryHandleStringLiterals(parseResults, offset) {
289
271
  const current = (0, positionUtils_1.convertOffsetToPosition)(offset, lines);
290
272
  return _getFirstNonBlankLineIndentationFromText(parseResults, current.line, begin.line);
291
273
  }
274
+ function _getIndentationForNextLine(parseResults, prevToken, nextToken, offset) {
275
+ // Get the last token on the same line as the previous token
276
+ const lines = parseResults.tokenizerOutput.lines;
277
+ const lineIndex = (0, positionUtils_1.convertOffsetToPosition)(prevToken.start, lines).line;
278
+ const line = lines.getItemAt(lineIndex);
279
+ const tabSize = _getTabSize(parseResults);
280
+ let token = prevToken;
281
+ // Go backwards through tokens up until the front of the line
282
+ let whitespaceOnly = true;
283
+ while (token && token.start >= line.start) {
284
+ if (token.type === 13 /* OpenParenthesis */ && whitespaceOnly) {
285
+ const baseIndentation = _getIndentation(parseResults, token.start, false).indentation;
286
+ // In PEP 8, this should be this case here:
287
+ // # Add 4 spaces (an extra level of indentation) to distinguish arguments from the rest.
288
+ // def long_function_name(
289
+ // var_one, var_two, var_three,
290
+ // var_four):
291
+ // print(var_one)
292
+ //
293
+ const node = (0, parseTreeUtils_1.findNodeByOffset)(parseResults.parseTree, token.start - 1);
294
+ const funcNode = (0, parseTreeUtils_1.getFirstAncestorOrSelfOfKind)(node, 28 /* Function */);
295
+ if (funcNode &&
296
+ funcNode.nodeType === 28 /* Function */ &&
297
+ (0, positionUtils_1.convertOffsetToPosition)(funcNode.start, lines).line === lineIndex) {
298
+ return baseIndentation + tabSize * 2;
299
+ }
300
+ // Not inside a function, just need one tab. See this in PEP 8
301
+ // # Hanging indents should add a level.
302
+ // foo = long_function_name(
303
+ // var_one, var_two,
304
+ // var_three, var_four)
305
+ return baseIndentation + tabSize;
306
+ }
307
+ else if (token.type === 13 /* OpenParenthesis */) {
308
+ // In PEP 8, this should be this case here:
309
+ // # Aligned with opening delimiter.
310
+ // def long_function_name(var_one, var_two,
311
+ // var_three, var_four)
312
+ return token.start - line.start + 1; // + 1 is to accomodate for the paranthesis.
313
+ }
314
+ else if (token.type === 15 /* OpenBracket */ && whitespaceOnly) {
315
+ // Special case for openbracket, just use the indentation of the current line plus one tab
316
+ return _getIndentation(parseResults, token.start, false).indentation + tabSize;
317
+ }
318
+ else if (token.type === 15 /* OpenBracket */) {
319
+ return token.start - line.start + 1; // + 1 is to accomodate for the bracket
320
+ }
321
+ else if (token.type === 17 /* OpenCurlyBrace */ && whitespaceOnly) {
322
+ // Special case for opencurlybrace, just use the indentation of the current line plus one tab
323
+ return _getIndentation(parseResults, token.start, false).indentation + tabSize;
324
+ }
325
+ else if (token.type === 17 /* OpenCurlyBrace */) {
326
+ return token.start - line.start + 1; // + 1 is to accomodate for the curlybrace
327
+ }
328
+ else if (!_isWhitespaceToken(token.type)) {
329
+ // Found a non whitespace token before we returned.
330
+ whitespaceOnly = false;
331
+ }
332
+ token = findPreviousNonWhitespaceToken(parseResults.tokenizerOutput.tokens, token.start - 1);
333
+ }
334
+ // No parenthesis found
335
+ return _getFirstNonBlankLineIndentationFromText(parseResults, (0, positionUtils_1.convertOffsetToPosition)(offset, parseResults.tokenizerOutput.lines).line, lineIndex);
336
+ }
292
337
  function _getFirstNonBlankLineIndentationFromText(parseResults, currentLine, endingLine) {
293
338
  endingLine = Math.max(endingLine, 0);
294
339
  for (let i = currentLine; i >= endingLine; i--) {
@@ -1 +1 @@
1
- {"version":3,"file":"indentationUtils.js","sourceRoot":"","sources":["../../../src/languageService/indentationUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"indentationUtils.js","sourceRoot":"","sources":["../../../src/languageService/indentationUtils.ts"],"names":[],"mappings":"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"}
@@ -5,16 +5,17 @@ import { TypeEvaluator } from '../analyzer/typeEvaluatorTypes';
5
5
  import { DocumentRange, Position } from '../common/textRange';
6
6
  import { NameNode, ParseNode } from '../parser/parseNodes';
7
7
  import { ParseResults } from '../parser/parser';
8
+ import { DocumentSymbolCollectorUseCase } from './documentSymbolCollector';
8
9
  export declare type ReferenceCallback = (locations: DocumentRange[]) => void;
9
10
  export declare class ReferencesResult {
10
11
  readonly requiresGlobalSearch: boolean;
11
12
  readonly nodeAtOffset: ParseNode;
12
- readonly symbolName: string;
13
+ readonly symbolNames: string[];
13
14
  readonly declarations: Declaration[];
14
15
  private readonly _reporter?;
15
16
  private readonly _locations;
16
17
  readonly nonImportDeclarations: Declaration[];
17
- constructor(requiresGlobalSearch: boolean, nodeAtOffset: ParseNode, symbolName: string, declarations: Declaration[], _reporter?: ReferenceCallback | undefined);
18
+ constructor(requiresGlobalSearch: boolean, nodeAtOffset: ParseNode, symbolNames: string[], declarations: Declaration[], _reporter?: ReferenceCallback | undefined);
18
19
  get containsOnlyImportDecls(): boolean;
19
20
  get locations(): readonly DocumentRange[];
20
21
  addLocations(...locs: DocumentRange[]): void;
@@ -30,7 +31,7 @@ export declare class FindReferencesTreeWalker {
30
31
  findReferences(rootNode?: import("../parser/parseNodes").ModuleNode): DocumentRange[];
31
32
  }
32
33
  export declare class ReferencesProvider {
33
- static getDeclarationForNode(sourceMapper: SourceMapper, filePath: string, node: NameNode, evaluator: TypeEvaluator, reporter: ReferenceCallback | undefined, token: CancellationToken): ReferencesResult | undefined;
34
- static getDeclarationForPosition(sourceMapper: SourceMapper, parseResults: ParseResults, filePath: string, position: Position, evaluator: TypeEvaluator, reporter: ReferenceCallback | undefined, token: CancellationToken): ReferencesResult | undefined;
34
+ static getDeclarationForNode(sourceMapper: SourceMapper, filePath: string, node: NameNode, evaluator: TypeEvaluator, reporter: ReferenceCallback | undefined, useCase: DocumentSymbolCollectorUseCase, token: CancellationToken): ReferencesResult | undefined;
35
+ static getDeclarationForPosition(sourceMapper: SourceMapper, parseResults: ParseResults, filePath: string, position: Position, evaluator: TypeEvaluator, reporter: ReferenceCallback | undefined, useCase: DocumentSymbolCollectorUseCase, token: CancellationToken): ReferencesResult | undefined;
35
36
  static addReferences(parseResults: ParseResults, filePath: string, referencesResult: ReferencesResult, includeDeclaration: boolean, evaluator: TypeEvaluator, token: CancellationToken): void;
36
37
  }
@@ -30,6 +30,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
30
30
  Object.defineProperty(exports, "__esModule", { value: true });
31
31
  exports.ReferencesProvider = exports.FindReferencesTreeWalker = exports.ReferencesResult = void 0;
32
32
  const declaration_1 = require("../analyzer/declaration");
33
+ const declarationUtils_1 = require("../analyzer/declarationUtils");
33
34
  const ParseTreeUtils = __importStar(require("../analyzer/parseTreeUtils"));
34
35
  const symbolUtils_1 = require("../analyzer/symbolUtils");
35
36
  const types_1 = require("../analyzer/types");
@@ -40,10 +41,10 @@ const positionUtils_1 = require("../common/positionUtils");
40
41
  const textRange_1 = require("../common/textRange");
41
42
  const documentSymbolCollector_1 = require("./documentSymbolCollector");
42
43
  class ReferencesResult {
43
- constructor(requiresGlobalSearch, nodeAtOffset, symbolName, declarations, _reporter) {
44
+ constructor(requiresGlobalSearch, nodeAtOffset, symbolNames, declarations, _reporter) {
44
45
  this.requiresGlobalSearch = requiresGlobalSearch;
45
46
  this.nodeAtOffset = nodeAtOffset;
46
- this.symbolName = symbolName;
47
+ this.symbolNames = symbolNames;
47
48
  this.declarations = declarations;
48
49
  this._reporter = _reporter;
49
50
  this._locations = [];
@@ -62,8 +63,10 @@ class ReferencesResult {
62
63
  if (d.node.nodeType === 22 /* ImportFrom */) {
63
64
  return false;
64
65
  }
66
+ // Extract alias for comparison (symbolNames.some can't know d is for an Alias).
67
+ const alias = (_a = d.node.alias) === null || _a === void 0 ? void 0 : _a.value;
65
68
  // Check alias and what we are renaming is same thing.
66
- if (((_a = d.node.alias) === null || _a === void 0 ? void 0 : _a.value) !== symbolName) {
69
+ if (!symbolNames.some((s) => s === alias)) {
67
70
  return false;
68
71
  }
69
72
  return true;
@@ -96,9 +99,9 @@ class FindReferencesTreeWalker {
96
99
  this._cancellationToken = _cancellationToken;
97
100
  }
98
101
  findReferences(rootNode = this._parseResults.parseTree) {
99
- const collector = new documentSymbolCollector_1.DocumentSymbolCollector(this._referencesResult.symbolName, this._referencesResult.declarations, this._evaluator, this._cancellationToken, rootNode,
102
+ const collector = new documentSymbolCollector_1.DocumentSymbolCollector(this._referencesResult.symbolNames, this._referencesResult.declarations, this._evaluator, this._cancellationToken, rootNode,
100
103
  /* treatModuleInImportAndFromImportSame */ true,
101
- /* skipUnreachableCode */ false);
104
+ /* skipUnreachableCode */ false, documentSymbolCollector_1.DocumentSymbolCollectorUseCase.Reference);
102
105
  const results = [];
103
106
  for (const result of collector.collect()) {
104
107
  // Is it the same symbol?
@@ -117,17 +120,19 @@ class FindReferencesTreeWalker {
117
120
  }
118
121
  exports.FindReferencesTreeWalker = FindReferencesTreeWalker;
119
122
  class ReferencesProvider {
120
- static getDeclarationForNode(sourceMapper, filePath, node, evaluator, reporter, token) {
123
+ static getDeclarationForNode(sourceMapper, filePath, node, evaluator, reporter, useCase, token) {
121
124
  (0, cancellationUtils_1.throwIfCancellationRequested)(token);
122
125
  const declarations = documentSymbolCollector_1.DocumentSymbolCollector.getDeclarationsForNode(node, evaluator,
123
- /* resolveLocalNames */ false, token, sourceMapper);
126
+ /* resolveLocalNames */ false, useCase, token, sourceMapper);
124
127
  if (declarations.length === 0) {
125
128
  return undefined;
126
129
  }
127
130
  const requiresGlobalSearch = isVisibleOutside(evaluator, filePath, node, declarations);
128
- return new ReferencesResult(requiresGlobalSearch, node, node.value, declarations, reporter);
131
+ const symbolNames = new Set(declarations.map((d) => (0, declarationUtils_1.getNameFromDeclaration)(d)).filter((n) => !!n));
132
+ symbolNames.add(node.value);
133
+ return new ReferencesResult(requiresGlobalSearch, node, [...symbolNames.values()], declarations, reporter);
129
134
  }
130
- static getDeclarationForPosition(sourceMapper, parseResults, filePath, position, evaluator, reporter, token) {
135
+ static getDeclarationForPosition(sourceMapper, parseResults, filePath, position, evaluator, reporter, useCase, token) {
131
136
  (0, cancellationUtils_1.throwIfCancellationRequested)(token);
132
137
  const offset = (0, positionUtils_1.convertPositionToOffset)(position, parseResults.tokenizerOutput.lines);
133
138
  if (offset === undefined) {
@@ -141,7 +146,7 @@ class ReferencesProvider {
141
146
  if (node.nodeType !== 38 /* Name */) {
142
147
  return undefined;
143
148
  }
144
- return this.getDeclarationForNode(sourceMapper, filePath, node, evaluator, reporter, token);
149
+ return this.getDeclarationForNode(sourceMapper, filePath, node, evaluator, reporter, useCase, token);
145
150
  }
146
151
  static addReferences(parseResults, filePath, referencesResult, includeDeclaration, evaluator, token) {
147
152
  const refTreeWalker = new FindReferencesTreeWalker(parseResults, filePath, referencesResult, includeDeclaration, evaluator, token);
@@ -1 +1 @@
1
- {"version":3,"file":"referencesProvider.js","sourceRoot":"","sources":["../../../src/languageService/referencesProvider.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;;;;;;AAIH,yDAA2F;AAC3F,2EAA6D;AAG7D,yDAA8D;AAE9D,6CAA0D;AAC1D,mEAA2E;AAC3E,+DAAwD;AACxD,2CAA8C;AAC9C,2DAA2F;AAE3F,mDAAgD;AAGhD,uEAAoE;AAIpE,MAAa,gBAAgB;IAKzB,YACa,oBAA6B,EAC7B,YAAuB,EACvB,UAAkB,EAClB,YAA2B,EACnB,SAA6B;QAJrC,yBAAoB,GAApB,oBAAoB,CAAS;QAC7B,iBAAY,GAAZ,YAAY,CAAW;QACvB,eAAU,GAAV,UAAU,CAAQ;QAClB,iBAAY,GAAZ,YAAY,CAAe;QACnB,cAAS,GAAT,SAAS,CAAoB;QATjC,eAAU,GAAoB,EAAE,CAAC;QAW9C,yDAAyD;QACzD,IAAI,CAAC,qBAAqB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;;YACnD,IAAI,CAAC,IAAA,gCAAkB,EAAC,CAAC,CAAC,EAAE;gBACxB,OAAO,IAAI,CAAC;aACf;YAED,mEAAmE;YACnE,IAAI,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;gBAC7B,OAAO,KAAK,CAAC;aAChB;YAED,uDAAuD;YACvD,0CAA0C;YAC1C,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,wBAA6B,EAAE;gBAC9C,OAAO,KAAK,CAAC;aAChB;YAED,sDAAsD;YACtD,IAAI,CAAA,MAAA,CAAC,CAAC,IAAI,CAAC,KAAK,0CAAE,KAAK,MAAK,UAAU,EAAE;gBACpC,OAAO,KAAK,CAAC;aAChB;YAED,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,IAAI,uBAAuB;QACvB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,KAAK,CAAC,CAAC;IACnF,CAAC;IAED,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,YAAY,CAAC,GAAG,IAAqB;QACjC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACnB,OAAO;SACV;QAED,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SACxB;QAED,IAAA,6BAAW,EAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;CACJ;AAzDD,4CAyDC;AAED,MAAa,wBAAwB;IACjC,YACY,aAA2B,EAC3B,SAAiB,EACjB,iBAAmC,EACnC,mBAA4B,EAC5B,UAAyB,EACzB,kBAAqC;QALrC,kBAAa,GAAb,aAAa,CAAc;QAC3B,cAAS,GAAT,SAAS,CAAQ;QACjB,sBAAiB,GAAjB,iBAAiB,CAAkB;QACnC,wBAAmB,GAAnB,mBAAmB,CAAS;QAC5B,eAAU,GAAV,UAAU,CAAe;QACzB,uBAAkB,GAAlB,kBAAkB,CAAmB;IAC9C,CAAC;IAEJ,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS;QAClD,MAAM,SAAS,GAAG,IAAI,iDAAuB,CACzC,IAAI,CAAC,iBAAiB,CAAC,UAAU,EACjC,IAAI,CAAC,iBAAiB,CAAC,YAAY,EACnC,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,kBAAkB,EACvB,QAAQ;QACR,0CAA0C,CAAC,IAAI;QAC/C,yBAAyB,CAAC,KAAK,CAClC,CAAC;QAEF,MAAM,OAAO,GAAoB,EAAE,CAAC;QACpC,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE;YACtC,yBAAyB;YACzB,IAAI,IAAI,CAAC,mBAAmB,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;gBACjF,OAAO,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,IAAI,CAAC,SAAS;oBACpB,KAAK,EAAE;wBACH,KAAK,EAAE,IAAA,uCAAuB,EAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC;wBAC5F,GAAG,EAAE,IAAA,uCAAuB,EACxB,qBAAS,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAC9B,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,KAAK,CAC3C;qBACJ;iBACJ,CAAC,CAAC;aACN;SACJ;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ;AAxCD,4DAwCC;AAED,MAAa,kBAAkB;IAC3B,MAAM,CAAC,qBAAqB,CACxB,YAA0B,EAC1B,QAAgB,EAChB,IAAc,EACd,SAAwB,EACxB,QAAuC,EACvC,KAAwB;QAExB,IAAA,gDAA4B,EAAC,KAAK,CAAC,CAAC;QAEpC,MAAM,YAAY,GAAG,iDAAuB,CAAC,sBAAsB,CAC/D,IAAI,EACJ,SAAS;QACT,uBAAuB,CAAC,KAAK,EAC7B,KAAK,EACL,YAAY,CACf,CAAC;QAEF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3B,OAAO,SAAS,CAAC;SACpB;QAED,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;QACvF,OAAO,IAAI,gBAAgB,CAAC,oBAAoB,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;IAChG,CAAC;IAED,MAAM,CAAC,yBAAyB,CAC5B,YAA0B,EAC1B,YAA0B,EAC1B,QAAgB,EAChB,QAAkB,EAClB,SAAwB,EACxB,QAAuC,EACvC,KAAwB;QAExB,IAAA,gDAA4B,EAAC,KAAK,CAAC,CAAC;QAEpC,MAAM,MAAM,GAAG,IAAA,uCAAuB,EAAC,QAAQ,EAAE,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACrF,IAAI,MAAM,KAAK,SAAS,EAAE;YACtB,OAAO,SAAS,CAAC;SACpB;QAED,MAAM,IAAI,GAAG,cAAc,CAAC,gBAAgB,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC7E,IAAI,IAAI,KAAK,SAAS,EAAE;YACpB,OAAO,SAAS,CAAC;SACpB;QAED,kEAAkE;QAClE,IAAI,IAAI,CAAC,QAAQ,kBAAuB,EAAE;YACtC,OAAO,SAAS,CAAC;SACpB;QAED,OAAO,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAChG,CAAC;IAED,MAAM,CAAC,aAAa,CAChB,YAA0B,EAC1B,QAAgB,EAChB,gBAAkC,EAClC,kBAA2B,EAC3B,SAAwB,EACxB,KAAwB;QAExB,MAAM,aAAa,GAAG,IAAI,wBAAwB,CAC9C,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,kBAAkB,EAClB,SAAS,EACT,KAAK,CACR,CAAC;QAEF,gBAAgB,CAAC,YAAY,CAAC,GAAG,aAAa,CAAC,cAAc,EAAE,CAAC,CAAC;IACrE,CAAC;CACJ;AA3ED,gDA2EC;AAED,SAAS,gBAAgB,CACrB,SAAwB,EACxB,eAAuB,EACvB,IAAc,EACd,YAA2B;IAE3B,MAAM,MAAM,GAAG,SAAS,CAAC,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC5F,IAAI,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;QAC/C,OAAO,KAAK,CAAC;KAChB;IAED,oFAAoF;IACpF,iFAAiF;IACjF,uGAAuG;IACvG,0FAA0F;IAC1F,sFAAsF;IACtF,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;;QAC9B,yEAAyE;QACzE,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE;YAC/B,OAAO,IAAI,CAAC;SACf;QAED,MAAM,SAAS,GAAG,cAAc,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEnE,6EAA6E;QAC7E,+DAA+D;QAC/D,IAAI,SAAS,CAAC,QAAQ,oBAAyB,IAAI,SAAS,CAAC,QAAQ,mBAAwB,EAAE;YAC3F,OAAO,IAAI,CAAC;SACf;QAED,wEAAwE;QACxE,IAAI,CAAA,MAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,0CAAE,QAAQ,2BAA+B,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;YACzG,OAAO,IAAI,CAAC;SACf;QAED,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,gFAAgF;IAChF,SAAS,mBAAmB,CAAC,MAAc,EAAE,cAAc,GAAG,CAAC;QAC3D,IAAI,cAAc,GAAG,6BAAqB,EAAE;YACxC,OAAO,KAAK,CAAC;SAChB;QAED,cAAc,EAAE,CAAC;QAEjB,IAAI,CAAC,IAAA,iCAAmB,EAAC,MAAM,CAAC,EAAE;YAC9B,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC,MAAM,CAAU,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE;YAChE,IAAI,CAAC,SAAS,EAAE;gBACZ,OAAO,KAAK,CAAC;aAChB;YAED,QAAQ,IAAI,CAAC,IAAI,EAAE;gBACf,mBAA2B;gBAC3B,uBAA+B;gBAC/B;oBACI,OAAO,SAAS,CAAC;gBAErB,mBAA2B;gBAC3B;oBACI,OAAO,SAAS,IAAI,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;gBAErF;oBACI,OAAO,SAAS,IAAI,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAK,EAAE,cAAc,CAAC,CAAC;gBAEtF;oBACI,OAAO,KAAK,CAAC;gBAEjB,sBAA8B;gBAC9B,sBAA8B,CAAC,CAAC;oBAC5B,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,kBAAuB,EAAE;wBAC3C,OAAO,SAAS,IAAI,4BAA4B,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;qBAC/E;oBAED,8CAA8C;oBAC9C,OAAO,KAAK,CAAC;iBAChB;gBAED;oBACI,IAAA,mBAAW,EAAC,IAAI,CAAC,CAAC;aACzB;QACL,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,uEAAuE;IACvE,+CAA+C;IAC/C,SAAS,4BAA4B,CAAC,IAAc,EAAE,cAAsB;QACxE,MAAM,WAAW,GAAG,cAAc,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAChE,QAAQ,WAAW,CAAC,QAAQ,EAAE;YAC1B,oBAAyB;YACzB,sBAA2B,CAAC,CAAC;gBACzB,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;gBAC9B,MAAM,MAAM,GAAG,SAAS,CAAC,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBAC5F,OAAO,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;aAC7E;YAED,qBAA0B;YAC1B;gBACI,kDAAkD;gBAClD,OAAO,KAAK,CAAC;YAEjB;gBACI,OAAO,IAAI,CAAC;YAEhB;gBACI,IAAA,mBAAW,EAAC,WAAW,CAAC,CAAC;SAChC;IACL,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"referencesProvider.js","sourceRoot":"","sources":["../../../src/languageService/referencesProvider.ts"],"names":[],"mappings":"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"}
@@ -167,8 +167,8 @@ class RenameModuleProvider {
167
167
  }
168
168
  }
169
169
  _updateSymbolReferences(filePath, parseResults) {
170
- var _a, _b, _c, _d;
171
- const collector = new documentSymbolCollector_1.DocumentSymbolCollector((_a = (0, declarationUtils_1.getNameFromDeclaration)(this._declarations[0])) !== null && _a !== void 0 ? _a : '', this._declarations, this._evaluator, this._token, parseResults.parseTree,
170
+ var _a, _b, _c;
171
+ const collector = new documentSymbolCollector_1.DocumentSymbolCollector([(0, declarationUtils_1.getNameFromDeclaration)(this._declarations[0]) || ''], this._declarations, this._evaluator, this._token, parseResults.parseTree,
172
172
  /* treatModuleImportAndFromImportSame */ true,
173
173
  /* skipUnreachableCode */ false);
174
174
  // See if we need to insert new import statement
@@ -187,7 +187,7 @@ class RenameModuleProvider {
187
187
  }
188
188
  if ((0, parseTreeUtils_1.isFromImportName)(nodeFound)) {
189
189
  // ex) from ... import [symbol] ...
190
- const fromNode = (_b = nodeFound.parent) === null || _b === void 0 ? void 0 : _b.parent;
190
+ const fromNode = (_a = nodeFound.parent) === null || _a === void 0 ? void 0 : _a.parent;
191
191
  const newModuleName = this._getNewModuleName(filePath, fromNode.module.leadingDots > 0,
192
192
  /* isLastPartImportName */ false);
193
193
  if (fromNode.imports.length === 1) {
@@ -203,7 +203,7 @@ class RenameModuleProvider {
203
203
  // For now, this won't merge absolute and relative path "from import" statement.
204
204
  const importNameInfo = {
205
205
  name: importFromAs.name.value,
206
- alias: (_c = importFromAs.alias) === null || _c === void 0 ? void 0 : _c.value,
206
+ alias: (_b = importFromAs.alias) === null || _b === void 0 ? void 0 : _b.value,
207
207
  };
208
208
  this._addResultEdits(this._getTextEditsForNewOrExistingFromImport(filePath, fromNode, parseResults, nameRemoved, importStatements, newModuleName, [importNameInfo]));
209
209
  }
@@ -233,8 +233,8 @@ class RenameModuleProvider {
233
233
  // getModule().foo
234
234
  continue;
235
235
  }
236
- const moduleDecl = (_d = this._evaluator
237
- .getDeclarationsForNameNode(moduleName)) === null || _d === void 0 ? void 0 : _d.filter((d) => (0, declaration_1.isAliasDeclaration)(d) &&
236
+ const moduleDecl = (_c = this._evaluator
237
+ .getDeclarationsForNameNode(moduleName)) === null || _c === void 0 ? void 0 : _c.filter((d) => (0, declaration_1.isAliasDeclaration)(d) &&
238
238
  (d.node.nodeType === 21 /* ImportAs */ || d.node.nodeType === 23 /* ImportFromAs */));
239
239
  if (!moduleDecl || moduleDecl.length === 0) {
240
240
  // ex) from xxx import yyy
@@ -307,11 +307,11 @@ class RenameModuleProvider {
307
307
  ? importAs.module.nameParts[importAs.module.nameParts.length - 1]
308
308
  : importAs.name);
309
309
  const declarations = documentSymbolCollector_1.DocumentSymbolCollector.getDeclarationsForNode(nameToBind, this._evaluator,
310
- /* resolveLocalName */ false, this._token);
310
+ /* resolveLocalName */ false, documentSymbolCollector_1.DocumentSymbolCollectorUseCase.Rename, this._token);
311
311
  if (declarations.length === 0) {
312
312
  return false;
313
313
  }
314
- const collector = new documentSymbolCollector_1.DocumentSymbolCollector(nameToBind.value, declarations, this._evaluator, this._token, parseResults.parseTree,
314
+ const collector = new documentSymbolCollector_1.DocumentSymbolCollector([nameToBind.value], declarations, this._evaluator, this._token, parseResults.parseTree,
315
315
  /* treatModuleImportAndFromImportSame */ true,
316
316
  /* skipUnreachableCode */ false);
317
317
  for (const result of collector.collect()) {
@@ -330,7 +330,7 @@ class RenameModuleProvider {
330
330
  return true;
331
331
  }
332
332
  _renameFolderReferences(filePath, parseResults) {
333
- const collector = new documentSymbolCollector_1.DocumentSymbolCollector(this.lastModuleName, this._declarations, this._evaluator, this._token, parseResults.parseTree,
333
+ const collector = new documentSymbolCollector_1.DocumentSymbolCollector([this.lastModuleName], this._declarations, this._evaluator, this._token, parseResults.parseTree,
334
334
  /* treatModuleImportAndFromImportSame */ true,
335
335
  /* skipUnreachableCode */ false);
336
336
  // We only support simple rename of folder. Change all occurrence of the old folder name
@@ -340,7 +340,7 @@ class RenameModuleProvider {
340
340
  }
341
341
  }
342
342
  _renameModuleReferences(filePath, parseResults) {
343
- const collector = new documentSymbolCollector_1.DocumentSymbolCollector(this.lastModuleName, this._declarations, this._evaluator, this._token, parseResults.parseTree,
343
+ const collector = new documentSymbolCollector_1.DocumentSymbolCollector([this.lastModuleName], this._declarations, this._evaluator, this._token, parseResults.parseTree,
344
344
  /* treatModuleImportAndFromImportSame */ true,
345
345
  /* skipUnreachableCode */ false);
346
346
  const nameRemoved = new Set();
@@ -556,7 +556,7 @@ class RenameModuleProvider {
556
556
  }
557
557
  /** TODO: if we get more than 1 decls, flag it as attention needed */
558
558
  const decls = documentSymbolCollector_1.DocumentSymbolCollector.getDeclarationsForNode(nodeFound, this._evaluator,
559
- /* resolveLocalName */ false, this._token).filter((d) => (0, declaration_1.isAliasDeclaration)(d));
559
+ /* resolveLocalName */ false, documentSymbolCollector_1.DocumentSymbolCollectorUseCase.Rename, this._token).filter((d) => (0, declaration_1.isAliasDeclaration)(d));
560
560
  if (this._onlyNameChanged) {
561
561
  // Simple case. only name has changed. but not path.
562
562
  // Just replace name to new symbol name.