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 //~| ERROR floating-point types cannot be used in patterns
13 //~| WARNING this was previously accepted by the compiler but is being
14 5.0f32 => {}, //~ ERROR floating-point types cannot be used in patterns
15 //~| WARNING hard error
16 -5.0 => {}, //~ ERROR floating-point types cannot be used in patterns
17 //~| WARNING hard error
18 1.0 .. 33.0 => {}, //~ ERROR floating-point types cannot be used in patterns
19 //~| WARNING hard error
20 //~| ERROR floating-point types cannot be used in patterns
21 //~| WARNING hard error
22 39.0 ..= 70.0 => {}, //~ ERROR floating-point types cannot be used in patterns
23 //~| WARNING hard error
24 //~| ERROR floating-point types cannot be used in patterns
25 //~| WARNING hard error
31 (3.14, 1) => {}, //~ ERROR floating-point types cannot be used
32 //~| WARNING hard error
36 struct Foo { x: f32 };
38 Foo { x: 2.0 } => {}, //~ ERROR floating-point types cannot be used
39 //~| WARNING hard error