From 0f9ca620299613caf186eabf1e8cb9a83c6e2d0e Mon Sep 17 00:00:00 2001 From: Alasdair Armstrong Date: Tue, 22 Aug 2017 17:20:29 +0100 Subject: Added basic support for pure record definitions and functional record updates to the new typechecker --- test/typecheck/pass/pure_record.sail | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 test/typecheck/pass/pure_record.sail (limited to 'test') 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) myStateM = { + (State) r := undefined; + r.N := 0b1; + r.Z := 0b1; + r +} + +let (State) myState = { N = 0b1; Z = 0b1 } + +val unit -> unit effect {undef} test + +function test () = { + (State) myState2 := { N = undefined; Z = 0b1 }; + (State) myState3 := { myState2 with N = 0b0 } +} -- cgit v1.2.3