From 3c64f5630af1fb58c8ea4db2a7f8d477e97eaf0e Mon Sep 17 00:00:00 2001 From: navorite Date: Sun, 25 Feb 2024 07:43:40 +0200 Subject: [PATCH] fix: treat snippets like normal components when inferring namespace --- .changeset/giant-planets-shake.md | 5 +++++ .../svelte/src/compiler/phases/3-transform/utils.js | 6 +----- .../samples/svg-namespace-infer/Wrapper.svelte | 12 ++++++++---- .../samples/svg-namespace-infer/_config.js | 2 +- 4 files changed, 15 insertions(+), 10 deletions(-) create mode 100644 .changeset/giant-planets-shake.md diff --git a/.changeset/giant-planets-shake.md b/.changeset/giant-planets-shake.md new file mode 100644 index 0000000000..6aae50c26b --- /dev/null +++ b/.changeset/giant-planets-shake.md @@ -0,0 +1,5 @@ +--- +"svelte": patch +--- + +fix: treat snippets like normal components when inferring namespace diff --git a/packages/svelte/src/compiler/phases/3-transform/utils.js b/packages/svelte/src/compiler/phases/3-transform/utils.js index ceb8838c90..8476181479 100644 --- a/packages/svelte/src/compiler/phases/3-transform/utils.js +++ b/packages/svelte/src/compiler/phases/3-transform/utils.js @@ -245,11 +245,7 @@ function check_nodes_for_namespace(nodes, namespace) { } else if (namespace === 'keep') { namespace = 'svg'; } - } else if ( - (node.type === 'Text' && node.data.trim() !== '') || - node.type === 'HtmlTag' || - node.type === 'RenderTag' - ) { + } else if ((node.type === 'Text' && node.data.trim() !== '') || node.type === 'HtmlTag') { namespace = 'maybe_html'; } else if (node.type === 'EachBlock') { namespace = check_nodes_for_namespace(node.body.nodes, namespace); diff --git a/packages/svelte/tests/runtime-runes/samples/svg-namespace-infer/Wrapper.svelte b/packages/svelte/tests/runtime-runes/samples/svg-namespace-infer/Wrapper.svelte index 41f3f38fa8..13a7e816eb 100644 --- a/packages/svelte/tests/runtime-runes/samples/svg-namespace-infer/Wrapper.svelte +++ b/packages/svelte/tests/runtime-runes/samples/svg-namespace-infer/Wrapper.svelte @@ -2,12 +2,16 @@ {#if true} true -{:else} - false {/if} -{#each Array(3).fill(0) as item, idx} +{#each Array(2).fill(0) as item, idx} {idx} {/each} - +{@render test("test")} + +{#snippet test(text)} +{text} +{/snippet} + + diff --git a/packages/svelte/tests/runtime-runes/samples/svg-namespace-infer/_config.js b/packages/svelte/tests/runtime-runes/samples/svg-namespace-infer/_config.js index 46118026af..7629ae5010 100644 --- a/packages/svelte/tests/runtime-runes/samples/svg-namespace-infer/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/svg-namespace-infer/_config.js @@ -7,7 +7,7 @@ export default test({ true 0 1 - 2 + test `, test({ assert, target }) {