| #### 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`. | |
| } | |
| ``` |