From 2f2d2f2bb90bf57fd7893cb76958a349f1980f82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maria=20Jos=C3=A9=20Solano?= Date: Mon, 27 Nov 2023 16:57:01 -0800 Subject: [PATCH] Inlay hints for ThisType nodes (#56564) --- src/services/inlayHints.ts | 5 ++++ .../inlayHintsInteractiveReturnType.baseline | 23 ++++++++++++++++--- .../inlayHintsInteractiveReturnType.ts | 3 +++ 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/src/services/inlayHints.ts b/src/services/inlayHints.ts index a36e4054911..c12b76381f9 100644 --- a/src/services/inlayHints.ts +++ b/src/services/inlayHints.ts @@ -77,6 +77,7 @@ import { isRestTypeNode, isSpreadElement, isStringLiteral, + isThisTypeNode, isTupleTypeNode, isTypeLiteralNode, isTypeNode, @@ -792,6 +793,10 @@ export function provideInlayHints(context: InlayHintsContext): InlayHint[] { parts.push({ text: tokenToString(node.operator) }); visitForDisplayParts(node.operand); break; + case SyntaxKind.ThisType: + Debug.assertNode(node, isThisTypeNode); + parts.push({ text: "this" }); + break; default: Debug.failBadSyntaxKind(node); } diff --git a/tests/baselines/reference/inlayHintsInteractiveReturnType.baseline b/tests/baselines/reference/inlayHintsInteractiveReturnType.baseline index 62d9fe4979f..0b69fef7e67 100644 --- a/tests/baselines/reference/inlayHintsInteractiveReturnType.baseline +++ b/tests/baselines/reference/inlayHintsInteractiveReturnType.baseline @@ -33,6 +33,23 @@ function foo1 () { "whitespaceBefore": true } + bar() { + ^ +{ + "text": "", + "displayParts": [ + { + "text": ": " + }, + { + "text": "this" + } + ], + "position": 130, + "kind": "Type", + "whitespaceBefore": true +} + const a = () => 1 ^ { @@ -45,7 +62,7 @@ const a = () => 1 "text": "number" } ], - "position": 135, + "position": 173, "kind": "Type", "whitespaceBefore": true } @@ -62,7 +79,7 @@ const b = function () { return 1 } "text": "number" } ], - "position": 162, + "position": 200, "kind": "Type", "whitespaceBefore": true } @@ -79,7 +96,7 @@ const c = (b) => 1 "text": "number" } ], - "position": 189, + "position": 227, "kind": "Type", "whitespaceBefore": true } \ No newline at end of file diff --git a/tests/cases/fourslash/inlayHintsInteractiveReturnType.ts b/tests/cases/fourslash/inlayHintsInteractiveReturnType.ts index 5bb31f39cb3..92afc7ee173 100644 --- a/tests/cases/fourslash/inlayHintsInteractiveReturnType.ts +++ b/tests/cases/fourslash/inlayHintsInteractiveReturnType.ts @@ -12,6 +12,9 @@ //// foo() { //// return 1 //// } +//// bar() { +//// return this +//// } //// } //// const a = () => 1