1. What cost the most: the full tests/compiler --both-settings run, about 10+ minutes of waiting, for a one-line checker change. Next was the single build cycle. The search itself was short (about 5 turns), because the brief’s trace pointed at the right function.
  2. What I looked up: which fact holds for a list get. The brief left open a choice between map_read_views, lent_coalesces and a view type. I had to grep read_a_map = true to see it is set for maps only, and then find check_core_stmt_got in check_core_stmt.nika. The brief could have named check_core_stmt_got as the predicate behind row d’s split form. That form is exactly the shape to mirror.
  3. Checks:
    • Run: the probe of rows a–e on the old binary, then the same probe on the new one; the lower-std/build/lower-std cycle; tests/compiler --both-settings; cargo fmt --check; clippy; pre-push-check.sh.
    • Partly wasted: the first pre-push-check was chained behind a grep, so its output was lost and I ran it again. The where.nika lookup named no tests.
    • Caveat: the “fails unfixed” proof is my probe file run on the old binary, not the committed test file. The content is the same except for a two-line comment.
  4. One change: for a checker fix this small, the brief’s Done when could ask only for the new test plus the coalesce tests, run singly. It could leave the whole tests/compiler --both-settings run to the driver’s suite, which runs it anyway. Alternatively, builder.md could state plainly that a brief’s “passes through nikaia test --project tests/compiler” means the whole project run, so its cost is known up front.
This site is open source. Improve this page.