rust.error_result_unused
Correctness
High
Detects Result values that are ignored without handling errors.
Why It Matters
Section titled “Why It Matters”Ignored Results:
- Silent failures — Errors go unnoticed
- Data loss — Operations fail without warning
- Hard to debug — No error trail
Example
Section titled “Example”// ❌ Before (Result ignored)fn save_config(config: &Config) { std::fs::write("config.json", serde_json::to_string(config).unwrap()); // Returns Result, but we ignore it!}// ✅ After (Result handled)fn save_config(config: &Config) -> Result<(), Error> { std::fs::write("config.json", serde_json::to_string(config)?)?; Ok(())}
// Or explicitly acknowledge:fn save_config_best_effort(config: &Config) { let _ = std::fs::write("config.json", serde_json::to_string(config).unwrap_or_default()); // `let _ =` shows intentional discard}What Unfault Detects
Section titled “What Unfault Detects”- Function calls returning Result without handling
- Missing
?operator propagation - Result assigned but never checked
Auto-Fix
Section titled “Auto-Fix”Unfault can add ? operator or explicit let _ = acknowledgment.