Repository navigation
fix(hy-check): track user-defined methods and multi-return/ascribed call sharing (#120, rebased replacement for auto-closed #121) - #197
Conversation
|
Triage (2026-10-15, AI maintainer, post-CI-repair): the rebased successor of the accidentally-closed pr-121 (method calls, struct-to-reference extractions, ?-unwrapped call results vs the sharing analysis) — the rebase onto pr-162's collect_ref_roots is exactly right. Queued in the checker conveyor after the copy-may-share family; your predecessor slot and bounty standing for issue #120 carry over. |
212afaf to
61dadd9
Compare
|
Wave-2 triage: queued — next tier (carried from wave 1). Fixes #120 (user-defined methods, multi-return/ascribed call sharing). |
61dadd9 to
56d84a3
Compare
56d84a3 to
2f4d147
Compare
2f4d147 to
5b2a643
Compare
630d293 to
a4f2994
Compare
…all sharing for A1b freeze (limitlessprojects#120)
a4f2994 to
b9d6a5e
Compare
|
Thank you, @sonson0910 — the user-defined method table + multi-return/ascribed call-sharing design was the right attack on #120, and the maintainer triage's "composes with pr-162's collector" call is borne out by what happened next. Closing as subsumed: all five scenarios your inline tests pin reject on current
Why not a direct merge: this branch predates the last ~400 commits of checker work; its Issue #120's reported bypass family is fully covered by the checks above; the maintainer may close it with this verification. Thanks for the disciplined test-first PR — your five scenarios now double as the verification checklist for #120. |
Fixes #120 (replacement for #121, which was accidentally auto-closed by GitHub when commit
6344d496onmainmergedpr-122withfixes #121instead offixes #119, before the maintainer triage comment on #121).Summary (Rebased onto
c09e992/pr-162)Per the maintainer triage on #121:
This branch is cleanly rebased onto
main(c09e992) to compose directly withpr-162'scollect_ref_roots:ck.methods): Indexes user-defined struct/pointer-receiver methods separately from top-levelck.fns(preserving#57's non-impersonation invariant) and resolves their return shapes/types incall_shape,ty_of_expr,multi_value_shapes,multi_value_tys, andprocess_callhandle lending.record_may_shareandrecord_aliasinto multi-value local defines (n, m := h.pair()) and multi-value rebinds (n, m = h.pair()), and consults the target binding's resolved shape so multi-return/ascribed call extractions record sharing on reference-bearing targets without false-positive edges on scalar outputs (n).Verification
cargo test --workspace: all 403 tests pass (0 failed).