Skip to content

Commit

Permalink
fix: false positives for builtin $$ vars in `svelte/no-immutable-re…
Browse files Browse the repository at this point in the history
…active-statements` (#465)
  • Loading branch information
ota-meshi committed May 8, 2023
1 parent fcb7226 commit c8c98d4
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 9 deletions.
5 changes: 5 additions & 0 deletions .changeset/empty-badgers-learn.md
@@ -0,0 +1,5 @@
---
"eslint-plugin-svelte": patch
---

fix: false positives for builtin `$$` vars in `svelte/no-immutable-reactive-statements`
22 changes: 13 additions & 9 deletions src/rules/no-immutable-reactive-statements.ts
Expand Up @@ -136,15 +136,19 @@ export default createRule("no-immutable-reactive-statements", {
return
}
}
if (
globalScope.through.some(
(reference) =>
node.range[0] <= reference.identifier.range[0] &&
reference.identifier.range[1] <= node.range[1],
)
) {
// Do not report if there are missing references.
return
for (const through of toplevelScope.through.filter(
(reference) =>
node.range[0] <= reference.identifier.range[0] &&
reference.identifier.range[1] <= node.range[1],
)) {
if (through.identifier.name.startsWith("$$")) {
// Builtin `$$` vars
return
}
if (through.resolved == null) {
// Do not report if there are missing references.
return
}
}

context.report({
Expand Down
@@ -0,0 +1,11 @@
<script>
$: desc = $$slots.description
</script>

<div>
<slot name="title" />
{#if desc}
<hr />
<slot name="description" />
{/if}
</div>
@@ -0,0 +1,7 @@
<script>
$: prop = $$props.prop
$: type = $$restProps.type
</script>

<Widget {prop} />
<input {type} />

0 comments on commit c8c98d4

Please sign in to comment.