//@ 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, ]; }