Repository navigation
impact: one row per TypeScript signature use; pipeline-array-dispatch is no longer pending - #1812
Merged
Merged
Conversation
…uplicate Symptom: `impact` on a TypeScript type listed each function that names it in a parameter as "names it in its signature (a parameter); also: names it (METHOD_PARAM)". tests/run.py typescript/union-alias-member failed 2 of 3 checks (the alias itself, and the no-common-member control). Cause: the signature rule reads type_use and adds a lineless resolved row for every parameter or return position. It exists for languages whose type_refs carry no line (Java), where the typeref rule matches nothing and the text grep mislabelled the use. TypeScript's type_refs do carry a line, so the typeref rule already named the same signature at its site, and both rows were merged into one entry. Fix: the signature row is added only for a (callable, context) the typeref rule has not already named with a line. Done in both backends (impact.dl sig_at_line, graph_sql.py rule 273b). The text row is still dropped for any callable type_use resolves, so Java answers are unchanged. Tests: union-alias-member 3/3 on both the Datalog and SQL backends (1/3 on each before). java/signature-use-resolved-by-type-use 2/2 on both. tests/run.py --lang typescript 185/185 with the companion case fix (181/185 before); --lang java 304/304. Co-authored-by: axiomcode-bot[bot] <334110751+axiomcode-bot[bot]@users.noreply.github.com>
Symptom: tests/run.py typescript/pipeline-array-dispatch failed 0 of 2 with "marked pending ... but it PASSES — remove the marker". Cause: both checks were marked pending on the gap where a function held in an array had no edge from the code that iterates it. "typescript: a function held in an array or table is run by the call that iterates or indexes it" closed that gap: `impact measure --tests` now reaches src/pipeline.test.ts and `path run widenRange` finds the one-hop dispatch chain. The case was PEND on that commit's parent and passing-while-pending from that commit on. Fix: drop both pending markers, and expect_error on the path check, which now exits 0 with a chain. Co-authored-by: axiomcode-bot[bot] <334110751+axiomcode-bot[bot]@users.noreply.github.com>
swapnilpaliwal-sd
requested review from
JaredHLZhang,
Whua689 and
suyashpaliwal26
as code owners
September 30, 2026 06:55
swapnilpaliwal-sd
deleted the
fix/ts-signature-row-and-stale-pending
branch
September 30, 2026 07:04
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two cases in the query-layer suite (
tests/run.py, which CI does not run) failed on 0.1.9:typescript/union-alias-member(1/3 checks passed). A rule added for Java gives a resolved, line-less row whenever a type is used in a signature, because Java's type references carry no line. TypeScript's do, so the existing rule already named that signature with its line, and each TypeScript signature use turned into two merged rows. The line-less row is now added only for a (callable, context) that the line-carrying rule has not already named. The change is in both backends:dl/impact.dl(sig_at_line) andgraph_sql.py. Java keeps its resolved row.typescript/pipeline-array-dispatch(0/2 checks passed). This was not a regression. The engine: a function placed in an array or table and invoked by iteration has no caller, so everything downstream of it loses its callers too #967 fix made the case pass while it was still marked pending, and the runner reports that as a failure. Thependingmarks and a staleexpect_errorare removed.Tests (rebased on the current 0.1.9)
union-alias-member: 3/3 on the Datalog backend and 3/3 on the SQL backend.pipeline-array-dispatch: 2/2.java/signature-use-resolved-by-type-use, the Java rule's own case: 2/2.tests/run.py --lang typescript: 185/185, against 181/185 before this change.