ref: 09a34baac6757c7a4c33e3e3c50054acbb1b70bb
dir: /test/matchargstr.myr/
use std /* checks pattern matching on unions with arguments. exits with 42. */ type u = union `Int int `Str byte[:] `Nil ;; const main = { var v v = `Str "asdf" match v | `Int 127: std.fatal("wrong match `Int 127\n") | `Str "foo": std.fatal("Wrong match `Str \"foo\"\n") /* make sure we backtrack for the test */ | `Str "asfd": std.fatal("Wrong match `Str \"fsda\"\n") | `Str "asdf": std.put("Correct `Str \"asdf\"!\n") | `Nil: std.fatal("Wrong match `Str \"fsda\"\n") | _: std.fatal("Impossible failed match\n") ;; }