From 1dd8772eacd7d1adde2b3a261eaeae6d1cfcec50 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 26 Nov 2024 22:30:18 -0500 Subject: [PATCH] more accurate pruning --- .../src/compiler/phases/2-analyze/css/css-prune.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/svelte/src/compiler/phases/2-analyze/css/css-prune.js b/packages/svelte/src/compiler/phases/2-analyze/css/css-prune.js index 58d24de94e..fa976ae813 100644 --- a/packages/svelte/src/compiler/phases/2-analyze/css/css-prune.js +++ b/packages/svelte/src/compiler/phases/2-analyze/css/css-prune.js @@ -231,10 +231,15 @@ function apply_combinator(combinator, relative_selector, parent_selectors, rule, } if (parent.type === 'SnippetBlock') { - // We assume the snippet might be rendered in a place where the parent selectors match. - // (We could do more static analysis and check the render tag reference to see if this snippet block continues - // with elements that actually match the selector, but that would be a lot of work for little gain) - return true; + for (const site of parent.metadata.sites) { + if ( + apply_combinator(combinator, relative_selector, parent_selectors, rule, site, state) + ) { + return true; + } + } + + return false; } if (parent.type === 'RegularElement' || parent.type === 'SvelteElement') {