// A value binding (parameter or local `var`) spelled as a reserved/builtin // type name is rejected at the declaration site, across every declaration // form: a parameter name (`u8`), a typed local (`i64`, `bool`), and a `:=` // local (`string`). Such a spelling parses as a `.type_expr` rather than an // `.identifier`, so the address-of family in lowering mis-lowers it (issue // 0076). Expected: one error per offending name; exit 1. #import "modules/std.sx"; takes_u8 :: (u8: i32) -> i32 { return u8; } main :: () -> i32 { i64 : i32 = 3; bool : bool = true; string := "x"; return 0; }