-
-
Notifications
You must be signed in to change notification settings - Fork 14.2k
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