Skip to content

Commit

Permalink
Cherry-pick PR #45399 into release-4.4 (#45404)
Browse files Browse the repository at this point in the history
Component commits:
f7af8f4 fix(45393): show parameter name hints for unary literal expressions

Co-authored-by: Oleksandr T <oleksandr.tarasiuk@outlook.com>
  • Loading branch information
typescript-bot and a-tarasyuk committed Aug 11, 2021
1 parent 0648de8 commit c82ccf1
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 1 deletion.
13 changes: 12 additions & 1 deletion src/services/inlayHints.ts
Expand Up @@ -203,7 +203,18 @@ namespace ts.InlayHints {
}

function isHintableExpression(node: Node) {
return isLiteralExpression(node) || isBooleanLiteral(node) || isArrowFunction(node) || isFunctionExpression(node) || isObjectLiteralExpression(node) || isArrayLiteralExpression(node);
switch (node.kind) {
case SyntaxKind.PrefixUnaryExpression:
return isLiteralExpression((node as PrefixUnaryExpression).operand);
case SyntaxKind.TrueKeyword:
case SyntaxKind.FalseKeyword:
case SyntaxKind.ArrowFunction:
case SyntaxKind.FunctionExpression:
case SyntaxKind.ObjectLiteralExpression:
case SyntaxKind.ArrayLiteralExpression:
return true;
}
return isLiteralExpression(node);
}

function visitFunctionDeclarationLikeForReturnType(decl: FunctionDeclaration | ArrowFunction | FunctionExpression | MethodDeclaration | GetAccessorDeclaration) {
Expand Down
34 changes: 34 additions & 0 deletions tests/cases/fourslash/inlayHintsShouldWork63.ts
@@ -0,0 +1,34 @@
/// <reference path="fourslash.ts" />

////function foo(a: number, b: number, c: number, d: number) {}
////foo(/*a*/1, /*b*/+1, /*c*/-1, /*d*/+"1");

const [a, b, c, d] = test.markers();
verify.getInlayHints([
{
text: "a:",
position: a.position,
kind: ts.InlayHintKind.Parameter,
whitespaceAfter: true
},
{
text: "b:",
position: b.position,
kind: ts.InlayHintKind.Parameter,
whitespaceAfter: true
},
{
text: "c:",
position: c.position,
kind: ts.InlayHintKind.Parameter,
whitespaceAfter: true
},
{
text: "d:",
position: d.position,
kind: ts.InlayHintKind.Parameter,
whitespaceAfter: true
}
], undefined, {
includeInlayParameterNameHints: "literals"
});

0 comments on commit c82ccf1

Please sign in to comment.