// Tests that unsafe extern fn pointers do not implement any Fn traits.

use std::ops::{Fn, FnMut, FnOnce};

unsafe fn square(x: &isize) -> isize {
    (*x) * (*x)
}

fn call_it<F: Fn(&isize) -> isize>(_: &F, _: isize) -> isize {
    0
}
fn call_it_mut<F: FnMut(&isize) -> isize>(_: &mut F, _: isize) -> isize {
    0
}
fn call_it_once<F: FnOnce(&isize) -> isize>(_: F, _: isize) -> isize {
    0
}

fn a() {
    let x = call_it(&square, 22);
    //~^ ERROR E0277
}

fn b() {
    let y = call_it_mut(&mut square, 22);
    //~^ ERROR E0277
}

fn c() {
    let z = call_it_once(square, 22);
    //~^ ERROR E0277
}

fn main() {}
