Result: done Files: crates/nikaia-std/src/tools/check_arm_leaves.nika crates/nikaia-std/src/tools/lowered/check_arm_leaves.rs tests/compiler/tests/an_owned_local_lent_through_arms.nika tests/compiler/tests/an_owned_local_lent_through_arms.stdout Commit: check: an owned local in an arm of a lent argument is lent, not moved (#897 step 2) Body: lent_arms_view_and_new counts a named arm that is neither a view nor a lent name as an owned local and lends it (lent_reads, &t): beside a value made there it goes into Arm::View(&t) (text: either(&s)); with only views and owned locals and no text, the arms are lent as they are (&if c { &t } else { &u }); text without a made arm still goes through EitherText, since &String and &str are two types. Step 1 is 68f83b0a. Fixes: #897 Pushed: f76c4d862239f16514cfbe8ada38efb49e71ed50 Tests: an_owned_local_lent_through_arms (failed on the unfixed compiler: borrow of moved value t, u); a_text_plus_of_a_lent_field passes; nikaia test –both-settings tests/compiler 188 ok; it handed_over text_tiers typecheck + guard set 214 ok; clippy clean; nikaia-std unit tests not run (no Rust source changed, only lowered files) Gate: green Deviation: none Found: none Needs: none Changelog: An owned local named in an arm of an argument to a lent parameter is lent through the call and stays usable after it. Owner: none Disk freed: 0 Rs2nika: none

This site is open source. Improve this page.