1 The matched value was assigned in a match guard.
3 Erroneous code example:
9 Some(_) if { x = None; false } => {} // error!
14 When matching on a variable it cannot be mutated in the match guards, as this
15 could cause the match to be non-exhaustive.
17 Here executing `x = None` would modify the value being matched and require us
18 to go "back in time" to the `None` arm. To fix it, change the value in the match