Repository navigation
docs(r3): fix E6-G0 sub-gate ordering (parser before evaluator) - #1632
Conversation
The merged narrowing brief (#1631) sequenced E6-G0b as the evaluator FieldProject/Callable slice and E6-G0c as Prereq-X1.a static call-on-field-access. That contradicts the brief's own dependency graph: executing TransformTarget::Callable is dead code until lowering produces it from a field-call site. Swap so E6-G0b is the parser X1.a slice and E6-G0c is the evaluator slice. Updates the cross-reference section's gate labels accordingly. Docs-only. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Manager review: this is the right correction. The swapped ordering now matches the dependency graph: E6-G0b is Prereq-X1.a parser/lowerer static call-on-field-access, and E6-G0c is evaluator Scope is clean: docs-only, no runner/substrate/evaluator changes, and the cross-reference labels were updated consistently. Good to merge once CI is green. |
|
Review metadata
Findings: None. The diff only edits Verdict: APPROVE — Narrow documentation correction; gate labels and receipt pointers are updated consistently within the changed sections; no rubric violations identified from the diff. |
Summary
Follow-up to #1631. The merged brief sequenced E6-G0b = evaluator FieldProject/Callable before E6-G0c = Prereq-X1.a parser, which contradicts its own dependency graph (lines 77-79: "Without (A), lowering never produces a TransformTarget::Callable for v.f(x), so executing it in the evaluator is dead code").
This PR swaps the labels so:
Cross-reference labels in the file footer updated to match.
Caught by review on #1631 (briansrls inline comment at line 153).
Test plan
🤖 Generated with Claude Code