From 4b57898ab6decc1bdf09b1410cf73bfbbaf818ce Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Mon, 20 Nov 2023 16:58:04 -0500 Subject: [PATCH] set expression end to typeAnnotation end where appropriate --- .../svelte/src/compiler/phases/1-parse/read/context.js | 8 +++++++- .../tests/parser-modern/samples/snippets/output.json | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/svelte/src/compiler/phases/1-parse/read/context.js b/packages/svelte/src/compiler/phases/1-parse/read/context.js index 2ff9c46ca6..d5733774ed 100644 --- a/packages/svelte/src/compiler/phases/1-parse/read/context.js +++ b/packages/svelte/src/compiler/phases/1-parse/read/context.js @@ -22,12 +22,14 @@ export default function read_context(parser) { const code = full_char_code_at(parser.template, i); if (isIdentifierStart(code, true)) { const name = /** @type {string} */ (parser.read_identifier()); + const typeAnnotation = read_type_annotation(parser); + return { type: 'Identifier', name, start, end: parser.index, - typeAnnotation: read_type_annotation(parser) + typeAnnotation }; } @@ -81,6 +83,10 @@ export default function read_context(parser) { ).left; expression.typeAnnotation = read_type_annotation(parser); + if (expression.typeAnnotation) { + expression.end = expression.typeAnnotation.end; + } + return expression; } catch (error) { parser.acorn_error(error); diff --git a/packages/svelte/tests/parser-modern/samples/snippets/output.json b/packages/svelte/tests/parser-modern/samples/snippets/output.json index e1f0a8b44b..7d7e414259 100644 --- a/packages/svelte/tests/parser-modern/samples/snippets/output.json +++ b/packages/svelte/tests/parser-modern/samples/snippets/output.json @@ -28,7 +28,7 @@ "type": "Identifier", "name": "msg", "start": 43, - "end": 46, + "end": 54, "typeAnnotation": { "type": "TSStringKeyword", "start": 48,