Skip to content

impact, hooks: a caller is its declaration, not its display name - #1807

Merged
swapnilpaliwal-sd merged 1 commit into
apps/integration-0.1.9from
apps/javascript/anonymous-and-module-declarations-merged
Sep 30, 2026
Merged

swapnilpaliwal-sd merged 1 commit into
apps/integration-0.1.9from
apps/javascript/anonymous-and-module-declarations-merged

Conversation

@swapnilpaliwal-sd

Copy link
Copy Markdown
Contributor

Every unnamed function shares one display name (<arrow>, <function-expression>, <lambda>, <anonymous-method>), and so do module bodies that share a basename. Keying declarations by that name merged unrelated ones.

  • <arrow>, <function-expression> and <anonymous-method> join <lambda> as names that are never a target on their own. file:line on an arrow now answers for that one arrow, and an edit inside an arrow is a body change of the function that encloses it, not "removed ".
  • The hook's fast path now keys callers by id and puts each one at its lowest call site, as the rules path does. Before, it put every arrow caller at the first arrow in the table, often in another file.
  • The fastpath parity check now compares direct rows together with their locations. Python, Java, C# and TypeScript all agree.
  • New JavaScript case with a named-function control. It fails 7 of 9 checks before the fix and passes 9 of 9 after.

Checked: JS engine suite 89/89. The case suites have no new failures; the ones that remain also fail without this change. Product probes are 47/70 before and after, with 0 regressions. Call edges stay at 8960.

Every unnamed function carries one display (<arrow>, <function-expression>,
<lambda>, <anonymous-method>) and every module body of a basename another.
Keyed by that name, file:line on an arrow answered for every arrow, an edit
inside an arrow came back as a removed <arrow>, and the hook's fast path
merged all same-named callers into one row located at whichever came first.

- the unnamed-function names of every front end are never a target on their own
- the fast path keys callers by id and locates each at its lowest call site, as the rules do
- the parity check compares direct rows with their locations
- a JavaScript case for arrows and function expressions, with a named-function control

Co-authored-by: axiomcode-bot[bot] <334110751+axiomcode-bot[bot]@users.noreply.github.com>
@swapnilpaliwal-sd
swapnilpaliwal-sd merged commit 40b08d3 into apps/integration-0.1.9 Sep 30, 2026
12 checks passed
@swapnilpaliwal-sd
swapnilpaliwal-sd deleted the apps/javascript/anonymous-and-module-declarations-merged branch September 30, 2026 06:37
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