diff --git a/.changeset/happy-snakes-pump.md b/.changeset/happy-snakes-pump.md new file mode 100644 index 000000000000..a5cb3dc30334 --- /dev/null +++ b/.changeset/happy-snakes-pump.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +fix: ignore generic type arguments while creating AST diff --git a/packages/svelte/package.json b/packages/svelte/package.json index f70ae5cac6c5..1434bb9f069a 100644 --- a/packages/svelte/package.json +++ b/packages/svelte/package.json @@ -156,7 +156,7 @@ "axobject-query": "^4.1.0", "clsx": "^2.1.1", "esm-env": "^1.2.1", - "esrap": "^1.4.3", + "esrap": "^1.4.6", "is-reference": "^3.0.3", "locate-character": "^3.0.0", "magic-string": "^0.30.11", diff --git a/packages/svelte/src/compiler/phases/1-parse/remove_typescript_nodes.js b/packages/svelte/src/compiler/phases/1-parse/remove_typescript_nodes.js index 37dc0e17a1ee..4ff6a782b4fb 100644 --- a/packages/svelte/src/compiler/phases/1-parse/remove_typescript_nodes.js +++ b/packages/svelte/src/compiler/phases/1-parse/remove_typescript_nodes.js @@ -24,6 +24,7 @@ const visitors = { // until that day comes, we just delete them so they don't confuse esrap delete n.typeAnnotation; delete n.typeParameters; + delete n.typeArguments; delete n.returnType; delete n.accessibility; }, diff --git a/packages/svelte/src/compiler/phases/3-transform/server/transform-server.js b/packages/svelte/src/compiler/phases/3-transform/server/transform-server.js index df3d831d3cc3..f746e90fe24f 100644 --- a/packages/svelte/src/compiler/phases/3-transform/server/transform-server.js +++ b/packages/svelte/src/compiler/phases/3-transform/server/transform-server.js @@ -186,12 +186,10 @@ export function server_component(analysis, options) { ...snippets, b.let('$$settled', b.true), b.let('$$inner_payload'), - b.stmt( - b.function( - b.id('$$render_inner'), - [b.id('$$payload')], - b.block(/** @type {Statement[]} */ (rest)) - ) + b.function_declaration( + b.id('$$render_inner'), + [b.id('$$payload')], + b.block(/** @type {Statement[]} */ (rest)) ), b.do_while( b.unary('!', b.id('$$settled')), diff --git a/packages/svelte/tests/runtime-runes/samples/typescript/main.svelte b/packages/svelte/tests/runtime-runes/samples/typescript/main.svelte index d2a9da5439a4..d1b6452df465 100644 --- a/packages/svelte/tests/runtime-runes/samples/typescript/main.svelte +++ b/packages/svelte/tests/runtime-runes/samples/typescript/main.svelte @@ -8,7 +8,7 @@ console.log(this); } - function foo(): string { + function foo(): string { return ""!; } @@ -46,6 +46,7 @@ const TypedFoo = Foo; const typeAssertion = true; + const x = foo();