UNPKG

pi-lens

Version:

Real-time code feedback for pi — LSP, linters, formatters, type-checking, structural analysis & booboo

52 lines (42 loc) • 1.09 kB
# Rust Clone in Loop # Detects unnecessary clone() calls in hot loops id: rust-clone-in-loop name: Clone in Hot Loop severity: info category: performance defect_class: safety inline_tier: warning language: rust message: "clone() in loop may hurt performance — consider borrowing or moving" description: | Cloning values in a loop can be expensive, especially for large types. Consider using references (&T) instead of owned values. ✅ FIX: Use &T instead of cloning, or restructure to move values. query: | (for_expression body: (block (call_expression function: (field_expression field: (field_identifier) @METHOD) (#eq? @METHOD "clone")) @CALL)) metavars: - METHOD - CALL has_fix: false tags: - rust - performance - memory examples: bad: | for item in &items { process(item.clone()); // Unnecessary clone } good: | for item in &items { process(item); // Borrow instead } // Or if process needs ownership: for item in items { // Move items process(item); }