| //@ check-fail | |
| //@ compile-flags: --crate-type=lib | |
| #![allow(internal_features)] | |
| #![feature(rustc_attrs)] | |
| #[rustc_force_inline] | |
| pub fn callee(x: isize) -> usize { unimplemented!() } | |
| fn a() { | |
| let _: fn(isize) -> usize = callee; | |
| //~^ ERROR cannot coerce functions which must be inlined to function pointers | |
| } | |
| fn b() { | |
| let _ = callee as fn(isize) -> usize; | |
| //~^ ERROR non-primitive cast | |
| } | |
| fn c() { | |
| let _: [fn(isize) -> usize; 2] = [ | |
| callee, | |
| //~^ ERROR cannot coerce functions which must be inlined to function pointers | |
| callee, | |
| ]; | |
| } |