//! returns: 0

/// Test that constant expressions can reference other constants,
/// including arithmetic on constants.

const A: i32 = 10;
const B: i32 = 20;
const C: i32 = A + B;
const D: i32 = C * 2;
const E: i32 = D - A;
const F: i32 = E / 5;
const G: i32 = A % 3;
const H: i32 = A | B;
const I: i32 = A & B;
const J: i32 = A ^ B;
const K: i32 = A << 2;
const L: i32 = B >> 1;

@default fn main() -> i32 {
    if C != 30 { return 1; }
    if D != 60 { return 2; }
    if E != 50 { return 3; }
    if F != 10 { return 4; }
    if G != 1 { return 5; }
    if H != 30 { return 6; }
    if I != 0 { return 7; }
    if J != 30 { return 8; }
    if K != 40 { return 9; }
    if L != 10 { return 10; }
    return 0;
}
