Skip to content

hy-emit(recv): propagate channel element type provenance through receives (#4458) - #4466

Open
SuperPiIot wants to merge 1 commit into
limitlessprojects:mainfrom
SuperPiIot:fix/emit-recv-provenance-4458
Open

SuperPiIot wants to merge 1 commit into
limitlessprojects:mainfrom
SuperPiIot:fix/emit-recv-provenance-4458

Conversation

@SuperPiIot

Copy link
Copy Markdown

Fixes #4458

Summary

  • Track channel element type provenance (chan_elem, fn_ret_chan_elem, and helpers chan_elem_of_type, register_var_from_ty, peel_ptr_base_ty_name, recv_elem_of_expr, chan_elem_of_expr, expr_foreign_binding) in hy-emit across channel receives (<-ch), comma-ok receives (got, ok := <-ch and if got, ok := <-ch; ok), select receive arms, for v in ch, and direct (<-ch).member selectors.
  • Preserve Go member/method casing and binding kind propagation for received foreign package values, user structs, pointers, type aliases, and nested channels instead of emitting stale snake_case names.
  • Add integration tests in compiler/crates/hy-emit/tests/recv_provenance_4458.rs (including live go run execution).

Verification

  • cargo test -p hy-emit --test recv_provenance_4458: 5 passed, 0 failed
  • cargo test -p hy-diag -p hy-syntax -p hy-check -p hy-emit: 3218 passed, 0 failed
  • python3 tools/corpus_harness.py --bin target/debug/hyb: 139/139 verdict agreement
  • python3 tools/differential_loop.py --bin target/debug/hyb: accept-side (build+run) 47/47, reject-side (checker) 92/92 (FULL AGREEMENT)
  • python3 tools/check_corpus_census.py, python3 tools/check_guarantees.py, python3 tools/check_conflict_markers.py: OK

Settlement Coords

  • Network: Base Mainnet (Chain ID 8453)
  • Asset: USDC
  • Address: 0xf084cF0076F91AA48C2370F427C399dAA8C1f07F

@github-actions github-actions Bot added the bot:land-candidate Shepherd: fresh, gate-clean, verifiable (set from classify()) label Nov 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bot:land-candidate Shepherd: fresh, gate-clean, verifiable (set from classify())

Projects

None yet

1 participant