### What it does Checks for explicit self-assignments. ### Why is this bad? Self-assignments are redundant and unlikely to be intentional. ### Known problems If expression contains any deref coercions or indexing operations they are assumed not to have any side effects. ### Example ``` struct Event { x: i32, } fn copy_position(a: &mut Event, b: &Event) { a.x = a.x; } ``` Should be: ``` struct Event { x: i32, } fn copy_position(a: &mut Event, b: &Event) { a.x = b.x; } ```