summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorBrian Campbell2017-08-23 11:11:08 +0100
committerBrian Campbell2017-08-23 11:11:08 +0100
commit22c2e970e9e52ff60b8262d02b4f50ad12174fd8 (patch)
treee05bc639514a511d4d39399b8a263e817897e4fe /test
parent2a6f3b8e42a4cb4cececb79a9011346b5b25ce80 (diff)
parentc380d2d0b51be71871085ac7d085268f5baccb56 (diff)
Merge branch 'experiments' into mono-experiments
Diffstat (limited to 'test')
-rw-r--r--test/typecheck/pass/pure_record.sail22
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 }
+}