// `?(?i64)` is `optional` wrapping the SINGLE-FIELD TUPLE `(?i64)` — in type // position `(T)` is a 1-tuple, not a grouping (specs.md §"Tuple Types"). So // assigning a bare `?i64` value to a `?(?i64)` slot is a type mismatch: the // optional's payload is the tuple `(?i64)`, not `?i64`. // // Regression (issue 0165): this used to silently lower to a malformed // `insertvalue { {{i64,i1}}, i1 }` that aborted the LLVM verifier. It now // produces a clean diagnostic naming the payload type and pointing at the // parens-are-a-tuple gotcha. (To write a genuine nested optional, alias the // inner one: `Opt :: ?i64; x : ?Opt = ...` — see // examples/optionals/0911-nested-optional-via-alias.sx.) #import "modules/std.sx"; main :: () { inner : ?i64 = 5; outer : ?(?i64) = inner; print("unreachable\n"); }