What problem does it solve? Rust borrow and drop points often depend on expression form rather than types, so a manual desugaring, a helper call, a macro, or an edition 2024 migration can silently move drop points or break compilation with errors like E0716 and E0502. This Skill provides a systematic method to identify place versus value expressions, temporary scopes, lifetime extension, and two-phase borrows before proposing a fix. ## Core Features & Use Cases - Triage Tables: Maps symptoms like UFCS rewrites failing with E0502, E0716 after adding a helper call, or lock guards releasing earlier on edition 2024 to their likely causes and first actions. - Edition 2024 Migration Review: Covers the if_let_rescope and tail_expr_drop_order lints, narrowed temporary scopes, and how to interpret cargo fix --edition output without turning migration into a lock-lifetime refactor. - Verification Probes: Defines a probe workflow using rustc with the workspace edition and MSRV toolchains, compile_fail tests with named error codes, and runtime assertions like try_lock().is_ok() to prove drop points. - Use Case: After moving a crate to edition 2024, an if let block that held a Mutex guard now releases it early and a race appears; use this Skill to bind the guard to a named local in an explicit block so the drop point is identical on every edition. ## Quick Start Ask the agent to explain why a specific Rust expression fails with E0716 or changes lock behavior after an edition 2024 migration, and have it verify the fix with a minimal probe.