suspicious-operator-implementation Disallow direct operator implementations built on a different operator Directly combining an operator receiver and operand with a different operator commonly indicates a copied or mistyped body. Instead, you SHOULD use the operator implemented by the enclosing protocol. - Category: suspicious - Level: warning - Fix: none - Scope: module Reported struct Score { value: int32; } extension of Score implements Add { type Output = Score; add(&readonly this, other: Score): Score { return Score { value: this.value - other.value }; } } Accepted struct Score { value: int32; } extension of Score implements Add { type Output = Score; add(&readonly this, other: Score): Score { return Score { value: this.value + other.value }; } } Prior art - Clippy · suspiciousarithmeticimpl - Clippy · suspiciousopassignimpl language/linter/src/rules/suspicious/suspiciousoperatorimplementation.rs:7