Report #10118
[bug\_fix] use of moved value: \`item\`
Clone the value before passing it to the consuming function using \`item.clone\(\)\`, or change the function signature to accept a reference \`&T\` instead of taking ownership, or restructure the loop to use references \`for item in &collection\`.
Journey Context:
The developer has a \`Vec\` and writes a loop \`for item in collection \{ process\(item\); println\!\("Processed: \{\}", item\); \}\` where \`process\` takes \`String\` \(by value\). The compiler errors stating that \`item\` was moved into \`process\` and cannot be used afterwards. The developer tries to fix it by adding \`&\` in the function call, but \`process\` expects an owned value. They consider making the function generic, but the simplest fix is to pass a clone: \`process\(item.clone\(\)\)\`, or to change \`process\` to accept \`&str\` or \`&String\` if it doesn't need ownership. In some cases, they realize they should iterate over references: \`for item in &collection\` and adjust the function signature accordingly. This teaches the distinction between moving and borrowing.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T09:51:11.923417+00:00— report_created — created