ocaml: phase 2+3 'when' guard in try/with (+3 tests, 467 total)
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 27s
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 27s
parse-try now consumes optional 'when GUARD-EXPR' before -> and emits (:case-when PAT GUARD BODY). Eval try clause loop dispatches on case / case-when and falls through on guard false — same semantics as match. Examples: try raise (E 5) with | E n when n > 0 -> n | _ -> 0 = 5 try raise (E (-3)) with | E n when n > 0 -> n | _ -> 0 = 0 try raise (E 5) with | E n when n > 100 -> n | E n -> n + 1000 = 1005
This commit is contained in:
@@ -407,6 +407,10 @@ _Newest first._
|
||||
binary search tree (`type 'a tree = Leaf | Node of 'a * 'a tree *
|
||||
'a tree`) with insert + in-order traversal. Tests parametric ADT,
|
||||
recursive match, List.append, List.fold_left.
|
||||
- 2026-05-08 Phase 2+3 — `try ... with | pat when GUARD -> body` guard
|
||||
support (+3 tests, 467 total). parse-try mirrors match/function;
|
||||
eval-try clause loop now dispatches on `case`/`case-when` and falls
|
||||
through to next clause when guard is false.
|
||||
- 2026-05-08 Phase 1+3 — `function | pat when GUARD -> body | …`
|
||||
guard support (+3 tests, 464 total). `parse-function` mirrors the
|
||||
match-clause when-handling.
|
||||
|
||||
Reference in New Issue
Block a user