haskell: Phase 14 — tests/records.sx (14/14, plan ≥12)
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 49s

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-07 17:20:30 +00:00
parent a4fd57cff1
commit 63c1e17c75
2 changed files with 136 additions and 3 deletions

View File

@@ -261,9 +261,9 @@ No OCaml changes are needed. The view type is fully representable as an SX dict.
not `hk-constructors`._
- [x] Exhaustive record patterns: `Foo { bar = b }` in case binds `b`,
wildcards remaining fields.
- [ ] Tests in `lib/haskell/tests/records.sx` (≥ 12 tests: creation, accessor,
update one field, update two fields, record pattern, `deriving Show` on
record type).
- [x] Tests in `lib/haskell/tests/records.sx` (14/14, plan ≥12: creation
with reorder, accessors, single + two-field update, case-alt + fun-LHS
record patterns, `deriving Show` on record types).
- [ ] Conformance programs:
- `person.hs` — `data Person = Person { name :: String, age :: Int }` with
accessors, update, `deriving Show`.
@@ -315,6 +315,12 @@ No OCaml changes are needed. The view type is fully representable as an SX dict.
_Newest first._
**2026-05-07** — Phase 14 unit tests `tests/records.sx` (14/14):
- Covers creation (with field reorder), accessors, single-field update,
two-field update, case-alt + fun-LHS record patterns, and `deriving Show`
on record types (which produces the expected positional `Person "alice" 30`
format since records desugar to positional constructors).
**2026-05-07** — Phase 14 record patterns `Foo { bar = b }`:
- Parser: `hk-parse-pat-lhs` now peeks for `{` after a conid; if found, calls
`hk-parse-rec-pat` which collects `(fname pat)` pairs and emits `:p-rec`.