Skip to content

Rows 2+3 packets: Optional carrier fork + NonEmptyStr renderer residue root-cause (materialization_carriers, no hot-emitter edits) - #8548

Closed
gunbai-bot[bot] wants to merge 1 commit into
mainfrom
session/deep-bat-35-rows-2-3-packets
Closed

gunbai-bot[bot] wants to merge 1 commit into
mainfrom
session/deep-bat-35-rows-2-3-packets

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Summary

Root-cause-only doc (no repair) for materialization_carriers.dag error-board Rows 2 and 3.
Measured against origin/main a2b33f577a48b13e305440bae41d90406e8b4b7d, re-checked for drift
against current origin/main 073bbd4e08a40a01082c61896a2f2806d683c6c2 (no touch to the relevant
files in between). PR #8528 confirmed OPEN/unmerged at measurement time, so Row 3 carries all 5
of its original sites.

  • Row 2 ("Optional carrier fork", 6 E0308 sites) splits into three sub-mechanisms, not one:
    • 2a (std_cache_interface.rs:638) and 2c (extdeps_uri.rs:752,756): a bare zero-field-variant
      identifier (None/Absent) resolves to the wrong parent enum because an unrelated domain
      coproduct in the same closure happens to declare a variant with the same name.
      contextual_variant_parent_absent (src/v1/05_emit_rust.dag) is confirmed correct given its
      inputs; the wrong resolved_type is fed to it from upstream in 04_infer.dag.
    • 2b (std_cache_interface.rs:695,699,703): three functions declare a non-optional return type
      with a body ending in cardinality-optional List.first(); gunbc compile reports 0 blocking
      errors, only rustc catches it — an apparent .dag-level typecheck gap.
  • Row 3 residual (3 E0425 NonEmptyStr sites): traced via a decisive differential — the
    same closed brand alias (CacheInterfaceId) renders correctly when a function's body is an
    ordinary expression, but loses its alias identity to the base type (NonEmptyStr) when the
    body is a bare point-free reference to another function. render_rust_fn_sig_type's
    leaf-preservation guard (rust_fn_sig_preserves_authored_alias_leaf) is confirmed correct and
    simply never reached for these three sites — the loss happens in 04_infer.dag's unification of
    a declared return annotation against a point-free body.

Scope boundary — no hot-emitter edits

src/v1/05_emit_rust.dag and src/v1/04_infer.dag were read-only for this investigation and are
untouched by this branch, per explicit session scope: both files are under heavy concurrent
contention from other in-flight sessions (PR #8528, the T7/row-1a/1b lanes). This PR is
documentation only — one new file under docs/probes/.

Test plan

  • Doc-only change; no build/test surface touched.
  • All site counts and line numbers re-measured against current origin/main via
    docs/probes/curated_cargo_probe_one.sh, not transcribed from prior docs.
  • gh pr view 8528 --json state,mergedAt checked directly (OPEN, mergedAt: null).

🤖 Generated with Claude Code

…erer residue

Row 2 "Optional carrier fork" splits into three sub-mechanisms (2a/2b/2c),
verified by execution against origin/main a2b33f5: 2a/2c are bare
zero-field-variant identifier collisions resolved wrong upstream in
04_infer.dag (contextual_variant_parent_absent in 05_emit_rust.dag is
correct given its inputs); 2b is an apparent .dag-level typecheck gap on
List.first()'s cardinality vs a declared non-optional return type.

Row 3's 3 residual E0425 NonEmptyStr sites (PR #8528 confirmed OPEN/unmerged,
so all 5 original sites remain) trace to 04_infer.dag losing a caller's
authored closed-alias return-type identity when the body is a bare
point-free reference to another function -- the same alias renders correctly
when the body is an ordinary expression (decisive differential:
parse_table_memo_id renders CacheInterfaceId; its point-free caller
parse_table_memo_provider_id does not). render_rust_fn_sig_type's
leaf-preservation guard is confirmed correct and simply not reached.

No hot-emitter edits: src/v1/05_emit_rust.dag and src/v1/04_infer.dag were
read-only for this investigation, per explicit session scope (heavy
concurrent contention from PR #8528 and the T7/row-1a/1b lanes).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@briansrls briansrls closed this Aug 19, 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.

1 participant