| #### Note: this error code is no longer emitted by the compiler. |
| |
| Assignments are not allowed in pattern guards, because matching cannot have |
| side effects. Side effects could alter the matched object or the environment |
| on which the match depends in such a way, that the match would not be |
| exhaustive. For instance, the following would not match any arm if assignments |
| were allowed: |
| |
| ```compile_fail,E0594 |
| match Some(()) { |
| None => { }, |
| option if { option = None; false } => { }, |
| Some(_) => { } // When the previous match failed, the option became `None`. |
| } |
| ``` |