diff options
author | Ori Bernstein <ori@eigenstate.org> | 2017-12-05 01:05:18 -0800 |
---|---|---|
committer | Ori Bernstein <ori@eigenstate.org> | 2017-12-05 01:05:18 -0800 |
commit | 3360bf0e88b086b0c7f7957eeb4a6f0b4eaeebc7 (patch) | |
tree | 95aeb9f8bf85ca70dc9cbdb2729fe166303ca048 /test/matchnest.myr | |
parent | 5aaf4d7e6e7eb9e55bf314a2db83ab25b834b4fb (diff) | |
download | mc-3360bf0e88b086b0c7f7957eeb4a6f0b4eaeebc7.tar.gz |
Shift the match frontier correctly.
Fixes #159
Diffstat (limited to 'test/matchnest.myr')
-rw-r--r-- | test/matchnest.myr | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/test/matchnest.myr b/test/matchnest.myr new file mode 100644 index 0000000..3572abd --- /dev/null +++ b/test/matchnest.myr @@ -0,0 +1,45 @@ +use std + +type a = struct + x : int + y : int +;; + +type b = struct + u : a + v : int +;; + +const main = { + var v : b + + match ((0, 1), 2) + | ((0, 1), 2): std.put("a") + | _: std.put("f") + ;; + + match ((0, 1), 2) + | (_, 2): std.put("b") + | _: std.put("f") + ;; + + v = [.u=[.x=1, .y=2], .v=3] + match v + | [.u=[.x=1, .y=2], .v=3]: std.put("c") + | _: std.put("f") + ;; + match v + | [.u=_, .v=3]: std.put("d") + | _: std.put("f") + ;; + + + match [[1,2], [3,4]] + | [[1,2], [3,4]]: std.put("e") + | _: std.put("f") + ;; + match [[1,2], [3,4]] + | [_, [3,4]]: std.put("f") + | _: std.put("f") + ;; +} |