1 // Matching against float literals should result in a linter error
3 #![feature(exclusive_range_pattern)]
5 #![forbid(illegal_floating_point_literal_pattern)]
10 5.0 => {}, //~ ERROR floating-point types cannot be used in patterns
11 //~| WARNING hard error
12 5.0f32 => {}, //~ ERROR floating-point types cannot be used in patterns
13 //~| WARNING hard error
14 -5.0 => {}, //~ ERROR floating-point types cannot be used in patterns
15 //~| WARNING hard error
16 1.0 .. 33.0 => {}, //~ ERROR floating-point types cannot be used in patterns
17 //~| WARNING hard error
18 //~| ERROR floating-point types cannot be used in patterns
19 //~| WARNING hard error
20 39.0 ..= 70.0 => {}, //~ ERROR floating-point types cannot be used in patterns
21 //~| WARNING hard error
22 //~| ERROR floating-point types cannot be used in patterns
23 //~| WARNING hard error
29 (3.14, 1) => {}, //~ ERROR floating-point types cannot be used
30 //~| WARNING hard error
34 struct Foo { x: f32 };
36 Foo { x: 2.0 } => {}, //~ ERROR floating-point types cannot be used
37 //~| WARNING hard error