pub static ILLEGAL_FLOATING_POINT_LITERAL_PATTERN: &Lint
Expand description
The illegal_floating_point_literal_pattern
lint detects
floating-point literals used in patterns.
Example
let x = 42.0;
match x {
5.0 => {}
_ => {}
}
{{produces}}
Explanation
Previous versions of the compiler accepted floating-point literals in patterns, but it was later determined this was a mistake. The semantics of comparing floating-point values may not be clear in a pattern when contrasted with “structural equality”. Typically you can work around this by using a match guard, such as:
match x {
y if y == 5.0 => {}
_ => {}
}
This is a future-incompatible lint to transition this to a hard error in the future. See issue #41620 for more details.