// 901_enum_corpus — computed enum-member value-expr gap fixture for // the 901 asserttyped net (class E). Each computed member leaves its // value-expr (N_BIN / N_UN / sibling-backref N_IDENT) type_=nil until // the checker's stampenumvals fills the subtree at the enum's // underlying type. Mirrors the 759_check_enum_fold rows plus the 994 // in-source `RW = R | W` shape (enum u8). Literal + auto-increment // members never warned (resolvewalk's post-order exprtype stamps the // leaf), so the literal-only enum is a control: it must stay 0. package main; type sib = enum i32 { A = 7, B = A }; type un = enum i32 { NEG = -7, R = NEG + 14 }; type unl = enum i32 { TIL = ~(-8), PLU = +7 }; type arith = enum i32 { A = 3, ADD = A + 4, SUB = A - 1, MUL = A * 2, DIV = A / 3, MOD = A % 2, }; type bits = enum i32 { A = 5, AND = A & 3, IOR = A | 2, XOR = A ^ 1, SHL = A << 2, SHR = A >> 1, }; type chain = enum i32 { A = 1, B = A + 1, C = B + 1, D = C + 4 }; type mode = enum u8 { RD = 1u8, WR = 2u8, RW = RD | WR }; type lit = enum i32 { X = 7, Y = 9, Z = 11 }; fn main() i32 = { return chain.D: i32 + mode.RW: i32; };