agent: builder model: opus max_turns: 90 budget_usd: 18 effort: medium —

Brief: #1142 a field moved into let mut stays a view; #1143 a temporary handed to a parameter that is returned

Blocks: s2-bounds-report (the bounds_report move, #125)

Score: two defects, specified behaviour, rustc rejects the lowered code and its error reaches the user. Both found by the probes for s2 (supervisor, 2026-11-01).

Facts: Where things live, Traps already met, Commands

Problem

The probes are verbatim in #1142 and #1143 (run them with target/fast/nikaia run):

To build

  1. #1142: a field read bound to a mutating let mut is owned (moved at the owner’s last use, else what the existing rules say for a non-copy field; read the borrow/ownership ADRs the lowering cites and name the one you follow). Test tests/compiler/field_moved_into_mut.nika + .stdout (sort and push). Commit Fixes #1142.
  2. #1143: a temporary argument to a parameter that flows into the result lives long enough (owned, or bound by the lowering). Test tests/compiler/temp_arg_returned.nika + .stdout. Commit Fixes #1143. Run the tests your change touches (nikaia test on the new tests, the --test it filters of the files you change); lower-std and its fixpoint if a tools/*.nika changed.

Rules

Report (at most 15 lines, to exactly /home/user/Nikaia/docs/briefs/bugs/b35-1142-1143-owned-field-and-temp-arg.md.report.md)

Fields of docs/supervisor.md, Briefs and reports. Final answer, one line: done <sha>, report <path> (or BLOCKED: ...).

This site is open source. Improve this page.