-
Couldn't load subscription status.
- Fork 13.9k
Closed
Labels
A-codegenArea: Code generationArea: Code generation
Description
#[deriving(Show)]
enum State {
AtoZ(uint),
Numeric,
}
fn main() {
let state = Numeric;
let b = 97u8; // a
let r = match (state, b as char) {
(AtoZ(..), 'a'..'z') => {
"Named"
},
(Numeric, 'x') => {
"Hex"
},
_ => {
"Other"
}
};
println!("{} {}: {}", state, b as char, r);
}Outputs Numeric a: Hex. Clearly, a shouldn't match x.
Worth noting: if you change the first range to not include x, such as a..w, it works correctly. Also, removing the field from AtoZ also makes the match work correctly.
Metadata
Metadata
Assignees
Labels
A-codegenArea: Code generationArea: Code generation