rust/tests/ui/force-inlining/cast.rs

26 lines
564 B
Rust

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