Skip to content

Commit 6a89e2c

Browse files
authored
Merge pull request #134 from nix6839/fix-#133
Don't crash when encounter unknown node like `as`
2 parents b65cf30 + a3f07a2 commit 6a89e2c

File tree

3 files changed

+23
-3
lines changed

3 files changed

+23
-3
lines changed

docs/reactivity.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -645,6 +645,10 @@ function createFoo(v) {}
645645
const [bar, setBar] = createSignal();
646646
createFoo([bar]);
647647

648+
function createFoo(v) {}
649+
const [bar, setBar] = createSignal();
650+
createFoo({ onBar: () => bar() } as object);
651+
648652
const [bar, setBar] = createSignal();
649653
X.createFoo(() => bar());
650654

@@ -812,6 +816,10 @@ const m = createMemo(() => 5)! as Accessor<number>;
812816

813817
const m = createMemo(() => 5) satisfies Accessor<number>;
814818

819+
const [s] = createSignal("a" as string);
820+
821+
createFoo("a" as string);
822+
815823
function Component(props) {
816824
return (
817825
<div>

src/rules/reactivity.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -843,6 +843,7 @@ export default createRule<Options, MessageIds>({
843843
this.skip(); // poor-man's `findInScope`: don't enter child scopes
844844
}
845845
},
846+
fallback: "iteration", // Don't crash when encounter unknown node.
846847
});
847848
};
848849

test/rules/reactivity.test.ts

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -158,9 +158,12 @@ export const cases = run("reactivity", rule, {
158158
`function createFoo(v) {}
159159
const [bar, setBar] = createSignal();
160160
createFoo([bar]);`,
161-
// `function createFoo(v) {}
162-
// const [bar, setBar] = createSignal();
163-
// createFoo((() => () => bar())());`,
161+
{
162+
code: `function createFoo(v) {}
163+
const [bar, setBar] = createSignal();
164+
createFoo({ onBar: () => bar() } as object);`,
165+
...tsOnlyTest,
166+
},
164167
`const [bar, setBar] = createSignal();
165168
X.createFoo(() => bar());`,
166169
`const [bar, setBar] = createSignal();
@@ -308,6 +311,14 @@ export const cases = run("reactivity", rule, {
308311
code: `const m = createMemo(() => 5) satisfies Accessor<number>;`,
309312
...tsOnlyTest,
310313
},
314+
{
315+
code: `const [s] = createSignal('a' as string)`,
316+
...tsOnlyTest,
317+
},
318+
{
319+
code: `createFoo('a' as string)`,
320+
...tsOnlyTest,
321+
},
311322
// functions in JSXExpressionContainers
312323
`function Component(props) {
313324
return (

0 commit comments

Comments
 (0)