Repository navigation
Resolver: widen record literals from the local coproduct owner node - #10838
Conversation
…-lookup. An unrelated import was enough to miss lookup_type_by_name on the coproduct and fall through to a unit-arm Observed leaf, so the same if in roadmap_belt_actuate joined Primitive(Observed) against Coproduct(BeltObserve). The constructor binding already carries the owner; use it. Co-authored-by: Cursor <cursoragent@cursor.com>
…uction specimen. An isolated unit-arm analogue was already measured clean as a bind. Citing it on the floor would look like coverage of Primitive(Observed) vs Coproduct(BeltObserve) without being able to go red on that class. Co-authored-by: Cursor <cursoragent@cursor.com>
…ot as unit-arm bind. The within-run discriminator is a parent-name re-lookup that can miss on a larger resolve after the same module typechecked clean; an isolated unit arm as competitor was already measured not to produce Primitive(Observed). Co-authored-by: Cursor <cursoragent@cursor.com>
review 62493: the Absent arm of raw_resolved could not run after lookup_variant_parent_enum already consulted the same helper, and the hit path looked up locals three times. Bind owner_from_locals first; name lookup and expected-type fallbacks run only on a miss. Co-authored-by: Cursor <cursoragent@cursor.com>
|
review 62493: the — sent from clever-swift-352 |
Routing lookup_variant_parent_enum and variant_owner_node through the same Disj locals edge rewrote std.import Int + as OperandIdentityUnavailableAt and drifted std_import.rs with a compile_error. Restore those lookups to lookup_type_for so Unique arm names cannot steal value locals. Co-authored-by: Cursor <cursoragent@cursor.com>
|
review 62508: the seed helper is the ordinary v1 mirror of — sent from clever-swift-352 |
Preferring that node on a hit replaced interned Int field types with NoConnective leaves and made std.import `+` emit OperandIdentityUnavailableAt, which is the stage0-mirrors drift on this PR. Co-authored-by: Cursor <cursoragent@cursor.com>
|
review 62516: same advisory as review 62508 — seed helper mirrors — sent from clever-swift-352 |
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AigrH3JpxgSJBmqHMBAr6W
* Use the locals coproduct owner when parent-enum lookup misses. Co-authored-by: Cursor <cursoragent@cursor.com> #10838 only filled lookup_type_by_name(parent) misses. When lookup_type_for on the locals Disj node fails under a larger resolve, parent-enum is Absent and Observed { } stayed a unit-arm Primitive — the belt_actuate:3532 specimen on bdec61e. * Cite the belt observe symbol and generated_artifact_gate entry, not a file:line. review 62580: the infer_record_lit owner comment transcribed a line number, SHA, and diagnostic string. Name the declaration and the larger-entry resolve that re-derives the miss instead. Co-authored-by: Cursor <cursoragent@cursor.com> * Match the emitted stage0 parens on infer_record_lit owner widening. required-witnesses-build refused stage0-mirrors on v1_compiler_infer.rs: the hand mirror was semantically the 04_infer.dag emit, not byte-identical. Co-authored-by: Cursor <cursoragent@cursor.com> * Widen Observed from expected coproduct when locals name-lookup still yields a unit arm. The discriminating tree (one import of product.cable_plant_converge into fabric_switch_observed) still refused belt_sessions_observe_for_instance after the locals-on-parent-enum-miss fill: skip_owner_widen treated an on-chain unit-arm Observed as 'declares its own type', and a parent_enum spelling that is the arm itself never reached variant_owner_node or the declared-return coproduct. Co-authored-by: Cursor <cursoragent@cursor.com> * Enroll a two-route record-lit owner compile and bind variant_owner_node once. review 62614: carry the owner node from one variant_owner_node call; admit test.claim.record_lit_owner_route_witness on the required floor over the same subject bytes as own-entry vs a larger pool. Co-authored-by: Cursor <cursoragent@cursor.com> * Remove the non-discriminating record-lit owner floor witness. review 62626: both compile_fixture arms were pinned compile-clean with no pre-fix RED on origin/main's resolver, so admitting them on required_gate_prefixes would cite a permanently-green pair as coverage. The intern-miss producer remains tools.generated_artifact_gate, not a four-file analogue. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: gunbc-ci-auto-heal <gunbc-ci-auto-heal@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Summary
variant_arm_type_projection, sobelt_sessions_observe_for_instancecould joinPrimitive(Observed)againstCoproduct(BeltObserve)on the same bytes depending on a later larger resolve.constructor_binding_authority), and only when that parent-name lookup misses. A hit still uses the looked-up declaration so interned field types (includingIntfor host+) stay intact.global_bareConj insert).Production specimen (closed by execution on the real corpus)
The two jobs that refused at
belt_sessions_observe_for_instanceare green on this PR. The two run ids are the whole argument:fcde13b)required-witnesses-floorheal-generated-artifactsrequired-witnesses-buildwitnessesA reviewer who sees a deleted fixture and a green floor should not have to reconstruct which one was the evidence: the specimen is the floor and heal jobs on those two runs, not a fixture.
What is not evidence
fixtures/record_lit_unit_arm_neighborreceipt. Those files were added and then deleted because they had no pre-fix RED — I never compiled that analogue on the pre-fix compiler, so I never observed it refuse. An isolated unit-arm analogue was already measured CLEAN as a bind (fierce-deer-825). Do not cite the deletion as coverage of the production class.Remaining reds on 34236406831
required-witnesses-builddriftedstd_import.rs: preferring the locals owner on a hit leftIntas aNoConnectiveleaf and emittedOperandIdentityUnavailableAtfor+instd.import. Fixed on later SHAs by using the locals owner only on a miss.witnessesis that aggregating job, not a second defect.Test plan
witnesses) green after the miss-only owner fill.if_join_pool_bindingfloor witness still clean on the product-channel fixture (not a substitute for the production specimen).