@zzzen/pyright-internal 1.2.0-dev.20230416 → 1.2.0-dev.20230423
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/binder.js +1 -3
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.js +17 -0
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/commentUtils.d.ts +1 -1
- package/dist/analyzer/commentUtils.js +18 -3
- package/dist/analyzer/commentUtils.js.map +1 -1
- package/dist/analyzer/docStringConversion.js +2 -3
- package/dist/analyzer/docStringConversion.js.map +1 -1
- package/dist/analyzer/patternMatching.d.ts +6 -2
- package/dist/analyzer/patternMatching.js +108 -2
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.d.ts +9 -7
- package/dist/analyzer/program.js +29 -24
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/service.d.ts +2 -2
- package/dist/analyzer/service.js +5 -5
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/sourceFile.d.ts +1 -3
- package/dist/analyzer/sourceFile.js +1 -9
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +44 -12
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +0 -1
- package/dist/analyzer/typeEvaluatorTypes.js +0 -2
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.d.ts +2 -0
- package/dist/analyzer/typeGuards.js +172 -175
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typeUtils.js +9 -9
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/types.js +10 -2
- package/dist/analyzer/types.js.map +1 -1
- package/dist/common/extensibility.d.ts +7 -4
- package/dist/common/extensibility.js.map +1 -1
- package/dist/languageServerBase.js +3 -2
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/callHierarchyProvider.js +17 -4
- package/dist/languageService/callHierarchyProvider.js.map +1 -1
- package/dist/languageService/completionProvider.js +119 -10
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/hoverProvider.d.ts +28 -28
- package/dist/languageService/hoverProvider.js +142 -120
- package/dist/languageService/hoverProvider.js.map +1 -1
- package/dist/languageService/importAdder.d.ts +13 -2
- package/dist/languageService/importAdder.js +73 -26
- package/dist/languageService/importAdder.js.map +1 -1
- package/dist/languageService/indentationUtils.js +6 -1
- package/dist/languageService/indentationUtils.js.map +1 -1
- package/dist/localization/localize.d.ts +2 -0
- package/dist/localization/localize.js +2 -0
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.en-us.json +2 -0
- package/dist/tests/checker.test.js +1 -1
- package/dist/tests/completions.test.js +173 -0
- package/dist/tests/completions.test.js.map +1 -1
- package/dist/tests/docStringConversion.test.js +11 -1
- package/dist/tests/docStringConversion.test.js.map +1 -1
- package/dist/tests/fourslash/completions.override2.fourslash.js +15 -0
- package/dist/tests/fourslash/completions.override2.fourslash.js.map +1 -1
- package/dist/tests/fourslash/fourslash.d.ts +11 -1
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.aliasedFunction.fourslash.js +5 -6
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.aliasedFunction.fourslash.js.map +1 -1
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.aliasedVariable.fourslash.js +1 -4
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.aliasedVariable.fourslash.js.map +1 -1
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.function.fourslash.js +10 -9
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.function.fourslash.js.map +1 -1
- package/dist/tests/fourslash/showcallhierarchy.outgoingCalls.aliasedFunction1.fourslash.d.ts +1 -0
- package/dist/tests/fourslash/showcallhierarchy.outgoingCalls.aliasedFunction1.fourslash.js +54 -0
- package/dist/tests/fourslash/showcallhierarchy.outgoingCalls.aliasedFunction1.fourslash.js.map +1 -0
- package/dist/tests/fourslash/showcallhierarchy.outgoingCalls.aliasedFunction2.fourslash.d.ts +1 -0
- package/dist/tests/fourslash/showcallhierarchy.outgoingCalls.aliasedFunction2.fourslash.js +46 -0
- package/dist/tests/fourslash/showcallhierarchy.outgoingCalls.aliasedFunction2.fourslash.js.map +1 -0
- package/dist/tests/fourslash/showcallhierarchy.outgoingCalls.function.fourslash.d.ts +1 -0
- package/dist/tests/fourslash/showcallhierarchy.outgoingCalls.function.fourslash.js +39 -0
- package/dist/tests/fourslash/showcallhierarchy.outgoingCalls.function.fourslash.js.map +1 -0
- package/dist/tests/harness/fourslash/testState.d.ts +6 -1
- package/dist/tests/harness/fourslash/testState.js +38 -6
- package/dist/tests/harness/fourslash/testState.js.map +1 -1
- package/dist/tests/importAdder.test.js +69 -1
- package/dist/tests/importAdder.test.js.map +1 -1
- package/dist/tests/indentationUtils.ptvs.test.js +2 -2
- package/dist/tests/indentationUtils.ptvs.test.js.map +1 -1
- package/dist/tests/indentationUtils.test.js +18 -0
- package/dist/tests/indentationUtils.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +6 -0
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +5 -1
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/package.json +1 -1
@@ -77,12 +77,16 @@ class CallHierarchyProvider {
|
|
77
77
|
(0, cancellationUtils_1.throwIfCancellationRequested)(token);
|
78
78
|
// Find the parse node root corresponding to the function or class.
|
79
79
|
let parseRoot;
|
80
|
-
|
81
|
-
|
80
|
+
const resolvedDecl = evaluator.resolveAliasDeclaration(declaration, /* resolveLocalNames */ true);
|
81
|
+
if (!resolvedDecl) {
|
82
|
+
return undefined;
|
83
|
+
}
|
84
|
+
if (resolvedDecl.type === 5 /* Function */) {
|
85
|
+
parseRoot = resolvedDecl.node;
|
82
86
|
}
|
83
|
-
else if (
|
87
|
+
else if (resolvedDecl.type === 6 /* Class */) {
|
84
88
|
// Look up the __init__ method for this class.
|
85
|
-
const classType = (_a = evaluator.getTypeForDeclaration(
|
89
|
+
const classType = (_a = evaluator.getTypeForDeclaration(resolvedDecl)) === null || _a === void 0 ? void 0 : _a.type;
|
86
90
|
if (classType && (0, types_1.isInstantiableClass)(classType)) {
|
87
91
|
// Don't perform a recursive search of parent classes in this
|
88
92
|
// case because we don't want to find an inherited __init__
|
@@ -131,6 +135,9 @@ class CallHierarchyProvider {
|
|
131
135
|
}
|
132
136
|
}
|
133
137
|
let symbolName;
|
138
|
+
// Although the LSP specification requires a URI, we are using a file path
|
139
|
+
// here because it is converted to the proper URI in LanguageServerBase.
|
140
|
+
// This simplifies our code and ensures compatibility with the LSP specification.
|
134
141
|
let callItemUri;
|
135
142
|
if (targetDecl.type === 8 /* Alias */) {
|
136
143
|
symbolName = referencesResult.nodeAtOffset.value;
|
@@ -212,6 +219,7 @@ class FindOutgoingCallTreeWalker extends parseTreeWalker_1.ParseTreeWalker {
|
|
212
219
|
return true;
|
213
220
|
}
|
214
221
|
_addOutgoingCallForDeclaration(nameNode, declaration) {
|
222
|
+
var _a;
|
215
223
|
const resolvedDecl = this._evaluator.resolveAliasDeclaration(declaration, /* resolveLocalNames */ true);
|
216
224
|
if (!resolvedDecl) {
|
217
225
|
return;
|
@@ -236,6 +244,11 @@ class FindOutgoingCallTreeWalker extends parseTreeWalker_1.ParseTreeWalker {
|
|
236
244
|
};
|
237
245
|
this._outgoingCalls.push(outgoingCall);
|
238
246
|
}
|
247
|
+
if (outgoingCall && outgoingCall.to.name !== nameNode.value) {
|
248
|
+
// If both the function and its alias are called in the same function,
|
249
|
+
// the name of the call item will be the resolved declaration name, not the alias.
|
250
|
+
outgoingCall.to.name = (_a = DeclarationUtils.getNameFromDeclaration(resolvedDecl)) !== null && _a !== void 0 ? _a : nameNode.value;
|
251
|
+
}
|
239
252
|
const fromRange = (0, positionUtils_1.convertOffsetsToRange)(nameNode.start, nameNode.start + nameNode.length, this._parseResults.tokenizerOutput.lines);
|
240
253
|
outgoingCall.fromRanges.push(fromRange);
|
241
254
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"callHierarchyProvider.js","sourceRoot":"","sources":["../../../src/languageService/callHierarchyProvider.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;;;;;;AAEH,iEAAsE;AAStE,+EAAiE;AACjE,2EAA6D;AAC7D,iEAA8D;AAE9D,6CAAgG;AAChG,qDAM+B;AAC/B,mEAA2E;AAC3E,mDAAkD;AAClD,2DAAgE;AAChE,mDAAqD;AAKrD,MAAa,qBAAqB;IAC9B,MAAM,CAAC,qBAAqB,CACxB,UAAkB,EAClB,WAAwB,EACxB,SAAwB,EACxB,KAAwB,EACxB,WAAmB;QAEnB,IAAA,gDAA4B,EAAC,KAAK,CAAC,CAAC;QAEpC,IACI,WAAW,CAAC,IAAI,qBAA6B;YAC7C,WAAW,CAAC,IAAI,kBAA0B;YAC1C,WAAW,CAAC,IAAI,kBAA0B,EAC5C;YACE,uDAAuD;YACvD,IAAI,WAAW,CAAC,IAAI,kBAA0B,EAAE;gBAC5C,MAAM,YAAY,GAAG,SAAS,CAAC,uBAAuB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;gBAC1E,IAAI,CAAC,YAAY,EAAE;oBACf,OAAO,SAAS,CAAC;iBACpB;gBACD,IAAI,YAAY,CAAC,IAAI,qBAA6B,IAAI,YAAY,CAAC,IAAI,kBAA0B,EAAE;oBAC/F,OAAO,SAAS,CAAC;iBACpB;aACJ;YACD,MAAM,QAAQ,GAAsB;gBAChC,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,aAAa,CAAC,WAAW,EAAE,SAAS,CAAC;gBAC3C,GAAG,EAAE,WAAW;gBAChB,KAAK,EAAE,WAAW,CAAC,KAAK;gBACxB,cAAc,EAAE,WAAW,CAAC,KAAK;aACpC,CAAC;YACF,OAAO,QAAQ,CAAC;SACnB;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,8BAA8B,CACjC,QAAgB,EAChB,UAAkB,EAClB,WAAwB,EACxB,YAA0B,EAC1B,SAAwB,EACxB,KAAwB;QAExB,IAAA,gDAA4B,EAAC,KAAK,CAAC,CAAC;QAEpC,MAAM,UAAU,GAAG,IAAI,0BAA0B,CAC7C,QAAQ,EACR,UAAU,EACV,WAAW,EACX,YAAY,EACZ,SAAS,EACT,KAAK,CACR,CAAC;QAEF,MAAM,aAAa,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;QAE7C,OAAO,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;IAChE,CAAC;IAED,MAAM,CAAC,8BAA8B,CACjC,WAAwB,EACxB,YAA0B,EAC1B,SAAwB,EACxB,KAAwB;;QAExB,IAAA,gDAA4B,EAAC,KAAK,CAAC,CAAC;QAEpC,mEAAmE;QACnE,IAAI,SAAgC,CAAC;QACrC,IAAI,WAAW,CAAC,IAAI,qBAA6B,EAAE;YAC/C,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC;SAChC;aAAM,IAAI,WAAW,CAAC,IAAI,kBAA0B,EAAE;YACnD,8CAA8C;YAC9C,MAAM,SAAS,GAAG,MAAA,SAAS,CAAC,qBAAqB,CAAC,WAAW,CAAC,0CAAE,IAAI,CAAC;YACrE,IAAI,SAAS,IAAI,IAAA,2BAAmB,EAAC,SAAS,CAAC,EAAE;gBAC7C,6DAA6D;gBAC7D,2DAA2D;gBAC3D,wCAAwC;gBACxC,MAAM,gBAAgB,GAAG,IAAA,6BAAiB,EACtC,SAAS,EACT,UAAU,EACV;+CAC8C;2CACJ,CAC7C,CAAC;gBACF,IAAI,gBAAgB,EAAE;oBAClB,MAAM,cAAc,GAAG,SAAS,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;oBACnE,IAAI,cAAc,IAAI,IAAA,kBAAU,EAAC,cAAc,CAAC,EAAE;wBAC9C,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;wBAC5D,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;4BACnC,MAAM,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;4BACrC,IAAI,eAAe,CAAC,IAAI,qBAA6B,EAAE;gCACnD,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC;6BACpC;yBACJ;qBACJ;iBACJ;aACJ;SACJ;QAED,IAAI,CAAC,SAAS,EAAE;YACZ,OAAO,SAAS,CAAC;SACpB;QAED,MAAM,UAAU,GAAG,IAAI,0BAA0B,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAE7F,MAAM,aAAa,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;QAE7C,OAAO,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;IAChE,CAAC;IAED,MAAM,CAAC,oBAAoB,CACvB,gBAAkC,EAClC,QAAgB;QAEhB,6DAA6D;QAC7D,iEAAiE;QACjE,6BAA6B;QAC7B,MAAM,YAAY,GAAG,gBAAgB,CAAC,YAAY,CAAC;QACnD,MAAM,IAAI,GAAG,gBAAgB,CAAC,YAAY,CAAC;QAC3C,IAAI,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QACjC,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE;YAC7B,IAAI,gBAAgB,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,UAAU,CAAC,EAAE;gBACrG,IAAI,IAAI,CAAC,IAAI,qBAA6B,IAAI,IAAI,CAAC,IAAI,kBAA0B,EAAE;oBAC/E,UAAU,GAAG,IAAI,CAAC;oBAElB,gEAAgE;oBAChE,4CAA4C;oBAC5C,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;wBACpB,MAAM;qBACT;iBACJ;aACJ;SACJ;QACD,IAAI,UAAU,CAAC;QACf,IAAI,WAAW,CAAC;QAChB,IAAI,UAAU,CAAC,IAAI,kBAA0B,EAAE;YAC3C,UAAU,GAAI,gBAAgB,CAAC,YAAyB,CAAC,KAAK,CAAC;YAC/D,WAAW,GAAG,QAAQ,CAAC;SAC1B;aAAM;YACH,UAAU,GAAG,gBAAgB,CAAC,sBAAsB,CAAC,UAAU,CAAC,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACpG,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC;SACjC;QACD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;IACnD,CAAC;CACJ;AApJD,sDAoJC;AAED,MAAM,0BAA2B,SAAQ,iCAAe;IAGpD,YACY,UAAqB,EACrB,aAA2B,EAC3B,UAAyB,EACzB,kBAAqC;QAE7C,KAAK,EAAE,CAAC;QALA,eAAU,GAAV,UAAU,CAAW;QACrB,kBAAa,GAAb,aAAa,CAAc;QAC3B,eAAU,GAAV,UAAU,CAAe;QACzB,uBAAkB,GAAlB,kBAAkB,CAAmB;QANzC,mBAAc,GAAgC,EAAE,CAAC;IASzD,CAAC;IAED,SAAS;QACL,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAEQ,SAAS,CAAC,IAAc;QAC7B,IAAA,gDAA4B,EAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAEtD,IAAI,QAA8B,CAAC;QAEnC,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,kBAAuB,EAAE;YACrD,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC;SAClC;aAAM,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,0BAA+B,EAAE;YACpE,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC;SAC7C;QAED,IAAI,QAAQ,EAAE;YACV,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;YAE1E,IAAI,YAAY,EAAE;gBACd,8DAA8D;gBAC9D,+DAA+D;gBAC/D,gEAAgE;gBAChE,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC1B,IAAI,CAAC,8BAA8B,CAAC,QAAS,EAAE,IAAI,CAAC,CAAC;gBACzD,CAAC,CAAC,CAAC;aACN;SACJ;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAEQ,iBAAiB,CAAC,IAAsB;QAC7C,IAAA,gDAA4B,EAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAEtD,0DAA0D;QAC1D,2DAA2D;QAC3D,0BAA0B;QAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAClE,IAAI,YAAY,EAAE;YACd,IAAA,4BAAgB,EAAC,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE;gBACvC,IAAI,QAAQ,GAAG,OAAO,CAAC;gBAEvB,kEAAkE;gBAClE,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC;gBAElE,IAAI,CAAC,IAAA,uBAAe,EAAC,QAAQ,CAAC,EAAE;oBAC5B,OAAO;iBACV;gBAED,MAAM,UAAU,GAAG,IAAA,8BAAkB,EAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACvE,IAAI,CAAC,UAAU,EAAE;oBACb,OAAO;iBACV;gBAED,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;gBAC/D,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;gBAE1D,IAAI,CAAC,UAAU,EAAE;oBACb,OAAO;iBACV;gBAED,IAAI,IAAA,uBAAe,EAAC,UAAU,CAAC,IAAI,iBAAS,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE;oBACtE,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;wBAC3B,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;oBAC/D,CAAC,CAAC,CAAC;iBACN;YACL,CAAC,CAAC,CAAC;SACN;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,8BAA8B,CAAC,QAAkB,EAAE,WAAwB;QAC/E,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,WAAW,EAAE,uBAAuB,CAAC,IAAI,CAAC,CAAC;QACxG,IAAI,CAAC,YAAY,EAAE;YACf,OAAO;SACV;QAED,IAAI,YAAY,CAAC,IAAI,qBAA6B,IAAI,YAAY,CAAC,IAAI,kBAA0B,EAAE;YAC/F,OAAO;SACV;QAED,MAAM,QAAQ,GAAsB;YAChC,IAAI,EAAE,QAAQ,CAAC,KAAK;YACpB,IAAI,EAAE,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC;YAClD,GAAG,EAAE,YAAY,CAAC,IAAI;YACtB,KAAK,EAAE,YAAY,CAAC,KAAK;YACzB,cAAc,EAAE,YAAY,CAAC,KAAK;SACrC,CAAC;QAEF,gEAAgE;QAChE,qEAAqE;QACrE,IAAI,YAAY,GAA0C,IAAI,CAAC,cAAc,CAAC,IAAI,CAC9E,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,IAAI,IAAA,0BAAc,EAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CACtG,CAAC;QAEF,IAAI,CAAC,YAAY,EAAE;YACf,YAAY,GAAG;gBACX,EAAE,EAAE,QAAQ;gBACZ,UAAU,EAAE,EAAE;aACjB,CAAC;YACF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC1C;QAED,MAAM,SAAS,GAAU,IAAA,qCAAqB,EAC1C,QAAQ,CAAC,KAAK,EACd,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,EAChC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,KAAK,CAC3C,CAAC;QACF,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;CACJ;AAED,MAAM,0BAA2B,SAAQ,iCAAe;IAGpD,YACY,SAAiB,EACjB,WAAmB,EACnB,YAAyB,EACzB,aAA2B,EAC3B,UAAyB,EACzB,kBAAqC;QAE7C,KAAK,EAAE,CAAC;QAPA,cAAS,GAAT,SAAS,CAAQ;QACjB,gBAAW,GAAX,WAAW,CAAQ;QACnB,iBAAY,GAAZ,YAAY,CAAa;QACzB,kBAAa,GAAb,aAAa,CAAc;QAC3B,eAAU,GAAV,UAAU,CAAe;QACzB,uBAAkB,GAAlB,kBAAkB,CAAmB;QARzC,mBAAc,GAAgC,EAAE,CAAC;IAWzD,CAAC;IAED,SAAS;QACL,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAEQ,SAAS,CAAC,IAAc;QAC7B,IAAA,gDAA4B,EAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAEtD,IAAI,QAA8B,CAAC;QAEnC,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,kBAAuB,EAAE;YACrD,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC;SAClC;aAAM,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,0BAA+B,EAAE;YACpE,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC;SAC7C;QAED,8DAA8D;QAC9D,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,EAAE;YACjD,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;YAE1E,IAAI,YAAY,EAAE;gBACd,MAAM,aAAa,GAAG,YAAY;qBAC7B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBACV,OAAO,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,IAAI,EAAE,uBAAuB,CAAC,IAAI,CAAC,CAAC;gBACvF,CAAC,CAAC;qBACD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;gBAC1C,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,kBAA0B,EAAE;oBAClD,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAC5D,IAAI,CAAC,YAAY;oBACjB,uBAAuB,CAAC,IAAI,CAC/B,CAAC;oBACF,IACI,gBAAgB;wBAChB,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,IAAK,EAAE,gBAAgB,CAAC,CAAC,EAC7F;wBACE,IAAI,CAAC,8BAA8B,CAAC,QAAS,CAAC,CAAC;qBAClD;iBACJ;qBAAM,IACH,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,IAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,EAC9F;oBACE,IAAI,CAAC,8BAA8B,CAAC,QAAS,CAAC,CAAC;iBAClD;aACJ;SACJ;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAEQ,iBAAiB,CAAC,IAAsB;QAC7C,IAAA,gDAA4B,EAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAEtD,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,EAAE;YAC5C,0DAA0D;YAC1D,2DAA2D;YAC3D,0BAA0B;YAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAClE,IAAI,YAAY,EAAE;gBACd,IAAA,4BAAgB,EAAC,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE;oBACvC,IAAI,QAAQ,GAAG,OAAO,CAAC;oBAEvB,kEAAkE;oBAClE,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC;oBAElE,IAAI,CAAC,IAAA,uBAAe,EAAC,QAAQ,CAAC,EAAE;wBAC5B,OAAO;qBACV;oBAED,MAAM,UAAU,GAAG,IAAA,8BAAkB,EAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;oBACvE,IAAI,CAAC,UAAU,EAAE;wBACb,OAAO;qBACV;oBAED,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;oBAC/D,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;oBAE1D,IAAI,CAAC,UAAU,EAAE;wBACb,OAAO;qBACV;oBAED,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,IAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE;wBAC9F,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;qBACxD;gBACL,CAAC,CAAC,CAAC;aACN;SACJ;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,8BAA8B,CAAC,QAAkB;QACrD,MAAM,aAAa,GAAG,cAAc,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QACrE,IAAI,CAAC,aAAa,EAAE;YAChB,OAAO;SACV;QAED,IAAI,UAA6B,CAAC;QAClC,IAAI,aAAa,CAAC,QAAQ,oBAAyB,EAAE;YACjD,MAAM,WAAW,GAAG,IAAA,qCAAqB,EAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC1F,MAAM,QAAQ,GAAG,IAAA,uBAAW,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAE7C,UAAU,GAAG;gBACT,IAAI,EAAE,YAAY,QAAQ,EAAE;gBAC5B,IAAI,EAAE,kCAAU,CAAC,MAAM;gBACvB,GAAG,EAAE,IAAI,CAAC,SAAS;gBACnB,KAAK,EAAE,WAAW;gBAClB,cAAc,EAAE,WAAW;aAC9B,CAAC;SACL;aAAM,IAAI,aAAa,CAAC,QAAQ,oBAAyB,EAAE;YACxD,MAAM,WAAW,GAAG,IAAA,qCAAqB,EACrC,aAAa,CAAC,KAAK,EACnB,aAAa,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,EAC1C,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,KAAK,CAC3C,CAAC;YAEF,UAAU,GAAG;gBACT,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,kCAAU,CAAC,QAAQ;gBACzB,GAAG,EAAE,IAAI,CAAC,SAAS;gBACnB,KAAK,EAAE,WAAW;gBAClB,cAAc,EAAE,WAAW;aAC9B,CAAC;SACL;aAAM;YACH,MAAM,aAAa,GAAG,IAAA,qCAAqB,EACvC,aAAa,CAAC,IAAI,CAAC,KAAK,EACxB,aAAa,CAAC,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,EACpD,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,KAAK,CAC3C,CAAC;YAEF,UAAU,GAAG;gBACT,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK;gBAC9B,IAAI,EAAE,kCAAU,CAAC,QAAQ;gBACzB,GAAG,EAAE,IAAI,CAAC,SAAS;gBACnB,KAAK,EAAE,aAAa;gBACpB,cAAc,EAAE,aAAa;aAChC,CAAC;SACL;QAED,2DAA2D;QAC3D,qEAAqE;QACrE,IAAI,YAAY,GAA0C,IAAI,CAAC,cAAc,CAAC,IAAI,CAC9E,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,CAAC,GAAG,IAAI,IAAA,0BAAc,EAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,CAC9G,CAAC;QAEF,IAAI,CAAC,YAAY,EAAE;YACf,YAAY,GAAG;gBACX,IAAI,EAAE,UAAU;gBAChB,UAAU,EAAE,EAAE;aACjB,CAAC;YACF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC1C;QAED,MAAM,SAAS,GAAU,IAAA,qCAAqB,EAC1C,QAAQ,CAAC,KAAK,EACd,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,EAChC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,KAAK,CAC3C,CAAC;QACF,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;CACJ;AAED,SAAS,aAAa,CAAC,WAAwB,EAAE,SAAwB;;IACrE,IAAI,UAAsB,CAAC;IAE3B,QAAQ,WAAW,CAAC,IAAI,EAAE;QACtB,mBAA2B;QAC3B;YACI,UAAU,GAAG,kCAAU,CAAC,KAAK,CAAC;YAC9B,MAAM;QAEV;YACI,IAAI,WAAW,CAAC,QAAQ,EAAE;gBACtB,MAAM,QAAQ,GAAG,MAAA,SAAS,CAAC,qBAAqB,CAAC,WAAW,CAAC,0CAAE,IAAI,CAAC;gBACpE,IAAI,QAAQ,IAAI,IAAA,qCAAyB,EAAC,QAAQ,EAAE,mBAAmB,CAAC,KAAK,CAAC,EAAE;oBAC5E,UAAU,GAAG,kCAAU,CAAC,QAAQ,CAAC;iBACpC;qBAAM;oBACH,UAAU,GAAG,kCAAU,CAAC,MAAM,CAAC;iBAClC;aACJ;iBAAM;gBACH,UAAU,GAAG,kCAAU,CAAC,QAAQ,CAAC;aACpC;YACD,MAAM;QAEV;YACI,UAAU,GAAG,kCAAU,CAAC,QAAQ,CAAC;YACjC,MAAM;KACb;IAED,OAAO,UAAU,CAAC;AACtB,CAAC"}
|
1
|
+
{"version":3,"file":"callHierarchyProvider.js","sourceRoot":"","sources":["../../../src/languageService/callHierarchyProvider.ts"],"names":[],"mappings":"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"}
|
@@ -37,6 +37,7 @@ const docStringConversion_1 = require("../analyzer/docStringConversion");
|
|
37
37
|
const parameterUtils_1 = require("../analyzer/parameterUtils");
|
38
38
|
const ParseTreeUtils = __importStar(require("../analyzer/parseTreeUtils"));
|
39
39
|
const parseTreeUtils_1 = require("../analyzer/parseTreeUtils");
|
40
|
+
const pythonPathUtils_1 = require("../analyzer/pythonPathUtils");
|
40
41
|
const scopeUtils_1 = require("../analyzer/scopeUtils");
|
41
42
|
const sourceMapper_1 = require("../analyzer/sourceMapper");
|
42
43
|
const SymbolNameUtils = __importStar(require("../analyzer/symbolNameUtils"));
|
@@ -51,6 +52,7 @@ const collectionUtils_1 = require("../common/collectionUtils");
|
|
51
52
|
const debug = __importStar(require("../common/debug"));
|
52
53
|
const debug_1 = require("../common/debug");
|
53
54
|
const lspUtils_1 = require("../common/lspUtils");
|
55
|
+
const pathUtils_1 = require("../common/pathUtils");
|
54
56
|
const positionUtils_1 = require("../common/positionUtils");
|
55
57
|
const pythonVersion_1 = require("../common/pythonVersion");
|
56
58
|
const StringUtils = __importStar(require("../common/stringUtils"));
|
@@ -62,6 +64,7 @@ const parseNodes_1 = require("../parser/parseNodes");
|
|
62
64
|
const autoImporter_1 = require("./autoImporter");
|
63
65
|
const completionProviderUtils_1 = require("./completionProviderUtils");
|
64
66
|
const documentSymbolCollector_1 = require("./documentSymbolCollector");
|
67
|
+
const importAdder_1 = require("./importAdder");
|
65
68
|
const tooltipUtils_1 = require("./tooltipUtils");
|
66
69
|
var Keywords;
|
67
70
|
(function (Keywords) {
|
@@ -822,6 +825,8 @@ class CompletionProvider {
|
|
822
825
|
}
|
823
826
|
const staticmethod = (_a = decorators === null || decorators === void 0 ? void 0 : decorators.some((d) => this._checkDecorator(d, 'staticmethod'))) !== null && _a !== void 0 ? _a : false;
|
824
827
|
const classmethod = (_b = decorators === null || decorators === void 0 ? void 0 : decorators.some((d) => this._checkDecorator(d, 'classmethod'))) !== null && _b !== void 0 ? _b : false;
|
828
|
+
const fallbackPath = (0, pythonPathUtils_1.getTypeShedFallbackPath)(this._importResolver.fileSystem);
|
829
|
+
const typingFilePath = fallbackPath ? (0, pathUtils_1.combinePaths)(fallbackPath, 'stdlib/typing.pyi') : undefined;
|
825
830
|
const appendMember = (map, member, name) => {
|
826
831
|
if (!(0, types_1.isInstantiableClass)(member.classType) ||
|
827
832
|
member.classType.details === classResults.classType.details ||
|
@@ -868,22 +873,28 @@ class CompletionProvider {
|
|
868
873
|
if (!funcType || !funcType.details.declaration) {
|
869
874
|
return;
|
870
875
|
}
|
871
|
-
const
|
876
|
+
const importAdder = new importAdder_1.ImportAdder(this._configOptions, this._importResolver, this._evaluator);
|
877
|
+
const result = this._printMethodSignature(importAdder, classResults.classType, funcType, typingFilePath);
|
872
878
|
let text;
|
873
879
|
if ((0, sourceMapper_1.isStubFile)(this._filePath)) {
|
874
|
-
text = `${methodSignature}: ...`;
|
880
|
+
text = `${result.methodSignature}: ...`;
|
875
881
|
}
|
876
882
|
else {
|
877
883
|
const methodBody = this._printOverriddenMethodBody(classResults.classType, isDeclaredStaticMethod, isProperty, decl);
|
878
|
-
text = `${methodSignature}:\n${methodBody}`;
|
884
|
+
text = `${result.methodSignature}:\n${methodBody}`;
|
879
885
|
}
|
880
886
|
const textEdit = this._createReplaceEdits(priorWord, partialName, text);
|
887
|
+
// This will add new import statements, but for now, it won't add new
|
888
|
+
// `TypeVar` statement such as TypeVar, TypeVarTuple, ParamSpec even if
|
889
|
+
// the overridden method uses them.
|
890
|
+
const additionalTextEdits = importAdder.applyImports(result.importData, this._filePath, this._parseResults, this._parseResults.parseTree.length, "absolute" /* Absolute */, this._cancellationToken);
|
881
891
|
this._addSymbol(name, symbol, partialName.value, map, {
|
882
892
|
// method signature already contains ()
|
883
893
|
funcParensDisabled: true,
|
884
894
|
edits: {
|
885
895
|
format: this._options.snippet ? vscode_languageserver_1.InsertTextFormat.Snippet : undefined,
|
886
896
|
textEdit,
|
897
|
+
additionalTextEdits,
|
887
898
|
},
|
888
899
|
});
|
889
900
|
};
|
@@ -907,14 +918,14 @@ class CompletionProvider {
|
|
907
918
|
};
|
908
919
|
return vscode_languageserver_1.TextEdit.replace(range, text);
|
909
920
|
}
|
910
|
-
_printMethodSignature(classType, funcType) {
|
911
|
-
const
|
921
|
+
_printMethodSignature(importAdder, classType, funcType, typingFilePath) {
|
922
|
+
const declaration = funcType.details.declaration;
|
912
923
|
let ellipsisForDefault;
|
913
924
|
if ((0, sourceMapper_1.isStubFile)(this._filePath)) {
|
914
925
|
// In stubs, always use "...".
|
915
926
|
ellipsisForDefault = true;
|
916
927
|
}
|
917
|
-
else if (classType.details.moduleName ===
|
928
|
+
else if (classType.details.moduleName === declaration.moduleName) {
|
918
929
|
// In the same file, always print the full default.
|
919
930
|
ellipsisForDefault = false;
|
920
931
|
}
|
@@ -933,6 +944,7 @@ class CompletionProvider {
|
|
933
944
|
? mainType
|
934
945
|
: fallbackType;
|
935
946
|
};
|
947
|
+
const importData = createImportData(importAdder, funcType, declaration, typingFilePath, (t) => this._sourceMapper.findClassDeclarationsByType(this._filePath, t), this._cancellationToken);
|
936
948
|
const paramList = funcType.details.parameters.map((param, index) => {
|
937
949
|
let paramString = '';
|
938
950
|
if (param.category === 1 /* VarArgList */) {
|
@@ -944,8 +956,6 @@ class CompletionProvider {
|
|
944
956
|
if (param.name) {
|
945
957
|
paramString += param.name;
|
946
958
|
}
|
947
|
-
// Currently, we don't automatically add import if the type used in the annotation is not imported
|
948
|
-
// in current file.
|
949
959
|
if (param.typeAnnotation) {
|
950
960
|
const originalType = funcType.details.parameters[index].type;
|
951
961
|
const typeToPrint = getTypeToPrint(types_1.FunctionType.getEffectiveParameterType(funcType, index), originalType);
|
@@ -982,12 +992,111 @@ class CompletionProvider {
|
|
982
992
|
if (strReturnType) {
|
983
993
|
methodSignature += ' -> ' + strReturnType;
|
984
994
|
}
|
985
|
-
return methodSignature;
|
995
|
+
return { methodSignature, importData };
|
996
|
+
function createImportData(importAdder, funcType, declaration, typingFilePath, declarationGetter, token) {
|
997
|
+
var _a, _b;
|
998
|
+
// Handle regular case. In this case, we can get import info from
|
999
|
+
// import used in the file where the function is declared.
|
1000
|
+
const ranges = [];
|
1001
|
+
(0, collectionUtils_1.addIfNotNull)(ranges, textRange_2.TextRange.combine(declaration.node.parameters));
|
1002
|
+
(0, collectionUtils_1.addIfNotNull)(ranges, declaration.node.returnTypeAnnotation);
|
1003
|
+
(0, collectionUtils_1.addIfNotNull)(ranges, declaration.node.functionAnnotationComment);
|
1004
|
+
const moduleNode = ParseTreeUtils.getModuleNode(declaration.node);
|
1005
|
+
const importData = importAdder.collectImportsForSymbolsUsed(moduleNode, ranges, token);
|
1006
|
+
// Handle special case where function has type arguments. In this case,
|
1007
|
+
// we can't use the file the function is declared in because it doesn't
|
1008
|
+
// have those type arguments. It just has the type vars.
|
1009
|
+
// We could walk the mro to discover imports for the type arguments, but
|
1010
|
+
// for now, instead, this creates import statement out of type arguments itself.
|
1011
|
+
const effectiveTypes = [];
|
1012
|
+
funcType.details.parameters.forEach((param, index) => {
|
1013
|
+
if (!param.typeAnnotation) {
|
1014
|
+
return;
|
1015
|
+
}
|
1016
|
+
const originalType = funcType.details.parameters[index].type;
|
1017
|
+
if (!(0, types_1.isTypeVar)(originalType)) {
|
1018
|
+
return;
|
1019
|
+
}
|
1020
|
+
const effectiveType = types_1.FunctionType.getEffectiveParameterType(funcType, index);
|
1021
|
+
effectiveTypes.push([effectiveType, param.typeAnnotation]);
|
1022
|
+
});
|
1023
|
+
const node = declaration.node;
|
1024
|
+
const originalType = funcType.details.declaredReturnType;
|
1025
|
+
if (originalType &&
|
1026
|
+
(0, types_1.isTypeVar)(originalType) &&
|
1027
|
+
(node.returnTypeAnnotation || ((_a = node.functionAnnotationComment) === null || _a === void 0 ? void 0 : _a.returnTypeAnnotation))) {
|
1028
|
+
effectiveTypes.push([
|
1029
|
+
types_1.FunctionType.getSpecializedReturnType(funcType),
|
1030
|
+
(_b = node.returnTypeAnnotation) !== null && _b !== void 0 ? _b : node.functionAnnotationComment.returnTypeAnnotation,
|
1031
|
+
]);
|
1032
|
+
}
|
1033
|
+
const visited = new Set();
|
1034
|
+
const addImport = (t, n) => {
|
1035
|
+
var _a, _b;
|
1036
|
+
if (visited.has(t)) {
|
1037
|
+
return;
|
1038
|
+
}
|
1039
|
+
visited.add(t);
|
1040
|
+
// We need to special case `Any` since we can't get decl from `Any`.
|
1041
|
+
if ((0, types_1.isAny)(t)) {
|
1042
|
+
if (!typingFilePath) {
|
1043
|
+
return;
|
1044
|
+
}
|
1045
|
+
importAdder.addImportInfo({ filePath: typingFilePath, nameInfo: { name: 'Any' } }, importData);
|
1046
|
+
}
|
1047
|
+
if (!(0, types_1.isClass)(t)) {
|
1048
|
+
return;
|
1049
|
+
}
|
1050
|
+
// We need to special case `List`, `Dict` and `Tuple` since user might have
|
1051
|
+
// used typing.List or typing.Dict in the code, but we internally already
|
1052
|
+
// converted them to built-in `list` and `dict`.
|
1053
|
+
// We could avoid doing this if class type holds onto decl it was created from
|
1054
|
+
// if it is not synthesized like func type.
|
1055
|
+
if (typingFilePath && types_1.ClassType.isBuiltIn(t)) {
|
1056
|
+
const name = (_a = t.aliasName) !== null && _a !== void 0 ? _a : t.details.name;
|
1057
|
+
if (t.details.moduleName === 'typing' && name) {
|
1058
|
+
importAdder.addImportInfo({
|
1059
|
+
filePath: typingFilePath,
|
1060
|
+
nameInfo: { name },
|
1061
|
+
}, importData);
|
1062
|
+
}
|
1063
|
+
else if (t.details.moduleName === 'builtins' && t.aliasName) {
|
1064
|
+
importAdder.addImportInfo({
|
1065
|
+
filePath: typingFilePath,
|
1066
|
+
nameInfo: { name },
|
1067
|
+
}, importData);
|
1068
|
+
}
|
1069
|
+
}
|
1070
|
+
else {
|
1071
|
+
const decls = declarationGetter(t);
|
1072
|
+
if (decls.length === 0) {
|
1073
|
+
return;
|
1074
|
+
}
|
1075
|
+
importAdder.addDeclaration(decls[0], n, importData);
|
1076
|
+
}
|
1077
|
+
if (t.isTypeArgumentExplicit) {
|
1078
|
+
(_b = t.typeArguments) === null || _b === void 0 ? void 0 : _b.forEach((ta) => {
|
1079
|
+
addImport(ta, n);
|
1080
|
+
(0, typeUtils_1.doForEachSubtype)(ta, (subtype) => {
|
1081
|
+
addImport(subtype, n);
|
1082
|
+
});
|
1083
|
+
});
|
1084
|
+
}
|
1085
|
+
};
|
1086
|
+
effectiveTypes.forEach(([t, n]) => {
|
1087
|
+
addImport(t, n);
|
1088
|
+
(0, typeUtils_1.doForEachSubtype)(t, (subtype) => {
|
1089
|
+
addImport(subtype, n);
|
1090
|
+
});
|
1091
|
+
});
|
1092
|
+
return importData;
|
1093
|
+
}
|
986
1094
|
function getReturnTypeStr(evaluator, funcType, printFlags) {
|
1095
|
+
var _a;
|
987
1096
|
const originalType = funcType.details.declaredReturnType;
|
988
1097
|
const typeToPrint = getTypeToPrint(types_1.FunctionType.getSpecializedReturnType(funcType), originalType);
|
989
1098
|
const node = funcType.details.declaration.node;
|
990
|
-
if (!node.returnTypeAnnotation && !node.functionAnnotationComment) {
|
1099
|
+
if (!node.returnTypeAnnotation && !((_a = node.functionAnnotationComment) === null || _a === void 0 ? void 0 : _a.returnTypeAnnotation)) {
|
991
1100
|
return undefined;
|
992
1101
|
}
|
993
1102
|
if (typeToPrint && isTypeUsableForPrint(typeToPrint, originalType)) {
|