typescript 5.3.0-dev.20230822 → 5.3.0-dev.20230824
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/lib/tsc.js +44 -18
- package/lib/tsserver.js +68 -33
- package/lib/typescript.js +460 -425
- package/lib/typingsInstaller.js +1 -1
- package/package.json +2 -5
package/lib/tsc.js
CHANGED
|
@@ -18,7 +18,7 @@ and limitations under the License.
|
|
|
18
18
|
|
|
19
19
|
// src/compiler/corePublic.ts
|
|
20
20
|
var versionMajorMinor = "5.3";
|
|
21
|
-
var version = `${versionMajorMinor}.0-dev.
|
|
21
|
+
var version = `${versionMajorMinor}.0-dev.20230824`;
|
|
22
22
|
|
|
23
23
|
// src/compiler/core.ts
|
|
24
24
|
var emptyArray = [];
|
|
@@ -11771,8 +11771,8 @@ function getInternalEmitFlags(node) {
|
|
|
11771
11771
|
const emitNode = node.emitNode;
|
|
11772
11772
|
return emitNode && emitNode.internalFlags || 0;
|
|
11773
11773
|
}
|
|
11774
|
-
|
|
11775
|
-
|
|
11774
|
+
var getScriptTargetFeatures = /* @__PURE__ */ memoize(
|
|
11775
|
+
() => new Map(Object.entries({
|
|
11776
11776
|
Array: new Map(Object.entries({
|
|
11777
11777
|
es2015: [
|
|
11778
11778
|
"find",
|
|
@@ -11839,7 +11839,7 @@ function getScriptTargetFeatures() {
|
|
|
11839
11839
|
"defineProperty",
|
|
11840
11840
|
"deleteProperty",
|
|
11841
11841
|
"get",
|
|
11842
|
-
"
|
|
11842
|
+
"getOwnPropertyDescriptor",
|
|
11843
11843
|
"getPrototypeOf",
|
|
11844
11844
|
"has",
|
|
11845
11845
|
"isExtensible",
|
|
@@ -12165,8 +12165,8 @@ function getScriptTargetFeatures() {
|
|
|
12165
12165
|
"cause"
|
|
12166
12166
|
]
|
|
12167
12167
|
}))
|
|
12168
|
-
}))
|
|
12169
|
-
|
|
12168
|
+
}))
|
|
12169
|
+
);
|
|
12170
12170
|
function getLiteralText(node, sourceFile, flags) {
|
|
12171
12171
|
if (sourceFile && canUseOriginalText(node, flags)) {
|
|
12172
12172
|
return getSourceTextOfNodeFromSourceFile(sourceFile, node);
|
|
@@ -48630,11 +48630,17 @@ function createTypeChecker(host) {
|
|
|
48630
48630
|
const constraintNode = constraint && typeToTypeNodeHelper(constraint, context);
|
|
48631
48631
|
return typeParameterToDeclarationWithConstraint(type, context, constraintNode);
|
|
48632
48632
|
}
|
|
48633
|
-
function
|
|
48634
|
-
|
|
48635
|
-
if (
|
|
48636
|
-
parameterDeclaration
|
|
48633
|
+
function getEffectiveParameterDeclaration(parameterSymbol) {
|
|
48634
|
+
const parameterDeclaration = getDeclarationOfKind(parameterSymbol, 169 /* Parameter */);
|
|
48635
|
+
if (parameterDeclaration) {
|
|
48636
|
+
return parameterDeclaration;
|
|
48637
|
+
}
|
|
48638
|
+
if (!isTransientSymbol(parameterSymbol)) {
|
|
48639
|
+
return getDeclarationOfKind(parameterSymbol, 348 /* JSDocParameterTag */);
|
|
48637
48640
|
}
|
|
48641
|
+
}
|
|
48642
|
+
function symbolToParameterDeclaration(parameterSymbol, context, preserveModifierFlags, privateSymbolVisitor, bundledImports) {
|
|
48643
|
+
const parameterDeclaration = getEffectiveParameterDeclaration(parameterSymbol);
|
|
48638
48644
|
let parameterType = getTypeOfSymbol(parameterSymbol);
|
|
48639
48645
|
if (parameterDeclaration && isRequiredInitializedParameter(parameterDeclaration)) {
|
|
48640
48646
|
parameterType = getOptionalType(parameterType);
|
|
@@ -48643,7 +48649,7 @@ function createTypeChecker(host) {
|
|
|
48643
48649
|
const modifiers = !(context.flags & 8192 /* OmitParameterModifiers */) && preserveModifierFlags && parameterDeclaration && canHaveModifiers(parameterDeclaration) ? map(getModifiers(parameterDeclaration), factory.cloneNode) : void 0;
|
|
48644
48650
|
const isRest = parameterDeclaration && isRestParameter(parameterDeclaration) || getCheckFlags(parameterSymbol) & 32768 /* RestParameter */;
|
|
48645
48651
|
const dotDotDotToken = isRest ? factory.createToken(26 /* DotDotDotToken */) : void 0;
|
|
48646
|
-
const name =
|
|
48652
|
+
const name = parameterToParameterDeclarationName(parameterSymbol, parameterDeclaration, context);
|
|
48647
48653
|
const isOptional = parameterDeclaration && isOptionalParameter(parameterDeclaration) || getCheckFlags(parameterSymbol) & 16384 /* OptionalParameter */;
|
|
48648
48654
|
const questionToken = isOptional ? factory.createToken(58 /* QuestionToken */) : void 0;
|
|
48649
48655
|
const parameterNode = factory.createParameterDeclaration(
|
|
@@ -48657,6 +48663,9 @@ function createTypeChecker(host) {
|
|
|
48657
48663
|
);
|
|
48658
48664
|
context.approximateLength += symbolName(parameterSymbol).length + 3;
|
|
48659
48665
|
return parameterNode;
|
|
48666
|
+
}
|
|
48667
|
+
function parameterToParameterDeclarationName(parameterSymbol, parameterDeclaration, context) {
|
|
48668
|
+
return parameterDeclaration ? parameterDeclaration.name ? parameterDeclaration.name.kind === 80 /* Identifier */ ? setEmitFlags(factory.cloneNode(parameterDeclaration.name), 16777216 /* NoAsciiEscaping */) : parameterDeclaration.name.kind === 166 /* QualifiedName */ ? setEmitFlags(factory.cloneNode(parameterDeclaration.name.right), 16777216 /* NoAsciiEscaping */) : cloneBindingName(parameterDeclaration.name) : symbolName(parameterSymbol) : symbolName(parameterSymbol);
|
|
48660
48669
|
function cloneBindingName(node) {
|
|
48661
48670
|
return elideInitializerAndSetEmitFlags(node);
|
|
48662
48671
|
function elideInitializerAndSetEmitFlags(node2) {
|
|
@@ -50637,6 +50646,21 @@ function createTypeChecker(host) {
|
|
|
50637
50646
|
if (p.flags & 98304 /* Accessor */ && useAccessors) {
|
|
50638
50647
|
const result = [];
|
|
50639
50648
|
if (p.flags & 65536 /* SetAccessor */) {
|
|
50649
|
+
const setter = p.declarations && forEach(p.declarations, (d) => {
|
|
50650
|
+
if (d.kind === 178 /* SetAccessor */) {
|
|
50651
|
+
return d;
|
|
50652
|
+
}
|
|
50653
|
+
if (isCallExpression(d) && isBindableObjectDefinePropertyCall(d)) {
|
|
50654
|
+
return forEach(d.arguments[2].properties, (propDecl) => {
|
|
50655
|
+
const id = getNameOfDeclaration(propDecl);
|
|
50656
|
+
if (!!id && isIdentifier(id) && idText(id) === "set") {
|
|
50657
|
+
return propDecl;
|
|
50658
|
+
}
|
|
50659
|
+
});
|
|
50660
|
+
}
|
|
50661
|
+
});
|
|
50662
|
+
Debug.assert(setter && isFunctionLikeDeclaration(setter));
|
|
50663
|
+
const paramSymbol = getSignatureFromDeclaration(setter).parameters[0];
|
|
50640
50664
|
result.push(setTextRange(
|
|
50641
50665
|
factory.createSetAccessorDeclaration(
|
|
50642
50666
|
factory.createModifiersFromModifierFlags(flag),
|
|
@@ -50646,7 +50670,7 @@ function createTypeChecker(host) {
|
|
|
50646
50670
|
void 0,
|
|
50647
50671
|
/*dotDotDotToken*/
|
|
50648
50672
|
void 0,
|
|
50649
|
-
"
|
|
50673
|
+
paramSymbol ? parameterToParameterDeclarationName(paramSymbol, getEffectiveParameterDeclaration(paramSymbol), context) : "value",
|
|
50650
50674
|
/*questionToken*/
|
|
50651
50675
|
void 0,
|
|
50652
50676
|
isPrivate ? void 0 : serializeTypeForDeclaration(context, getTypeOfSymbol(p), p, enclosingDeclaration, includePrivateSymbol, bundled)
|
|
@@ -63996,12 +64020,14 @@ function createTypeChecker(host) {
|
|
|
63996
64020
|
}
|
|
63997
64021
|
function inferFromSignatures(source, target, kind) {
|
|
63998
64022
|
const sourceSignatures = getSignaturesOfType(source, kind);
|
|
63999
|
-
const targetSignatures = getSignaturesOfType(target, kind);
|
|
64000
64023
|
const sourceLen = sourceSignatures.length;
|
|
64001
|
-
|
|
64002
|
-
|
|
64003
|
-
|
|
64004
|
-
|
|
64024
|
+
if (sourceLen > 0) {
|
|
64025
|
+
const targetSignatures = getSignaturesOfType(target, kind);
|
|
64026
|
+
const targetLen = targetSignatures.length;
|
|
64027
|
+
for (let i = 0; i < targetLen; i++) {
|
|
64028
|
+
const sourceIndex = Math.max(sourceLen - targetLen + i, 0);
|
|
64029
|
+
inferFromSignature(getBaseSignature(sourceSignatures[sourceIndex]), getErasedSignature(targetSignatures[i]));
|
|
64030
|
+
}
|
|
64005
64031
|
}
|
|
64006
64032
|
}
|
|
64007
64033
|
function inferFromSignature(source, target) {
|
|
@@ -65537,7 +65563,7 @@ function createTypeChecker(host) {
|
|
|
65537
65563
|
return void 0;
|
|
65538
65564
|
}
|
|
65539
65565
|
function getDiscriminantPropertyAccess(expr, computedType) {
|
|
65540
|
-
const type = declaredType.flags & 1048576 /* Union */ ? declaredType : computedType;
|
|
65566
|
+
const type = !(computedType.flags & 1048576 /* Union */) && declaredType.flags & 1048576 /* Union */ ? declaredType : computedType;
|
|
65541
65567
|
if (type.flags & 1048576 /* Union */) {
|
|
65542
65568
|
const access = getCandidateDiscriminantPropertyAccess(expr);
|
|
65543
65569
|
if (access) {
|
package/lib/tsserver.js
CHANGED
|
@@ -2333,7 +2333,7 @@ module.exports = __toCommonJS(server_exports);
|
|
|
2333
2333
|
|
|
2334
2334
|
// src/compiler/corePublic.ts
|
|
2335
2335
|
var versionMajorMinor = "5.3";
|
|
2336
|
-
var version = `${versionMajorMinor}.0-dev.
|
|
2336
|
+
var version = `${versionMajorMinor}.0-dev.20230824`;
|
|
2337
2337
|
var Comparison = /* @__PURE__ */ ((Comparison3) => {
|
|
2338
2338
|
Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
|
|
2339
2339
|
Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
|
|
@@ -15541,8 +15541,8 @@ function getInternalEmitFlags(node) {
|
|
|
15541
15541
|
const emitNode = node.emitNode;
|
|
15542
15542
|
return emitNode && emitNode.internalFlags || 0;
|
|
15543
15543
|
}
|
|
15544
|
-
|
|
15545
|
-
|
|
15544
|
+
var getScriptTargetFeatures = /* @__PURE__ */ memoize(
|
|
15545
|
+
() => new Map(Object.entries({
|
|
15546
15546
|
Array: new Map(Object.entries({
|
|
15547
15547
|
es2015: [
|
|
15548
15548
|
"find",
|
|
@@ -15609,7 +15609,7 @@ function getScriptTargetFeatures() {
|
|
|
15609
15609
|
"defineProperty",
|
|
15610
15610
|
"deleteProperty",
|
|
15611
15611
|
"get",
|
|
15612
|
-
"
|
|
15612
|
+
"getOwnPropertyDescriptor",
|
|
15613
15613
|
"getPrototypeOf",
|
|
15614
15614
|
"has",
|
|
15615
15615
|
"isExtensible",
|
|
@@ -15935,8 +15935,8 @@ function getScriptTargetFeatures() {
|
|
|
15935
15935
|
"cause"
|
|
15936
15936
|
]
|
|
15937
15937
|
}))
|
|
15938
|
-
}))
|
|
15939
|
-
|
|
15938
|
+
}))
|
|
15939
|
+
);
|
|
15940
15940
|
var GetLiteralTextFlags = /* @__PURE__ */ ((GetLiteralTextFlags2) => {
|
|
15941
15941
|
GetLiteralTextFlags2[GetLiteralTextFlags2["None"] = 0] = "None";
|
|
15942
15942
|
GetLiteralTextFlags2[GetLiteralTextFlags2["NeverAsciiEscape"] = 1] = "NeverAsciiEscape";
|
|
@@ -53338,11 +53338,17 @@ function createTypeChecker(host) {
|
|
|
53338
53338
|
const constraintNode = constraint && typeToTypeNodeHelper(constraint, context);
|
|
53339
53339
|
return typeParameterToDeclarationWithConstraint(type, context, constraintNode);
|
|
53340
53340
|
}
|
|
53341
|
-
function
|
|
53342
|
-
|
|
53343
|
-
if (
|
|
53344
|
-
parameterDeclaration
|
|
53341
|
+
function getEffectiveParameterDeclaration(parameterSymbol) {
|
|
53342
|
+
const parameterDeclaration = getDeclarationOfKind(parameterSymbol, 169 /* Parameter */);
|
|
53343
|
+
if (parameterDeclaration) {
|
|
53344
|
+
return parameterDeclaration;
|
|
53345
|
+
}
|
|
53346
|
+
if (!isTransientSymbol(parameterSymbol)) {
|
|
53347
|
+
return getDeclarationOfKind(parameterSymbol, 348 /* JSDocParameterTag */);
|
|
53345
53348
|
}
|
|
53349
|
+
}
|
|
53350
|
+
function symbolToParameterDeclaration(parameterSymbol, context, preserveModifierFlags, privateSymbolVisitor, bundledImports) {
|
|
53351
|
+
const parameterDeclaration = getEffectiveParameterDeclaration(parameterSymbol);
|
|
53346
53352
|
let parameterType = getTypeOfSymbol(parameterSymbol);
|
|
53347
53353
|
if (parameterDeclaration && isRequiredInitializedParameter(parameterDeclaration)) {
|
|
53348
53354
|
parameterType = getOptionalType(parameterType);
|
|
@@ -53351,7 +53357,7 @@ function createTypeChecker(host) {
|
|
|
53351
53357
|
const modifiers = !(context.flags & 8192 /* OmitParameterModifiers */) && preserveModifierFlags && parameterDeclaration && canHaveModifiers(parameterDeclaration) ? map(getModifiers(parameterDeclaration), factory.cloneNode) : void 0;
|
|
53352
53358
|
const isRest = parameterDeclaration && isRestParameter(parameterDeclaration) || getCheckFlags(parameterSymbol) & 32768 /* RestParameter */;
|
|
53353
53359
|
const dotDotDotToken = isRest ? factory.createToken(26 /* DotDotDotToken */) : void 0;
|
|
53354
|
-
const name =
|
|
53360
|
+
const name = parameterToParameterDeclarationName(parameterSymbol, parameterDeclaration, context);
|
|
53355
53361
|
const isOptional = parameterDeclaration && isOptionalParameter(parameterDeclaration) || getCheckFlags(parameterSymbol) & 16384 /* OptionalParameter */;
|
|
53356
53362
|
const questionToken = isOptional ? factory.createToken(58 /* QuestionToken */) : void 0;
|
|
53357
53363
|
const parameterNode = factory.createParameterDeclaration(
|
|
@@ -53365,6 +53371,9 @@ function createTypeChecker(host) {
|
|
|
53365
53371
|
);
|
|
53366
53372
|
context.approximateLength += symbolName(parameterSymbol).length + 3;
|
|
53367
53373
|
return parameterNode;
|
|
53374
|
+
}
|
|
53375
|
+
function parameterToParameterDeclarationName(parameterSymbol, parameterDeclaration, context) {
|
|
53376
|
+
return parameterDeclaration ? parameterDeclaration.name ? parameterDeclaration.name.kind === 80 /* Identifier */ ? setEmitFlags(factory.cloneNode(parameterDeclaration.name), 16777216 /* NoAsciiEscaping */) : parameterDeclaration.name.kind === 166 /* QualifiedName */ ? setEmitFlags(factory.cloneNode(parameterDeclaration.name.right), 16777216 /* NoAsciiEscaping */) : cloneBindingName(parameterDeclaration.name) : symbolName(parameterSymbol) : symbolName(parameterSymbol);
|
|
53368
53377
|
function cloneBindingName(node) {
|
|
53369
53378
|
return elideInitializerAndSetEmitFlags(node);
|
|
53370
53379
|
function elideInitializerAndSetEmitFlags(node2) {
|
|
@@ -55345,6 +55354,21 @@ function createTypeChecker(host) {
|
|
|
55345
55354
|
if (p.flags & 98304 /* Accessor */ && useAccessors) {
|
|
55346
55355
|
const result = [];
|
|
55347
55356
|
if (p.flags & 65536 /* SetAccessor */) {
|
|
55357
|
+
const setter = p.declarations && forEach(p.declarations, (d) => {
|
|
55358
|
+
if (d.kind === 178 /* SetAccessor */) {
|
|
55359
|
+
return d;
|
|
55360
|
+
}
|
|
55361
|
+
if (isCallExpression(d) && isBindableObjectDefinePropertyCall(d)) {
|
|
55362
|
+
return forEach(d.arguments[2].properties, (propDecl) => {
|
|
55363
|
+
const id = getNameOfDeclaration(propDecl);
|
|
55364
|
+
if (!!id && isIdentifier(id) && idText(id) === "set") {
|
|
55365
|
+
return propDecl;
|
|
55366
|
+
}
|
|
55367
|
+
});
|
|
55368
|
+
}
|
|
55369
|
+
});
|
|
55370
|
+
Debug.assert(setter && isFunctionLikeDeclaration(setter));
|
|
55371
|
+
const paramSymbol = getSignatureFromDeclaration(setter).parameters[0];
|
|
55348
55372
|
result.push(setTextRange(
|
|
55349
55373
|
factory.createSetAccessorDeclaration(
|
|
55350
55374
|
factory.createModifiersFromModifierFlags(flag),
|
|
@@ -55354,7 +55378,7 @@ function createTypeChecker(host) {
|
|
|
55354
55378
|
void 0,
|
|
55355
55379
|
/*dotDotDotToken*/
|
|
55356
55380
|
void 0,
|
|
55357
|
-
"
|
|
55381
|
+
paramSymbol ? parameterToParameterDeclarationName(paramSymbol, getEffectiveParameterDeclaration(paramSymbol), context) : "value",
|
|
55358
55382
|
/*questionToken*/
|
|
55359
55383
|
void 0,
|
|
55360
55384
|
isPrivate ? void 0 : serializeTypeForDeclaration(context, getTypeOfSymbol(p), p, enclosingDeclaration, includePrivateSymbol, bundled)
|
|
@@ -68704,12 +68728,14 @@ function createTypeChecker(host) {
|
|
|
68704
68728
|
}
|
|
68705
68729
|
function inferFromSignatures(source, target, kind) {
|
|
68706
68730
|
const sourceSignatures = getSignaturesOfType(source, kind);
|
|
68707
|
-
const targetSignatures = getSignaturesOfType(target, kind);
|
|
68708
68731
|
const sourceLen = sourceSignatures.length;
|
|
68709
|
-
|
|
68710
|
-
|
|
68711
|
-
|
|
68712
|
-
|
|
68732
|
+
if (sourceLen > 0) {
|
|
68733
|
+
const targetSignatures = getSignaturesOfType(target, kind);
|
|
68734
|
+
const targetLen = targetSignatures.length;
|
|
68735
|
+
for (let i = 0; i < targetLen; i++) {
|
|
68736
|
+
const sourceIndex = Math.max(sourceLen - targetLen + i, 0);
|
|
68737
|
+
inferFromSignature(getBaseSignature(sourceSignatures[sourceIndex]), getErasedSignature(targetSignatures[i]));
|
|
68738
|
+
}
|
|
68713
68739
|
}
|
|
68714
68740
|
}
|
|
68715
68741
|
function inferFromSignature(source, target) {
|
|
@@ -70245,7 +70271,7 @@ function createTypeChecker(host) {
|
|
|
70245
70271
|
return void 0;
|
|
70246
70272
|
}
|
|
70247
70273
|
function getDiscriminantPropertyAccess(expr, computedType) {
|
|
70248
|
-
const type = declaredType.flags & 1048576 /* Union */ ? declaredType : computedType;
|
|
70274
|
+
const type = !(computedType.flags & 1048576 /* Union */) && declaredType.flags & 1048576 /* Union */ ? declaredType : computedType;
|
|
70249
70275
|
if (type.flags & 1048576 /* Union */) {
|
|
70250
70276
|
const access = getCandidateDiscriminantPropertyAccess(expr);
|
|
70251
70277
|
if (access) {
|
|
@@ -164642,11 +164668,11 @@ function provideInlayHints(context) {
|
|
|
164642
164668
|
function isSignatureSupportingReturnAnnotation(node) {
|
|
164643
164669
|
return isArrowFunction(node) || isFunctionExpression(node) || isFunctionDeclaration(node) || isMethodDeclaration(node) || isGetAccessorDeclaration(node);
|
|
164644
164670
|
}
|
|
164645
|
-
function addParameterHints(text, parameter, position, isFirstVariadicArgument
|
|
164671
|
+
function addParameterHints(text, parameter, position, isFirstVariadicArgument) {
|
|
164646
164672
|
let hintText = `${isFirstVariadicArgument ? "..." : ""}${text}`;
|
|
164647
164673
|
let displayParts;
|
|
164648
164674
|
if (shouldUseInteractiveInlayHints(preferences)) {
|
|
164649
|
-
displayParts = [getNodeDisplayPart(hintText, parameter
|
|
164675
|
+
displayParts = [getNodeDisplayPart(hintText, parameter), { text: ":" }];
|
|
164650
164676
|
hintText = "";
|
|
164651
164677
|
} else {
|
|
164652
164678
|
hintText += ":";
|
|
@@ -164718,7 +164744,6 @@ function provideInlayHints(context) {
|
|
|
164718
164744
|
if (!signature || !candidates.length) {
|
|
164719
164745
|
return;
|
|
164720
164746
|
}
|
|
164721
|
-
const sourceFile = shouldUseInteractiveInlayHints(preferences) ? expr.getSourceFile() : void 0;
|
|
164722
164747
|
let signatureParamPos = 0;
|
|
164723
164748
|
for (const originalArg of args) {
|
|
164724
164749
|
const arg = skipParentheses(originalArg);
|
|
@@ -164753,7 +164778,7 @@ function provideInlayHints(context) {
|
|
|
164753
164778
|
if (leadingCommentsContainsParameterName(arg, name)) {
|
|
164754
164779
|
continue;
|
|
164755
164780
|
}
|
|
164756
|
-
addParameterHints(name, parameter, originalArg.getStart(), isFirstVariadicArgument
|
|
164781
|
+
addParameterHints(name, parameter, originalArg.getStart(), isFirstVariadicArgument);
|
|
164757
164782
|
}
|
|
164758
164783
|
}
|
|
164759
164784
|
}
|
|
@@ -164889,7 +164914,8 @@ function provideInlayHints(context) {
|
|
|
164889
164914
|
}
|
|
164890
164915
|
return true;
|
|
164891
164916
|
}
|
|
164892
|
-
function getNodeDisplayPart(text, node
|
|
164917
|
+
function getNodeDisplayPart(text, node) {
|
|
164918
|
+
const sourceFile = node.getSourceFile();
|
|
164893
164919
|
return {
|
|
164894
164920
|
text,
|
|
164895
164921
|
span: createTextSpanFromNode(node, sourceFile),
|
|
@@ -167688,11 +167714,12 @@ function getSymbolDisplayPartsDocumentationAndSymbolKindWorker(typeChecker, symb
|
|
|
167688
167714
|
if (documentation.length === 0 && isIdentifier(location) && symbol.valueDeclaration && isBindingElement(symbol.valueDeclaration)) {
|
|
167689
167715
|
const declaration = symbol.valueDeclaration;
|
|
167690
167716
|
const parent2 = declaration.parent;
|
|
167691
|
-
|
|
167692
|
-
|
|
167717
|
+
const name = declaration.propertyName || declaration.name;
|
|
167718
|
+
if (isIdentifier(name) && isObjectBindingPattern(parent2)) {
|
|
167719
|
+
const propertyName = getTextOfIdentifierOrLiteral(name);
|
|
167693
167720
|
const objectType = typeChecker.getTypeAtLocation(parent2);
|
|
167694
167721
|
documentation = firstDefined(objectType.isUnion() ? objectType.types : [objectType], (t) => {
|
|
167695
|
-
const prop = t.getProperty(
|
|
167722
|
+
const prop = t.getProperty(propertyName);
|
|
167696
167723
|
return prop ? prop.getDocumentationComment(typeChecker) : void 0;
|
|
167697
167724
|
}) || emptyArray;
|
|
167698
167725
|
}
|
|
@@ -183575,14 +183602,22 @@ Project '${project.projectName}' (${ProjectKind[project.projectKind]}) ${counter
|
|
|
183575
183602
|
return {
|
|
183576
183603
|
...hint,
|
|
183577
183604
|
position: scriptInfo.positionToLineOffset(position),
|
|
183578
|
-
displayParts: displayParts == null ? void 0 : displayParts.map(({ text, span, file: file2 }) =>
|
|
183579
|
-
|
|
183580
|
-
|
|
183581
|
-
|
|
183582
|
-
|
|
183583
|
-
|
|
183605
|
+
displayParts: displayParts == null ? void 0 : displayParts.map(({ text, span, file: file2 }) => {
|
|
183606
|
+
if (span) {
|
|
183607
|
+
Debug.assertIsDefined(file2, "Target file should be defined together with its span.");
|
|
183608
|
+
const scriptInfo2 = this.projectService.getScriptInfo(file2);
|
|
183609
|
+
return {
|
|
183610
|
+
text,
|
|
183611
|
+
span: {
|
|
183612
|
+
start: scriptInfo2.positionToLineOffset(span.start),
|
|
183613
|
+
end: scriptInfo2.positionToLineOffset(span.start + span.length),
|
|
183614
|
+
file: file2
|
|
183615
|
+
}
|
|
183616
|
+
};
|
|
183617
|
+
} else {
|
|
183618
|
+
return { text };
|
|
183584
183619
|
}
|
|
183585
|
-
})
|
|
183620
|
+
})
|
|
183586
183621
|
};
|
|
183587
183622
|
});
|
|
183588
183623
|
}
|