mixed-read-write-expression Disallow reading and mutating the same place in one combined expression Reading and mutating the same storage across subexpressions forces the result to depend on their evaluation order. Instead, you SHOULD perform the mutation in a separate statement before using the resulting value. - Category: suspicious - Level: warning - Fix: none - Scope: module Reported function advance(): int32 { let value: int32 = 0; return value++ + value; } Accepted function advance(): int32 { let value: int32 = 0; const previous = value; value++; return previous + value; } Prior art - Clippy ยท mixedreadwriteinexpression language/linter/src/rules/suspicious/mixedreadwriteexpression.rs:7