From 4d7a3e897c8bcd6246241ab37faf23c946210baf Mon Sep 17 00:00:00 2001 From: lumir Date: Fri, 23 Oct 2026 16:05:31 +0900 Subject: [PATCH 1/2] fix: false positives after definitions in `no-missing-label-refs` --- src/rules/no-missing-label-refs.js | 3 +++ tests/rules/no-missing-label-refs.test.js | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/src/rules/no-missing-label-refs.js b/src/rules/no-missing-label-refs.js index f98fd8b0..ad8bc495 100644 --- a/src/rules/no-missing-label-refs.js +++ b/src/rules/no-missing-label-refs.js @@ -177,6 +177,9 @@ export default /** @satisfies {NoMissingLabelRefsRuleDefinition} */ ({ missingReference => missingReference.label !== node.identifier, ); + + // Also ignore matching references encountered after this definition. + allowLabels.add(node.identifier); }, }; }, diff --git a/tests/rules/no-missing-label-refs.test.js b/tests/rules/no-missing-label-refs.test.js index 07ce97e2..003c47a2 100644 --- a/tests/rules/no-missing-label-refs.test.js +++ b/tests/rules/no-missing-label-refs.test.js @@ -46,6 +46,10 @@ ruleTester.run("no-missing-label-refs", rule, { "foo][bar][baz]\n\n[baz]: http://baz.com", "[][foo]\n\n[foo]: http://foo.com", "[foo][bar\\]\n\n[foo]: http://foo.com", + "[foo]: http://foo.com\n\n[foo][bar", + "[foo]: http://foo.com\n\n[foo][bar\\]", + "[foo][bar\n\n[foo]: http://foo.com\n\n[foo][bar", + "[foo][bar\\]\n\n[foo]: http://foo.com\n\n[foo][bar\\]", "\\[\\]", `${"\\".repeat(3)}[${"\\".repeat(3)}]`, `${"\\".repeat(5)}[${"\\".repeat(5)}]`, From 66b50827b62ed2a817d6a5f46a8111f453fcfa17 Mon Sep 17 00:00:00 2001 From: lumir Date: Mon, 26 Oct 2026 23:50:09 +0900 Subject: [PATCH 2/2] wip --- src/rules/no-missing-label-refs.js | 1 - tests/rules/no-missing-label-refs.test.js | 2 -- 2 files changed, 3 deletions(-) diff --git a/src/rules/no-missing-label-refs.js b/src/rules/no-missing-label-refs.js index ad8bc495..52cac63e 100644 --- a/src/rules/no-missing-label-refs.js +++ b/src/rules/no-missing-label-refs.js @@ -178,7 +178,6 @@ export default /** @satisfies {NoMissingLabelRefsRuleDefinition} */ ({ missingReference.label !== node.identifier, ); - // Also ignore matching references encountered after this definition. allowLabels.add(node.identifier); }, }; diff --git a/tests/rules/no-missing-label-refs.test.js b/tests/rules/no-missing-label-refs.test.js index 003c47a2..01834110 100644 --- a/tests/rules/no-missing-label-refs.test.js +++ b/tests/rules/no-missing-label-refs.test.js @@ -46,9 +46,7 @@ ruleTester.run("no-missing-label-refs", rule, { "foo][bar][baz]\n\n[baz]: http://baz.com", "[][foo]\n\n[foo]: http://foo.com", "[foo][bar\\]\n\n[foo]: http://foo.com", - "[foo]: http://foo.com\n\n[foo][bar", "[foo]: http://foo.com\n\n[foo][bar\\]", - "[foo][bar\n\n[foo]: http://foo.com\n\n[foo][bar", "[foo][bar\\]\n\n[foo]: http://foo.com\n\n[foo][bar\\]", "\\[\\]", `${"\\".repeat(3)}[${"\\".repeat(3)}]`,