Open and answer this issue on GitHub.
ready · opened 2026-11-02 · updated 2026-11-02 · 1 comment
R3c-d (b271a190) committed lowered/type_rules.rs as lowered by a target/fast/nikaia built in the shared checkout. That compiler held other agents’ uncommitted emit_* / check_* work. A clean compiler lowers tr_rewrite_item’s Item::Impl arm as methods, but the committed file had ref mut methods. So develop went red in sysroot::the_committed_rust_is_what_this_compiler_lowers and two fixpoint tests (run 41379450467). The fix forward is 7ae5b1f1, regenerated in a clean worktree.
Every builder that runs lower-std in the shared tree can bring back such drift, including a revert of 7ae5b1f1.
To build:
scripts/commit.nika (or the gate) refuses a commit of a lowered/*.rs when git status shows uncommitted changes under crates/nikaia/src or crates/nikaia-std/src/tools that are not in the report’s Files:. It names the files, so the builder lowers in a clean worktree instead..nika in its own clean worktree (nikaia-ci) before the suite and commits the drift as its own commit.Found during the night run on 2026-11-02.
Correction: the drift went the other way. The committed ref mut methods was right. The emitter half of #1139 (emit_match_bound writing ref mut for in_place_bindings) had been left uncommitted in the shared tree since 4f716b62. R3c-d lowered with it, and CI’s clean compiler lacked it. 7ae5b1f1 is reverted (9fc0591e), and b2dbb692 commits the missing emitter half. The proposed guard still holds: a lowered file committed from a tree whose emitter differs from HEAD is the risk in both directions.
Generated by Claude Code