@zzzen/pyright-internal 1.2.0-dev.20231001 → 1.2.0-dev.20231008
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.
- package/dist/analyzer/checker.d.ts +3 -1
- package/dist/analyzer/checker.js +55 -17
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.js +10 -3
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/decorators.d.ts +6 -1
- package/dist/analyzer/decorators.js +31 -24
- package/dist/analyzer/decorators.js.map +1 -1
- package/dist/analyzer/parseTreeUtils.d.ts +1 -0
- package/dist/analyzer/parseTreeUtils.js +21 -2
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/properties.js +4 -0
- package/dist/analyzer/properties.js.map +1 -1
- package/dist/analyzer/protocols.js +7 -1
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/scopeUtils.js +3 -2
- package/dist/analyzer/scopeUtils.js.map +1 -1
- package/dist/analyzer/typeEvaluator.d.ts +2 -1
- package/dist/analyzer/typeEvaluator.js +147 -222
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +7 -0
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.d.ts +1 -1
- package/dist/analyzer/typeGuards.js +55 -43
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typeUtils.js +1 -1
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/types.d.ts +1 -0
- package/dist/analyzer/types.js +3 -0
- package/dist/analyzer/types.js.map +1 -1
- package/dist/commands/dumpFileDebugInfoCommand.js +1 -1
- package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
- package/dist/common/extensibility.d.ts +19 -6
- package/dist/common/extensibility.js +6 -7
- package/dist/common/extensibility.js.map +1 -1
- package/dist/common/pythonVersion.d.ts +1 -1
- package/dist/common/pythonVersion.js +1 -1
- package/dist/common/realFileSystem.js +9 -16
- package/dist/common/realFileSystem.js.map +1 -1
- package/dist/common/serviceProvider.d.ts +1 -1
- package/dist/common/serviceProvider.js.map +1 -1
- package/dist/common/serviceProviderExtensions.d.ts +3 -2
- package/dist/common/serviceProviderExtensions.js +2 -1
- package/dist/common/serviceProviderExtensions.js.map +1 -1
- package/dist/languageServerBase.d.ts +2 -0
- package/dist/languageServerBase.js +28 -1
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/callHierarchyProvider.d.ts +0 -1
- package/dist/languageService/callHierarchyProvider.js +33 -16
- package/dist/languageService/callHierarchyProvider.js.map +1 -1
- package/dist/languageService/definitionProvider.js +4 -5
- package/dist/languageService/definitionProvider.js.map +1 -1
- package/dist/languageService/documentHighlightProvider.js +5 -2
- package/dist/languageService/documentHighlightProvider.js.map +1 -1
- package/dist/languageService/documentSymbolCollector.d.ts +32 -23
- package/dist/languageService/documentSymbolCollector.js +170 -267
- package/dist/languageService/documentSymbolCollector.js.map +1 -1
- package/dist/languageService/hoverProvider.js +1 -5
- package/dist/languageService/hoverProvider.js.map +1 -1
- package/dist/languageService/referencesProvider.d.ts +6 -6
- package/dist/languageService/referencesProvider.js +23 -8
- package/dist/languageService/referencesProvider.js.map +1 -1
- package/dist/languageService/renameProvider.js +3 -3
- package/dist/languageService/renameProvider.js.map +1 -1
- package/dist/localization/localize.d.ts +21 -0
- package/dist/localization/localize.js +7 -0
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.cs.json +4 -0
- package/dist/localization/package.nls.de.json +4 -0
- package/dist/localization/package.nls.en-us.json +7 -0
- package/dist/localization/package.nls.es.json +4 -0
- package/dist/localization/package.nls.fr.json +4 -0
- package/dist/localization/package.nls.it.json +4 -0
- package/dist/localization/package.nls.ja.json +4 -0
- package/dist/localization/package.nls.ko.json +4 -0
- package/dist/localization/package.nls.pl.json +4 -0
- package/dist/localization/package.nls.pt-br.json +4 -0
- package/dist/localization/package.nls.qps-ploc.json +4 -0
- package/dist/localization/package.nls.ru.json +4 -0
- package/dist/localization/package.nls.tr.json +4 -0
- package/dist/localization/package.nls.zh-cn.json +4 -0
- package/dist/localization/package.nls.zh-tw.json +4 -0
- package/dist/parser/stringTokenUtils.js +9 -5
- package/dist/parser/stringTokenUtils.js.map +1 -1
- package/dist/parser/tokenizer.d.ts +1 -0
- package/dist/parser/tokenizer.js +5 -5
- package/dist/parser/tokenizer.js.map +1 -1
- package/dist/tests/checker.test.js +8 -0
- package/dist/tests/checker.test.js.map +1 -1
- package/dist/tests/documentSymbolCollector.test.js +8 -363
- package/dist/tests/documentSymbolCollector.test.js.map +1 -1
- package/dist/tests/testStateUtils.d.ts +3 -0
- package/dist/tests/testStateUtils.js +25 -1
- package/dist/tests/testStateUtils.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +1 -1
- package/dist/tests/typeEvaluator2.test.js +9 -5
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +7 -3
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +8 -8
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/dist/tests/typeEvaluator5.test.js +4 -2
- package/dist/tests/typeEvaluator5.test.js.map +1 -1
- package/dist/workspaceFactory.d.ts +2 -1
- package/dist/workspaceFactory.js +3 -1
- package/dist/workspaceFactory.js.map +1 -1
- package/package.json +1 -1
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.overriddenFunction.fourslash.d.ts +0 -1
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.overriddenFunction.fourslash.js +0 -40
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.overriddenFunction.fourslash.js.map +0 -1
@@ -28,91 +28,84 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
28
28
|
return result;
|
29
29
|
};
|
30
30
|
Object.defineProperty(exports, "__esModule", { value: true });
|
31
|
-
exports.
|
31
|
+
exports.addDeclarationIfUnique = exports.getDeclarationsForNameNode = exports.DocumentSymbolCollector = void 0;
|
32
32
|
const AnalyzerNodeInfo = __importStar(require("../analyzer/analyzerNodeInfo"));
|
33
33
|
const declaration_1 = require("../analyzer/declaration");
|
34
34
|
const declarationUtils_1 = require("../analyzer/declarationUtils");
|
35
|
-
const ParseTreeUtils = __importStar(require("../analyzer/parseTreeUtils"));
|
36
35
|
const parseTreeUtils_1 = require("../analyzer/parseTreeUtils");
|
37
36
|
const parseTreeWalker_1 = require("../analyzer/parseTreeWalker");
|
38
37
|
const ScopeUtils = __importStar(require("../analyzer/scopeUtils"));
|
39
38
|
const sourceFile_1 = require("../analyzer/sourceFile");
|
40
39
|
const sourceFileInfoUtils_1 = require("../analyzer/sourceFileInfoUtils");
|
41
40
|
const sourceMapper_1 = require("../analyzer/sourceMapper");
|
42
|
-
const typeUtils_1 = require("../analyzer/typeUtils");
|
43
|
-
const types_1 = require("../analyzer/types");
|
44
41
|
const cancellationUtils_1 = require("../common/cancellationUtils");
|
45
42
|
const collectionUtils_1 = require("../common/collectionUtils");
|
46
43
|
const debug_1 = require("../common/debug");
|
47
44
|
const extensibility_1 = require("../common/extensibility");
|
48
45
|
const serviceProviderExtensions_1 = require("../common/serviceProviderExtensions");
|
49
|
-
|
50
|
-
(function (DocumentSymbolCollectorUseCase) {
|
51
|
-
DocumentSymbolCollectorUseCase[DocumentSymbolCollectorUseCase["Rename"] = 0] = "Rename";
|
52
|
-
DocumentSymbolCollectorUseCase[DocumentSymbolCollectorUseCase["Reference"] = 1] = "Reference";
|
53
|
-
})(DocumentSymbolCollectorUseCase = exports.DocumentSymbolCollectorUseCase || (exports.DocumentSymbolCollectorUseCase = {}));
|
46
|
+
const core_1 = require("../common/core");
|
54
47
|
// This walker looks for symbols that are semantically equivalent
|
55
48
|
// to the requested symbol.
|
56
49
|
class DocumentSymbolCollector extends parseTreeWalker_1.ParseTreeWalker {
|
57
|
-
constructor(_program, symbolNames,
|
50
|
+
constructor(_program, symbolNames, declarations, _startingNode, _cancellationToken, options) {
|
51
|
+
var _a, _b, _c, _d, _e;
|
58
52
|
super();
|
59
53
|
this._program = _program;
|
60
|
-
this._declarations = _declarations;
|
61
|
-
this._cancellationToken = _cancellationToken;
|
62
54
|
this._startingNode = _startingNode;
|
63
|
-
this.
|
64
|
-
this._skipUnreachableCode = _skipUnreachableCode;
|
65
|
-
this._useCase = _useCase;
|
55
|
+
this._cancellationToken = _cancellationToken;
|
66
56
|
this._results = [];
|
67
57
|
this._dunderAllNameNodes = new Set();
|
68
58
|
this._symbolNames = new Set();
|
59
|
+
this._declarations = [];
|
69
60
|
// Start with the symbols passed in
|
70
61
|
symbolNames.forEach((s) => this._symbolNames.add(s));
|
62
|
+
this._declarations.push(...declarations);
|
63
|
+
this._treatModuleInImportAndFromImportSame = (_a = options === null || options === void 0 ? void 0 : options.treatModuleInImportAndFromImportSame) !== null && _a !== void 0 ? _a : false;
|
64
|
+
this._skipUnreachableCode = (_b = options === null || options === void 0 ? void 0 : options.skipUnreachableCode) !== null && _b !== void 0 ? _b : true;
|
65
|
+
this._useCase = (_c = options === null || options === void 0 ? void 0 : options.useCase) !== null && _c !== void 0 ? _c : extensibility_1.ReferenceUseCase.References;
|
66
|
+
this._usageProviders =
|
67
|
+
(_d = options === null || options === void 0 ? void 0 : options.providers) !== null && _d !== void 0 ? _d : ((_e = this._program.serviceProvider.tryGet(serviceProviderExtensions_1.ServiceKeys.symbolUsageProviderFactory)) !== null && _e !== void 0 ? _e : [])
|
68
|
+
.map((f) => f.tryCreateProvider(this._useCase, declarations, this._cancellationToken))
|
69
|
+
.filter(core_1.isDefined);
|
70
|
+
if ((options === null || options === void 0 ? void 0 : options.providers) === undefined) {
|
71
|
+
// Check whether we need to add new symbol names and declarations.
|
72
|
+
this._usageProviders.forEach((p) => {
|
73
|
+
p.appendSymbolNamesTo(this._symbolNames);
|
74
|
+
p.appendDeclarationsTo(this._declarations);
|
75
|
+
});
|
76
|
+
}
|
71
77
|
// Don't report strings in __all__ right away, that will
|
72
78
|
// break the assumption on the result ordering.
|
73
79
|
this._setDunderAllNodes(this._startingNode);
|
74
|
-
// Check if one of our symbols is __init__ and we
|
75
|
-
// have a class declaration in the list and we are
|
76
|
-
// computing symbols for references and not rename.
|
77
|
-
const initDeclaration = _declarations.find((d) => d.type === 5 /* Function */ && d.node.name.value === '__init__');
|
78
|
-
if (initDeclaration && _useCase === DocumentSymbolCollectorUseCase.Reference) {
|
79
|
-
const classDeclaration = _declarations.find((d) => d.type === 6 /* Class */);
|
80
|
-
if (classDeclaration) {
|
81
|
-
this._initFunction = initDeclaration.node;
|
82
|
-
this._symbolNames.add(classDeclaration.node.name.value);
|
83
|
-
}
|
84
|
-
}
|
85
80
|
}
|
86
|
-
static collectFromNode(program, node, cancellationToken, startingNode,
|
87
|
-
const declarations = this.getDeclarationsForNode(program, node,
|
88
|
-
/* resolveLocalName */ true, useCase, cancellationToken);
|
81
|
+
static collectFromNode(program, node, cancellationToken, startingNode, options) {
|
82
|
+
const declarations = this.getDeclarationsForNode(program, node, /* resolveLocalName */ true, cancellationToken);
|
89
83
|
startingNode = startingNode !== null && startingNode !== void 0 ? startingNode : (0, parseTreeUtils_1.getModuleNode)(node);
|
90
84
|
if (!startingNode) {
|
91
85
|
return [];
|
92
86
|
}
|
93
|
-
const collector = new DocumentSymbolCollector(program, [node.value], declarations,
|
87
|
+
const collector = new DocumentSymbolCollector(program, [node.value], declarations, startingNode, cancellationToken, options);
|
94
88
|
return collector.collect();
|
95
89
|
}
|
96
|
-
static getDeclarationsForNode(program, node, resolveLocalName,
|
90
|
+
static getDeclarationsForNode(program, node, resolveLocalName, token) {
|
97
91
|
(0, cancellationUtils_1.throwIfCancellationRequested)(token);
|
98
92
|
const evaluator = program.evaluator;
|
99
93
|
if (!evaluator) {
|
100
94
|
return [];
|
101
95
|
}
|
102
|
-
const declarations =
|
103
|
-
/* skipUnreachableCode */ false);
|
96
|
+
const declarations = getDeclarationsForNameNode(evaluator, node, /* skipUnreachableCode */ false);
|
104
97
|
const fileInfo = AnalyzerNodeInfo.getFileInfo(node);
|
105
98
|
const resolvedDeclarations = [];
|
106
99
|
const sourceMapper = program.getSourceMapper(fileInfo.filePath, token);
|
107
100
|
declarations.forEach((decl) => {
|
108
101
|
const resolvedDecl = evaluator.resolveAliasDeclaration(decl, resolveLocalName);
|
109
102
|
if (resolvedDecl) {
|
110
|
-
|
103
|
+
addDeclarationIfUnique(resolvedDeclarations, resolvedDecl);
|
111
104
|
if (sourceMapper && (0, sourceMapper_1.isStubFile)(resolvedDecl.path)) {
|
112
105
|
const implDecls = sourceMapper.findDeclarations(resolvedDecl);
|
113
106
|
for (const implDecl of implDecls) {
|
114
107
|
if (implDecl && implDecl.path) {
|
115
|
-
|
108
|
+
addDeclarationIfUnique(resolvedDeclarations, implDecl);
|
116
109
|
}
|
117
110
|
}
|
118
111
|
}
|
@@ -144,7 +137,7 @@ class DocumentSymbolCollector extends parseTreeWalker_1.ParseTreeWalker {
|
|
144
137
|
symbol === null || symbol === void 0 ? void 0 : symbol.getDeclarations().filter((d) => !(0, declaration_1.isAliasDeclaration)(d)).forEach((decl) => {
|
145
138
|
const resolvedDecl = evaluator.resolveAliasDeclaration(decl, resolveLocalName);
|
146
139
|
if (resolvedDecl) {
|
147
|
-
|
140
|
+
addDeclarationIfUnique(declarations, resolvedDecl);
|
148
141
|
}
|
149
142
|
});
|
150
143
|
}
|
@@ -165,10 +158,10 @@ class DocumentSymbolCollector extends parseTreeWalker_1.ParseTreeWalker {
|
|
165
158
|
return false;
|
166
159
|
}
|
167
160
|
if (this._declarations.length > 0) {
|
168
|
-
const declarations =
|
161
|
+
const declarations = getDeclarationsForNameNode(this._evaluator, node, this._skipUnreachableCode);
|
169
162
|
if (declarations && declarations.length > 0) {
|
170
163
|
// Does this name share a declaration with the symbol of interest?
|
171
|
-
if (
|
164
|
+
if (this._resultsContainsDeclaration(node, declarations)) {
|
172
165
|
this._addResult(node);
|
173
166
|
}
|
174
167
|
}
|
@@ -204,52 +197,32 @@ class DocumentSymbolCollector extends parseTreeWalker_1.ParseTreeWalker {
|
|
204
197
|
const range = node.nodeType === 38 /* Name */ ? node : (0, parseTreeUtils_1.getStringNodeValueRange)(node);
|
205
198
|
this._results.push({ node, range });
|
206
199
|
}
|
207
|
-
_isDeclarationAllowed(resolvedDecl
|
208
|
-
|
209
|
-
// Declaration is allowed if:
|
210
|
-
// Matches one of our declarations.
|
211
|
-
// and --
|
212
|
-
// That match is the right kind.
|
213
|
-
const match = this._declarations.find((decl) => (0, declarationUtils_1.areDeclarationsSame)(decl, resolvedDecl, this._treatModuleInImportAndFromImportSame,
|
200
|
+
_isDeclarationAllowed(resolvedDecl) {
|
201
|
+
return this._declarations.some((decl) => (0, declarationUtils_1.areDeclarationsSame)(decl, resolvedDecl, this._treatModuleInImportAndFromImportSame,
|
214
202
|
/* skipRangeForAliases */ true));
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
else if (match.type === 6 /* Class */) {
|
224
|
-
// If this is a class type match, only match on class calls.
|
225
|
-
// Meaning something like so:
|
226
|
-
// a = ClassA()
|
227
|
-
return ((_a = referenceNode.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 9 /* Call */;
|
228
|
-
}
|
203
|
+
}
|
204
|
+
_resultsContainsDeclaration(usage, declarations) {
|
205
|
+
const results = [...declarations];
|
206
|
+
this._usageProviders.forEach((p) => p.appendDeclarationsAt(usage, declarations, results));
|
207
|
+
return results.some((declaration) => {
|
208
|
+
// Resolve the declaration.
|
209
|
+
const resolvedDecl = this._evaluator.resolveAliasDeclaration(declaration, /* resolveLocalNames */ false);
|
210
|
+
if (!resolvedDecl) {
|
229
211
|
return false;
|
230
212
|
}
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
return true;
|
245
|
-
}
|
246
|
-
// We didn't find the declaration using local-only alias resolution. Attempt
|
247
|
-
// it again by fully resolving the alias.
|
248
|
-
const resolvedDeclNonlocal = this._getResolveAliasDeclaration(resolvedDecl);
|
249
|
-
if (!resolvedDeclNonlocal || resolvedDeclNonlocal === resolvedDecl) {
|
250
|
-
return false;
|
251
|
-
}
|
252
|
-
return this._isDeclarationAllowed(resolvedDeclNonlocal, referenceNode);
|
213
|
+
// The reference results declarations are already resolved, so we don't
|
214
|
+
// need to call resolveAliasDeclaration on them.
|
215
|
+
if (this._isDeclarationAllowed(resolvedDecl)) {
|
216
|
+
return true;
|
217
|
+
}
|
218
|
+
// We didn't find the declaration using local-only alias resolution. Attempt
|
219
|
+
// it again by fully resolving the alias.
|
220
|
+
const resolvedDeclNonlocal = this._getResolveAliasDeclaration(resolvedDecl);
|
221
|
+
if (!resolvedDeclNonlocal || resolvedDeclNonlocal === resolvedDecl) {
|
222
|
+
return false;
|
223
|
+
}
|
224
|
+
return this._isDeclarationAllowed(resolvedDeclNonlocal);
|
225
|
+
});
|
253
226
|
}
|
254
227
|
_getResolveAliasDeclaration(declaration) {
|
255
228
|
// TypeEvaluator.resolveAliasDeclaration only resolve alias in AliasDeclaration in the form of
|
@@ -290,210 +263,140 @@ class DocumentSymbolCollector extends parseTreeWalker_1.ParseTreeWalker {
|
|
290
263
|
if (!symbolInScope) {
|
291
264
|
return;
|
292
265
|
}
|
293
|
-
if (!symbolInScope.symbol.getDeclarations()
|
266
|
+
if (!this._resultsContainsDeclaration(stringNode, symbolInScope.symbol.getDeclarations())) {
|
294
267
|
return;
|
295
268
|
}
|
296
269
|
this._dunderAllNameNodes.add(stringNode);
|
297
270
|
});
|
298
271
|
}
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
declarations.push(itemToAdd);
|
272
|
+
}
|
273
|
+
exports.DocumentSymbolCollector = DocumentSymbolCollector;
|
274
|
+
function getDeclarationsForNameNode(evaluator, node, skipUnreachableCode = true) {
|
275
|
+
var _a;
|
276
|
+
// This can handle symbols brought in by wildcard (import *) as long as the declarations that the symbol collector
|
277
|
+
// compares against point to the actual alias declaration, not one that uses local name (ex, import alias)
|
278
|
+
if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.nodeType) !== 37 /* ModuleName */) {
|
279
|
+
return _getDeclarationsForNonModuleNameNode(evaluator, node, skipUnreachableCode);
|
308
280
|
}
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
((node.parent.leftExpression.nodeType === 9 /* Call */ &&
|
319
|
-
node.parent.leftExpression.leftExpression.nodeType === 38 /* Name */ &&
|
320
|
-
node.parent.leftExpression.leftExpression.value === 'super') ||
|
321
|
-
(node.parent.leftExpression.nodeType === 38 /* Name */ &&
|
322
|
-
node.parent.leftExpression.value === 'super'))) {
|
323
|
-
// We're on the 'super().__init__' call.
|
324
|
-
const decls = evaluator.getDeclarationsForNameNode(node, /* skipUnreachableCode */ true);
|
325
|
-
if (decls && decls.length > 0 && decls[0].node.parent) {
|
326
|
-
// Parent node of the decl should be the class
|
327
|
-
const classNode = ParseTreeUtils.getEnclosingClass(decls[0].node.parent);
|
328
|
-
if (classNode) {
|
329
|
-
return this._getDeclarationsForNonModuleNameNode(classNode.name, evaluator);
|
330
|
-
}
|
331
|
-
}
|
281
|
+
return _getDeclarationsForModuleNameNode(evaluator, node);
|
282
|
+
}
|
283
|
+
exports.getDeclarationsForNameNode = getDeclarationsForNameNode;
|
284
|
+
function addDeclarationIfUnique(declarations, itemToAdd) {
|
285
|
+
for (const def of declarations) {
|
286
|
+
if ((0, declarationUtils_1.areDeclarationsSame)(def, itemToAdd,
|
287
|
+
/* treatModuleInImportAndFromImportSame */ false,
|
288
|
+
/* skipRangeForAliases */ true)) {
|
289
|
+
return;
|
332
290
|
}
|
333
|
-
return [];
|
334
291
|
}
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
}
|
346
|
-
}
|
347
|
-
else {
|
348
|
-
result = this._getDeclarationsForModuleNameNode(node, evaluator);
|
349
|
-
}
|
350
|
-
const providers = serviceProvider.tryGet(serviceProviderExtensions_1.ServiceKeys.symbolDeclarationProviders);
|
351
|
-
if (providers) {
|
352
|
-
providers.forEach((p) => {
|
353
|
-
const declUseCase = useCase === DocumentSymbolCollectorUseCase.Rename
|
354
|
-
? extensibility_1.DeclarationUseCase.Rename
|
355
|
-
: extensibility_1.DeclarationUseCase.References;
|
356
|
-
const extras = p.tryGetDeclarations(evaluator, node, node.start, declUseCase, token);
|
357
|
-
if (extras && extras.length > 0) {
|
358
|
-
(0, collectionUtils_1.appendArray)(result, extras);
|
359
|
-
}
|
360
|
-
});
|
361
|
-
}
|
362
|
-
return result;
|
292
|
+
declarations.push(itemToAdd);
|
293
|
+
}
|
294
|
+
exports.addDeclarationIfUnique = addDeclarationIfUnique;
|
295
|
+
function _getDeclarationsForNonModuleNameNode(evaluator, node, skipUnreachableCode = true) {
|
296
|
+
var _a, _b;
|
297
|
+
(0, debug_1.assert)(((_a = node.parent) === null || _a === void 0 ? void 0 : _a.nodeType) !== 37 /* ModuleName */);
|
298
|
+
let decls = evaluator.getDeclarationsForNameNode(node, skipUnreachableCode) || [];
|
299
|
+
if (((_b = node.parent) === null || _b === void 0 ? void 0 : _b.nodeType) === 23 /* ImportFromAs */) {
|
300
|
+
// Make sure we get the decl for this specific "from import" statement
|
301
|
+
decls = decls.filter((d) => d.node === node.parent);
|
363
302
|
}
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
if ((
|
369
|
-
//
|
370
|
-
|
371
|
-
}
|
372
|
-
// If we can't get decl, see whether we can get type from the node.
|
373
|
-
// Some might have synthesized type for the node such as subModule in import X.Y statement.
|
374
|
-
if (decls.length === 0) {
|
375
|
-
const type = evaluator.getType(node);
|
376
|
-
if ((type === null || type === void 0 ? void 0 : type.category) === 8 /* Module */) {
|
377
|
-
// Synthesize decl for the module.
|
378
|
-
return [(0, declarationUtils_1.createSynthesizedAliasDeclaration)(type.filePath)];
|
379
|
-
}
|
380
|
-
}
|
381
|
-
// We would like to make X in import X and import X.Y as Y to match, but path for
|
382
|
-
// X in import X and one in import X.Y as Y might not match since path in X.Y will point
|
383
|
-
// to X.Y rather than X if import statement has an alias.
|
384
|
-
// so, for such case, we put synthesized one so we can treat X in both statement same.
|
385
|
-
for (const aliasDecl of decls.filter((d) => (0, declaration_1.isAliasDeclaration)(d) && !d.loadSymbolsFromPath)) {
|
386
|
-
const node = aliasDecl.node;
|
387
|
-
if (node.nodeType === 23 /* ImportFromAs */) {
|
388
|
-
// from ... import X case, decl in the submodule fallback has the path.
|
389
|
-
continue;
|
390
|
-
}
|
391
|
-
(0, collectionUtils_1.appendArray)(decls, evaluator.getDeclarationsForNameNode(node.module.nameParts[0], skipUnreachableCode) || []);
|
303
|
+
// If we can't get decl, see whether we can get type from the node.
|
304
|
+
// Some might have synthesized type for the node such as subModule in import X.Y statement.
|
305
|
+
if (decls.length === 0) {
|
306
|
+
const type = evaluator.getType(node);
|
307
|
+
if ((type === null || type === void 0 ? void 0 : type.category) === 8 /* Module */) {
|
308
|
+
// Synthesize decl for the module.
|
309
|
+
return [(0, declarationUtils_1.createSynthesizedAliasDeclaration)(type.filePath)];
|
392
310
|
}
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
//
|
402
|
-
|
403
|
-
continue;
|
404
|
-
}
|
405
|
-
for (const mroClass of classResults.classType.details.mro) {
|
406
|
-
if ((0, types_1.isInstantiableClass)(mroClass)) {
|
407
|
-
const currentMember = (0, typeUtils_1.lookUpClassMember)(mroClass, methodDecl.node.name.value);
|
408
|
-
const baseMember = (0, typeUtils_1.lookUpClassMember)(mroClass, methodDecl.node.name.value, 1 /* SkipOriginalClass */);
|
409
|
-
if (currentMember && !baseMember) {
|
410
|
-
// Found base decl of the overridden method. Hold onto the decls.
|
411
|
-
currentMember.symbol
|
412
|
-
.getDeclarations()
|
413
|
-
.filter((d) => (0, declaration_1.isFunctionDeclaration)(d) && d.isMethod)
|
414
|
-
.forEach((d) => this._addIfUnique(decls, d));
|
415
|
-
}
|
416
|
-
}
|
417
|
-
}
|
311
|
+
}
|
312
|
+
// We would like to make X in import X and import X.Y as Y to match, but path for
|
313
|
+
// X in import X and one in import X.Y as Y might not match since path in X.Y will point
|
314
|
+
// to X.Y rather than X if import statement has an alias.
|
315
|
+
// so, for such case, we put synthesized one so we can treat X in both statement same.
|
316
|
+
for (const aliasDecl of decls.filter((d) => (0, declaration_1.isAliasDeclaration)(d) && !d.loadSymbolsFromPath)) {
|
317
|
+
const node = aliasDecl.node;
|
318
|
+
if (node.nodeType === 23 /* ImportFromAs */) {
|
319
|
+
// from ... import X case, decl in the submodule fallback has the path.
|
320
|
+
continue;
|
418
321
|
}
|
419
|
-
|
322
|
+
(0, collectionUtils_1.appendArray)(decls, evaluator.getDeclarationsForNameNode(node.module.nameParts[0], skipUnreachableCode) || []);
|
420
323
|
}
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
324
|
+
return decls;
|
325
|
+
}
|
326
|
+
function _getDeclarationsForModuleNameNode(evaluator, node) {
|
327
|
+
var _a, _b, _c, _d, _e;
|
328
|
+
(0, debug_1.assert)(((_a = node.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 37 /* ModuleName */);
|
329
|
+
// We don't have symbols corresponding to ModuleName in our system since those
|
330
|
+
// are not referenceable. but in "find all reference", we want to match those
|
331
|
+
// if it refers to the same module file. Code below handles different kind of
|
332
|
+
// ModuleName cases.
|
333
|
+
const moduleName = node.parent;
|
334
|
+
if (((_b = moduleName.parent) === null || _b === void 0 ? void 0 : _b.nodeType) === 21 /* ImportAs */ ||
|
335
|
+
((_c = moduleName.parent) === null || _c === void 0 ? void 0 : _c.nodeType) === 22 /* ImportFrom */) {
|
336
|
+
const index = moduleName.nameParts.findIndex((n) => n === node);
|
337
|
+
// Special case, first module name part.
|
338
|
+
if (index === 0) {
|
339
|
+
// 1. import X or from X import ...
|
340
|
+
const decls = [];
|
341
|
+
// First, we need to put decls for module names type evaluator synthesized so that
|
342
|
+
// we can match both "import X" and "from X import ..."
|
343
|
+
(0, collectionUtils_1.appendArray)(decls, ((_d = evaluator.getDeclarationsForNameNode(moduleName.nameParts[0])) === null || _d === void 0 ? void 0 : _d.filter((d) => (0, declaration_1.isAliasDeclaration)(d))) ||
|
344
|
+
[]);
|
345
|
+
if (decls.length === 0 || moduleName.parent.nodeType !== 21 /* ImportAs */) {
|
346
|
+
return decls;
|
347
|
+
}
|
348
|
+
// If module name belong to "import xxx" not "from xxx", then see whether
|
349
|
+
// we can get regular decls (decls created from binder, not synthesized from type eval)
|
350
|
+
// from symbol as well.
|
351
|
+
// ex, import X as x
|
352
|
+
const isImportAsWithAlias = moduleName.nameParts.length === 1 &&
|
353
|
+
moduleName.parent.nodeType === 21 /* ImportAs */ &&
|
354
|
+
!!moduleName.parent.alias;
|
355
|
+
// if "import" has alias, symbol is assigned to alias, not the module.
|
356
|
+
const importName = isImportAsWithAlias
|
357
|
+
? moduleName.parent.alias.value
|
358
|
+
: moduleName.nameParts[0].value;
|
359
|
+
// And we also need to re-use "decls for X" binder has created
|
360
|
+
// so that it matches with decls type evaluator returns for "references for X".
|
361
|
+
// ex) import X or from .X import ... in init file and etc.
|
362
|
+
const symbolWithScope = (_e = ScopeUtils.getScopeForNode(node)) === null || _e === void 0 ? void 0 : _e.lookUpSymbolRecursive(importName);
|
363
|
+
if (symbolWithScope && moduleName.nameParts.length === 1) {
|
364
|
+
let declsFromSymbol = [];
|
365
|
+
(0, collectionUtils_1.appendArray)(declsFromSymbol, symbolWithScope.symbol.getDeclarations().filter((d) => (0, declaration_1.isAliasDeclaration)(d)));
|
366
|
+
// If symbols are re-used, then find one that belong to this import statement.
|
367
|
+
if (declsFromSymbol.length > 1) {
|
368
|
+
declsFromSymbol = declsFromSymbol.filter((d) => {
|
369
|
+
d = d;
|
370
|
+
if (d.firstNamePart !== undefined) {
|
371
|
+
// For multiple import statements with sub modules, decl can be re-used.
|
372
|
+
// ex) import X.Y and import X.Z or from .X import ... in init file.
|
373
|
+
// Decls for X will be reused for both import statements, and node will point
|
374
|
+
// to first import statement. For those case, use firstNamePart instead to check.
|
375
|
+
return d.firstNamePart === moduleName.nameParts[0].value;
|
376
|
+
}
|
377
|
+
return d.node === moduleName.parent;
|
378
|
+
});
|
442
379
|
}
|
443
|
-
// If module name belong to "import xxx" not "from xxx", then see whether
|
444
|
-
// we can get regular decls (decls created from binder, not synthesized from type eval)
|
445
|
-
// from symbol as well.
|
446
380
|
// ex, import X as x
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
// if "import" has alias, symbol is assigned to alias, not the module.
|
451
|
-
const importName = isImportAsWithAlias
|
452
|
-
? moduleName.parent.alias.value
|
453
|
-
: moduleName.nameParts[0].value;
|
454
|
-
// And we also need to re-use "decls for X" binder has created
|
455
|
-
// so that it matches with decls type evaluator returns for "references for X".
|
456
|
-
// ex) import X or from .X import ... in init file and etc.
|
457
|
-
const symbolWithScope = (_e = ScopeUtils.getScopeForNode(node)) === null || _e === void 0 ? void 0 : _e.lookUpSymbolRecursive(importName);
|
458
|
-
if (symbolWithScope && moduleName.nameParts.length === 1) {
|
459
|
-
let declsFromSymbol = [];
|
460
|
-
(0, collectionUtils_1.appendArray)(declsFromSymbol, symbolWithScope.symbol.getDeclarations().filter((d) => (0, declaration_1.isAliasDeclaration)(d)));
|
461
|
-
// If symbols are re-used, then find one that belong to this import statement.
|
462
|
-
if (declsFromSymbol.length > 1) {
|
463
|
-
declsFromSymbol = declsFromSymbol.filter((d) => {
|
464
|
-
d = d;
|
465
|
-
if (d.firstNamePart !== undefined) {
|
466
|
-
// For multiple import statements with sub modules, decl can be re-used.
|
467
|
-
// ex) import X.Y and import X.Z or from .X import ... in init file.
|
468
|
-
// Decls for X will be reused for both import statements, and node will point
|
469
|
-
// to first import statement. For those case, use firstNamePart instead to check.
|
470
|
-
return d.firstNamePart === moduleName.nameParts[0].value;
|
471
|
-
}
|
472
|
-
return d.node === moduleName.parent;
|
473
|
-
});
|
474
|
-
}
|
475
|
-
// ex, import X as x
|
476
|
-
// We have decls for the alias "x" not the module name "X". Convert decls for the "X"
|
477
|
-
if (isImportAsWithAlias) {
|
478
|
-
declsFromSymbol = (0, declarationUtils_1.getDeclarationsWithUsesLocalNameRemoved)(declsFromSymbol);
|
479
|
-
}
|
480
|
-
(0, collectionUtils_1.appendArray)(decls, declsFromSymbol);
|
381
|
+
// We have decls for the alias "x" not the module name "X". Convert decls for the "X"
|
382
|
+
if (isImportAsWithAlias) {
|
383
|
+
declsFromSymbol = (0, declarationUtils_1.getDeclarationsWithUsesLocalNameRemoved)(declsFromSymbol);
|
481
384
|
}
|
482
|
-
|
483
|
-
}
|
484
|
-
if (index > 0) {
|
485
|
-
// 2. import X.Y or from X.Y import ....
|
486
|
-
// For submodule "Y", we just use synthesized decls from type evaluator.
|
487
|
-
// Decls for these sub module don't actually exist in the system. Instead, symbol for Y in
|
488
|
-
// "import X.Y" hold onto synthesized module type (without any decl).
|
489
|
-
// And "from X.Y import ..." doesn't have any symbol associated module names.
|
490
|
-
// they can't be referenced in the module.
|
491
|
-
return evaluator.getDeclarationsForNameNode(moduleName.nameParts[index]) || [];
|
385
|
+
(0, collectionUtils_1.appendArray)(decls, declsFromSymbol);
|
492
386
|
}
|
493
|
-
return
|
387
|
+
return decls;
|
388
|
+
}
|
389
|
+
if (index > 0) {
|
390
|
+
// 2. import X.Y or from X.Y import ....
|
391
|
+
// For submodule "Y", we just use synthesized decls from type evaluator.
|
392
|
+
// Decls for these sub module don't actually exist in the system. Instead, symbol for Y in
|
393
|
+
// "import X.Y" hold onto synthesized module type (without any decl).
|
394
|
+
// And "from X.Y import ..." doesn't have any symbol associated module names.
|
395
|
+
// they can't be referenced in the module.
|
396
|
+
return evaluator.getDeclarationsForNameNode(moduleName.nameParts[index]) || [];
|
494
397
|
}
|
495
398
|
return [];
|
496
399
|
}
|
400
|
+
return [];
|
497
401
|
}
|
498
|
-
exports.DocumentSymbolCollector = DocumentSymbolCollector;
|
499
402
|
//# sourceMappingURL=documentSymbolCollector.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"documentSymbolCollector.js","sourceRoot":"","sources":["../../../src/languageService/documentSymbolCollector.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"documentSymbolCollector.js","sourceRoot":"","sources":["../../../src/languageService/documentSymbolCollector.ts"],"names":[],"mappings":"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"}
|