// run-pass
use std::mem;

const FOO: fn(u8) -> u8 = |v: u8| { v };

const BAR: [fn(&mut u32); 5] = [
    |_: &mut u32| {},
    |v: &mut u32| *v += 1,
    |v: &mut u32| *v += 2,
    |v: &mut u32| *v += 3,
    |v: &mut u32| *v += 4,
];
fn func_specific() -> fn() -> u32 {
    || return 42
}

fn generic<T>(_: T) -> fn() -> usize {
    || mem::size_of::<T>()
}

fn main() {
    // Items
    assert_eq!(func_specific()(), 42);
    let foo: fn(u8) -> u8 = |v: u8| { v };
    assert_eq!(foo(31), 31);
    // Constants
    assert_eq!(FOO(31), 31);
    let mut a: u32 = 0;
    assert_eq!({ BAR[0](&mut a); a }, 0);
    assert_eq!({ BAR[1](&mut a); a }, 1);
    assert_eq!({ BAR[2](&mut a); a }, 3);
    assert_eq!({ BAR[3](&mut a); a }, 6);
    assert_eq!({ BAR[4](&mut a); a }, 10);
    assert_eq!(generic(0i8)(), 1);
}
