You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Mined eslint-factory rule history for false positives/negatives not yet addressed. Two fresh, non-duplicate gaps were confirmed by reading rule source and test fixtures directly, and two other candidates were ruled out as duplicates of prior work before filing anything.
Key metrics
Rules/utilities reviewed in depth: 9 (try-catch-rule-utils.ts, require-escaped-regexp-interpolation.ts, no-unsafe-catch-error-property.ts, non-string-kind.ts, require-parseInt-radix.ts, command-initializer-utils.ts, no-duplicate-constant-values.ts, no-async-foreach-callback.ts, plus its test fixture)
Issues created: 2
Candidates dropped as duplicates/already-decided: 2
Details
Issue 1: resolveInitializer never resolves module-scope command/route constants
command-initializer-utils.ts (lines 94-101) refuses to resolve module/global-scope const bindings even though it already has a write-once safety check that would make this safe -- the exclusion is purely scope-based, not safety-based. This utility backs 5 rules: no-exec-interpolated-command, no-child-process-interpolated-command, no-github-request-interpolated-route, require-error-code-for-github-api-throw, require-error-code-in-thrown-error. A module-level const built from a template literal (e.g. a shared git command string) and later passed to exec.exec() silently bypasses all five.
Issue 2: no-async-foreach-callback misses computed access and named async references
The rule own test fixture lists two forms as valid (unflagged) that are the exact bug class it exists to catch: items["forEach"](async x => {}) (computed-property access, skipped by an unconditional callee.computed early return) and items.forEach(handler) where handler is a named async function (never resolved back to its declaration). Both are concrete, reproducible gaps with no scope-analysis prerequisite for the first.
Rules not yet audited this pass: no-json-stringify-equality, no-math-minmax-array-spread, prefer-number-isnan, and the require-nan-check-after-* family.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Overview
Mined eslint-factory rule history for false positives/negatives not yet addressed. Two fresh, non-duplicate gaps were confirmed by reading rule source and test fixtures directly, and two other candidates were ruled out as duplicates of prior work before filing anything.
Key metrics
Details
Issue 1: resolveInitializer never resolves module-scope command/route constants
command-initializer-utils.ts (lines 94-101) refuses to resolve module/global-scope const bindings even though it already has a write-once safety check that would make this safe -- the exclusion is purely scope-based, not safety-based. This utility backs 5 rules: no-exec-interpolated-command, no-child-process-interpolated-command, no-github-request-interpolated-route, require-error-code-for-github-api-throw, require-error-code-in-thrown-error. A module-level const built from a template literal (e.g. a shared git command string) and later passed to exec.exec() silently bypasses all five.
Issue 2: no-async-foreach-callback misses computed access and named async references
The rule own test fixture lists two forms as valid (unflagged) that are the exact bug class it exists to catch: items["forEach"](async x => {}) (computed-property access, skipped by an unconditional callee.computed early return) and items.forEach(handler) where handler is a named async function (never resolved back to its declaration). Both are concrete, reproducible gaps with no scope-analysis prerequisite for the first.
Candidates ruled out as duplicates
Next actions
All reactions