﻿:: {g:g, o:o, s:s, b:b, qb:b?, n:n, qn:n?, r8:r8, qr8:r8?, r4:r4, qr4:r4?, i:i, qi:i?, i8:i8, qi8:i8?, i4:i4, qi4:i4?, i2:i2, qi2:i2?, i1:i1, qi1:i1?, u8:u8, qu8:u8?, u4:u4, qu4:u4?, u2:u2, qu2:u2?, u1:u1, qu1:u1?}

s if b else "Hello"

// Promotion.
r4 + 3 if b else i4 + 3

// Constant folding.
r4 + 3 if true else i4 + 3
r4 + 3 if false else i4 + 3
r4 + 3 if 3 = 1 + 2 else i4 + 3
r4 + 3 if 3 = 1 + 1 else i4 + 3
3 + 2 if b else 3 - 2

// REVIEW: Should we always reduce both sides for warnings?
0x7FFF_FFFF_FFFF_FFFF + 17 if false else 1
0x7FFF_FFFF_FFFF_FFFF + 17 if true else 1

// Reduction
i8 if b else i8
i8 if b else i8 + 0
i8 if b else i8 * 1
i8 if b else 5 * 20 + i8 - 100

// Error.
r4 + 3 if r4 else i4 + 3
r4 + 3 if s else i4 + 3
r4 + 3 if qb else i4 + 3
