Result: done Files: crates/nikaia-std/std.contracts crates/nikaia-std/src/tools/check_core_call_on.nika crates/nikaia-std/src/tools/check_facts.nika crates/nikaia-std/src/tools/emit_core_calls.nika crates/nikaia-std/src/tools/ledger_items.nika crates/nikaia-std/src/tools/lowered/check_core_call_on.rs crates/nikaia-std/src/tools/lowered/check_facts.rs crates/nikaia-std/src/tools/lowered/emit_core_calls.rs crates/nikaia-std/src/tools/lowered/ledger_items.rs crates/nikaia/src/contracts/mod.rs tests/compiler/tests/drain_every_map_and_set.nika tests/compiler/tests/drain_every_map_and_set.stdout Commit: Add drain() on BTreeMap, HashSet and BTreeSet (ADR-386), repay the clone in ledger_items_stored Body: Contracts for the three; a kept B-tree drain lowers to mem::take(&mut x).into_iter() (new fact take_drains); a HashMap/set/B-tree field path of a local is now emptied in place, not moved (Vec excluded: node_numbers relies on partial moves). ledger_items_stored takes mut codes and drains; contracts/mod.rs passes &mut. Fixes: #1130 Pushed: local c9b5e563e546f6ba7ba1f0f18d96aad85b4808ff Tests: new test drain_every_map_and_set passes –both-settings (NK1171 on old binary); lib contracts:: 36 ok; it throws/ledger/contract 144 ok; clippy, pre-push green Gate: green Deviation: none Found: none Needs: none Changelog: drain() on BTreeMap, HashSet and BTreeSet (ADR-386) Owner: none Disk freed: none Rs2nika: none Attribution: Co-Authored-By: Claude Sonnet 5.5 noreply@anthropic.com Claude-Session: https://claude.ai/code/session_01GFeMqxRbtUMiGVyDMxsvEq

This site is open source. Improve this page.