diff options
| author | Brian Campbell | 2017-08-23 11:11:08 +0100 |
|---|---|---|
| committer | Brian Campbell | 2017-08-23 11:11:08 +0100 |
| commit | 22c2e970e9e52ff60b8262d02b4f50ad12174fd8 (patch) | |
| tree | e05bc639514a511d4d39399b8a263e817897e4fe /test | |
| parent | 2a6f3b8e42a4cb4cececb79a9011346b5b25ce80 (diff) | |
| parent | c380d2d0b51be71871085ac7d085268f5baccb56 (diff) | |
Merge branch 'experiments' into mono-experiments
Diffstat (limited to 'test')
| -rw-r--r-- | test/typecheck/pass/pure_record.sail | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/test/typecheck/pass/pure_record.sail b/test/typecheck/pass/pure_record.sail new file mode 100644 index 00000000..c7bc373a --- /dev/null +++ b/test/typecheck/pass/pure_record.sail @@ -0,0 +1,22 @@ +default Order dec + +typedef State = const struct forall Type 'a. { + vector<0, 1, dec, 'a> N; + vector<0, 1, dec, bit> Z; +} + +let (State<bit>) myStateM = { + (State<bit>) r := undefined; + r.N := 0b1; + r.Z := 0b1; + r +} + +let (State<bit>) myState = { N = 0b1; Z = 0b1 } + +val unit -> unit effect {undef} test + +function test () = { + (State<bit>) myState2 := { N = undefined; Z = 0b1 }; + (State<bit>) myState3 := { myState2 with N = 0b0 } +} |
