Skip to content

impact: one row per TypeScript signature use; pipeline-array-dispatch is no longer pending - #1812

Merged
swapnilpaliwal-sd merged 2 commits into
0.1.9from
fix/ts-signature-row-and-stale-pending
Sep 30, 2026
Merged

swapnilpaliwal-sd merged 2 commits into
0.1.9from
fix/ts-signature-row-and-stale-pending

Conversation

@swapnilpaliwal-sd

Copy link
Copy Markdown
Contributor

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) and graph_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. The pending marks and a stale expect_error are 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.

swapnilpaliwal-sd and others added 2 commits September 29, 2026 23:55
…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
swapnilpaliwal-sd merged commit 2ebc4f4 into 0.1.9 Sep 30, 2026
12 checks passed
@swapnilpaliwal-sd
swapnilpaliwal-sd deleted the fix/ts-signature-row-and-stale-pending branch September 30, 2026 07:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant