2018-07-15 06:55:17 -05:00
|
|
|
fn main() {
|
|
|
|
// Make sure match uses the usual pointer comparison code path -- i.e., it should complain
|
|
|
|
// that pointer comparison is disallowed, not that parts of a pointer are accessed as raw
|
|
|
|
// bytes.
|
2018-08-26 08:19:34 -05:00
|
|
|
let _: [u8; 0] = [4; {
|
2019-04-10 18:40:12 -05:00
|
|
|
match &1 as *const i32 as usize {
|
|
|
|
//~^ ERROR casting pointers to integers in constants
|
2019-04-11 13:42:06 -05:00
|
|
|
//~| NOTE for more information, see
|
2019-05-09 17:01:39 -05:00
|
|
|
//~| ERROR constant contains unimplemented expression type
|
2018-07-15 06:55:17 -05:00
|
|
|
0 => 42, //~ ERROR constant contains unimplemented expression type
|
|
|
|
//~^ NOTE "pointer arithmetic or comparison" needs an rfc before being allowed
|
2018-08-26 08:19:34 -05:00
|
|
|
//~| ERROR evaluation of constant value failed
|
2018-07-15 06:55:17 -05:00
|
|
|
n => n,
|
|
|
|
}
|
|
|
|
}];
|
|
|
|
}
|