allow named/literal args in generic type positions #66
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/array-and-list-structure"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Found while implementing #55: `docs/syntax-notes.md`'s array/list desugaring ladder wrote `[3]Int[1, 2, 3] ↔ Array(Int)[1, 2, 3]`, silently dropping the size — the desugared canonical form had nowhere to put it, since `TypeExpr::Generic`'s args were always full `TypeExpr`s.
Decided `Array`'s size should be a real type parameter (`Array(T, N: Comptime(Int))`, Zig/Rust-style fixed-size array), not just a one-off literal check on the array literal itself. That needs generic-argument position to accept a bare comptime value (`3`) alongside ordinary type arguments (`T`), not just types.
This is parser/AST-level only — no `TyKind::Array` or `Comptime(Int)`-parameter checking semantics yet; that's future work for #56.
Test plan