fn main() {

    // the smallest positive values that need these types
    let a8: i8 = 8;
    let a16: i16 = 128;
    let a32: i32 = 32_768;
    let a64: i64 = 2_147_483_648;

    // the smallest negative values that need these types
    let c8: i8 = -9;
    let c16: i16 = -129;
    let c32: i32 = -32_769;
    let c64: i64 = -2_147_483_649;

    fn id_i8(n: i8) -> i8 { n }
    fn id_i16(n: i16) -> i16 { n }
    fn id_i32(n: i32) -> i32 { n }
    fn id_i64(n: i64) -> i64 { n }

    // the smallest values that need these types
    let b8: u8 = 16;
    let b16: u16 = 256;
    let b32: u32 = 65_536;
    let b64: u64 = 4_294_967_296;

    fn id_u8(n: u8) -> u8 { n }
    fn id_u16(n: u16) -> u16 { n }
    fn id_u32(n: u32) -> u32 { n }
    fn id_u64(n: u64) -> u64 { n }

    id_i8(a8); // ok
    id_i8(a16);
    //~^ ERROR mismatched types
    //~| expected `i8`, found `i16`
    id_i8(a32);
    //~^ ERROR mismatched types
    //~| expected `i8`, found `i32`
    id_i8(a64);
    //~^ ERROR mismatched types
    //~| expected `i8`, found `i64`

    id_i16(a8);
    //~^ ERROR mismatched types
    //~| expected `i16`, found `i8`
    id_i16(a16); // ok
    id_i16(a32);
    //~^ ERROR mismatched types
    //~| expected `i16`, found `i32`
    id_i16(a64);
    //~^ ERROR mismatched types
    //~| expected `i16`, found `i64`

    id_i32(a8);
    //~^ ERROR mismatched types
    //~| expected `i32`, found `i8`
    id_i32(a16);
    //~^ ERROR mismatched types
    //~| expected `i32`, found `i16`
    id_i32(a32); // ok
    id_i32(a64);
    //~^ ERROR mismatched types
    //~| expected `i32`, found `i64`

    id_i64(a8);
    //~^ ERROR mismatched types
    //~| expected `i64`, found `i8`
    id_i64(a16);
    //~^ ERROR mismatched types
    //~| expected `i64`, found `i16`
    id_i64(a32);
    //~^ ERROR mismatched types
    //~| expected `i64`, found `i32`
    id_i64(a64); // ok

    id_i8(c8); // ok
    id_i8(c16);
    //~^ ERROR mismatched types
    //~| expected `i8`, found `i16`
    id_i8(c32);
    //~^ ERROR mismatched types
    //~| expected `i8`, found `i32`
    id_i8(c64);
    //~^ ERROR mismatched types
    //~| expected `i8`, found `i64`

    id_i16(c8);
    //~^ ERROR mismatched types
    //~| expected `i16`, found `i8`
    id_i16(c16); // ok
    id_i16(c32);
    //~^ ERROR mismatched types
    //~| expected `i16`, found `i32`
    id_i16(c64);
    //~^ ERROR mismatched types
    //~| expected `i16`, found `i64`

    id_i32(c8);
    //~^ ERROR mismatched types
    //~| expected `i32`, found `i8`
    id_i32(c16);
    //~^ ERROR mismatched types
    //~| expected `i32`, found `i16`
    id_i32(c32); // ok
    id_i32(c64);
    //~^ ERROR mismatched types
    //~| expected `i32`, found `i64`

    id_i64(a8);
    //~^ ERROR mismatched types
    //~| expected `i64`, found `i8`
    id_i64(a16);
    //~^ ERROR mismatched types
    //~| expected `i64`, found `i16`
    id_i64(a32);
    //~^ ERROR mismatched types
    //~| expected `i64`, found `i32`
    id_i64(a64); // ok

    id_u8(b8); // ok
    id_u8(b16);
    //~^ ERROR mismatched types
    //~| expected `u8`, found `u16`
    id_u8(b32);
    //~^ ERROR mismatched types
    //~| expected `u8`, found `u32`
    id_u8(b64);
    //~^ ERROR mismatched types
    //~| expected `u8`, found `u64`

    id_u16(b8);
    //~^ ERROR mismatched types
    //~| expected `u16`, found `u8`
    id_u16(b16); // ok
    id_u16(b32);
    //~^ ERROR mismatched types
    //~| expected `u16`, found `u32`
    id_u16(b64);
    //~^ ERROR mismatched types
    //~| expected `u16`, found `u64`

    id_u32(b8);
    //~^ ERROR mismatched types
    //~| expected `u32`, found `u8`
    id_u32(b16);
    //~^ ERROR mismatched types
    //~| expected `u32`, found `u16`
    id_u32(b32); // ok
    id_u32(b64);
    //~^ ERROR mismatched types
    //~| expected `u32`, found `u64`

    id_u64(b8);
    //~^ ERROR mismatched types
    //~| expected `u64`, found `u8`
    id_u64(b16);
    //~^ ERROR mismatched types
    //~| expected `u64`, found `u16`
    id_u64(b32);
    //~^ ERROR mismatched types
    //~| expected `u64`, found `u32`
    id_u64(b64); // ok
}
