Skip to content

Skip module-surface members in reference-derived residency reading - #13566

Closed
gunbai-bot[bot] wants to merge 4 commits into
mainfrom
session/sunny-stag-900
Closed

gunbai-bot[bot] wants to merge 4 commits into
mainfrom
session/sunny-stag-900

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

Summary

  • v2.lens.reference_derived_residency_reading no longer treats a module/namespace Authored member as a record field that failed to be a binder.
  • Module surface is decided in v2.extdeps.languages.dag by declaration identity, graft-body stamp, or dag_surface_module_header production edge — not by children shape.
  • Discriminating claims: a module container is readable; a hand-built record field still reports CarrierMemberNotABinder. This lens is not enrolled on required_compile_lens_roster.

Test plan

  • Floor / generated lane on this PR
  • v2.test.claim.reference_derived_residency_reading a_module_container_is_not_read_as_a_non_binder_record and a_hand_built_record_field_still_reports_member_not_a_binder
  • v2.test.claim.edge_label.structural_label_readers stamp vs children-shape claims

Made with Cursor

A module or namespace is not a record payload: judge binders only on stamped
module surfaces (declaration identity, graft-body stamp, or header production
edge), and keep CarrierMemberNotABinder for a genuine hand-built field.

Co-authored-by: Cursor <cursoragent@cursor.com>
Brian Searls and others added 2 commits October 8, 2026 04:48
#13560 owns the languages.dag predicates until that skip is constructional
on a landed head. Skip stamped module/fn members; a header edge on a Conj
must not swallow a hand-built field.

Co-authored-by: Cursor <cursoragent@cursor.com>
The residency lens was carrying a four-identity copy and omitting data/type/alias
declarations; the skip is now one parse-identity predicate, still not a Conj-wide
container skip.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor Author

Addressed review 77869 (#13566, dashboard artifact /api/reviews/77869/artifacts/stdout.log):

  • The four-identity helper is gone. Parse-identity membership lives in v2.extdeps.languages.dag as dag_surface_identity_is_module_member / dag_node_is_module_member_surface (next to parse_production_emitted_identity_optional). The residency lens consumes that. This is not #13560's dag_node_is_record_field_carrier / dag_node_is_namespace_member_target pair: those stay on that PR until they are constructional; this predicate is identity-only and does not skip a whole Conj.
  • Coverage now includes data, type, alias, test_fn, service, resource, and import declarations. module_container_with_surface_members stamps fn/module/test/data/type/alias. A data-decl sibling plus a hand-built field still REDs CarrierMemberNotABinder on the field (a_data_decl_member_does_not_skip_a_hand_built_sibling).

— sent from sunny-stag-900

One production list now feeds the module-item choice, the residency skip, and
iard_is_declaration. Module surface and the graft-body stamp stay the only extras.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor Author

Addressed review 77878 (dashboard artifact /api/reviews/77878/artifacts/stdout.log):

Top-level declaration identities are no longer a hand-copied || list. dag_grammar_top_level_item_productions is the one row list: the module grammar's item choice is derived from those production names, dag_surface_identity_is_top_level_item reads their emitted atoms, and iard_is_declaration consumes that accessor. The only explicit extras on dag_surface_identity_is_module_member remain dag_surface_module and namespace_graft_module_body.

— sent from sunny-stag-900

@gunbai-bot

gunbai-bot Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by #13641 at 634453d: this PR's head is an ancestor of integration/v1-closeout. The source branch is kept for archaeology; this PR is no longer an independent merge authority. — sent from neat-wolf-604

@gunbai-bot gunbai-bot Bot closed this Oct 9, 2026
@gunbai-bot gunbai-bot Bot mentioned this pull request Oct 10, 2026
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.

0 participants