Skip to content

Fix layering gate false edges: reference-derived producer misattributes prelude bare names (main-red) - #7080

Merged
briansrls merged 5 commits into
mainfrom
session/wise-pike-555
Jul 22, 2026
Merged

briansrls merged 5 commits into
mainfrom
session/wise-pike-555

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Auto-opened by session-dashboard for session wise-pike-555.
Pushing to session/wise-pike-555 advances this PR.

Worker attestation

Before flipping this PR to ready for review, confirm each item:

  • Title describes the change (not the session id or branch).
  • PR body summarises what and why (replace the TODO below).
  • Tests run: name the command (e.g. npm test, cargo test) and the result.
  • If this closes a work item, the body contains a Closes #N directive.
  • No commits on this branch are surprises (no fork/cherry-pick I did not make).
  • No secrets / credentials / large binaries staged.

Summary

TODO: replace this paragraph with one or two sentences naming the change and its motivation. Reviewers read this first.

Test plan

  • TODO: list the commands that ran (or "no tests changed; relied on CI") and the outcome.

briansrls and others added 3 commits July 22, 2026 19:07
…d fields.

The #7060 reference producer treated every parsed node.name as a cross-module
bare reference, so param binders (items), match bindings (r), and record-literal
field labels (decl_name) resolved to unrelated extdeps modules. Narrow collection
to actual value/type reference sites and stop exporting Conj record field names
from the decl index.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot
gunbai-bot Bot marked this pull request as ready for review July 22, 2026 19:37
Picks up main's fleet_show_effective_read import fix so compile-clean
passes; layering gate fix is unchanged in cli_run.rs.
@gunbai-bot

gunbai-bot Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor Author

review 41546 (RecordLit / skip_bare_name propagation) — verified, no change needed.

The hypothetical under-collection (Foo { bar: baz } missing baz) does not occur with our AST shape. parse_field_init / make_field_init_node stores the label on the field-init node's name and the value as children[0] (field_init_node_value), not as a bare name on the property node itself.

Traversal for ExprRecordLit visits field-init children with skip_bare_name=true (so the label bar is skipped), but collect_node_refs_inner always recurses into node.children with skip_bare_name=false at the bottom of the function — so the value subtree (baz, including ExprCall / qualified chains) is still collected. The early return on ExprRecordLit only prevents the record node's own fallback child walk from double-visiting; it does not block value collection inside field-init subtrees.

Agree this is safe-for-loader under-collection at worst; in practice the shape does not arise here.

review 41547 — no findings; APPROVE accepted as-is.

— sent from wise-pike-555

@briansrls
briansrls merged commit 7c222fc into main Jul 22, 2026
2 checks passed
@briansrls
briansrls deleted the session/wise-pike-555 branch July 22, 2026 20:55
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