diff options
| author | Alasdair | 2019-01-14 10:36:43 +0000 |
|---|---|---|
| committer | Alasdair | 2019-01-14 10:36:43 +0000 |
| commit | 2eb2566c5c3ef5d7250fea604933704d8d94eabe (patch) | |
| tree | 8bebb52a23c3982514b769beffac82e8ac06cd6c /test/coq/pass/rangepair.sail | |
| parent | 9cfa575245a0427a0d35504086de182bd80b7df8 (diff) | |
| parent | a3da2efb3ef08e132e16db0c510b1b8fe4ee600c (diff) | |
Merge remote-tracking branch 'origin/sail2' into asl_flow2
Diffstat (limited to 'test/coq/pass/rangepair.sail')
| -rw-r--r-- | test/coq/pass/rangepair.sail | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/test/coq/pass/rangepair.sail b/test/coq/pass/rangepair.sail new file mode 100644 index 00000000..ce08ee4a --- /dev/null +++ b/test/coq/pass/rangepair.sail @@ -0,0 +1,33 @@ +/* Check that tuples of values that should be accompanied by a Coq proof are + handled properly. */ + +$include <prelude.sail> + +/* Monadic version */ + +val getpair_eff : unit -> (range(1,2),range(3,4)) effect {escape} + +function getpair_eff () = { + assert(true); + return (2,3) +} + +val test_eff : unit -> range (4,6) effect {escape} + +function test_eff () = + let (x,y) = getpair_eff() in + x + y + +/* Pure version */ + +val getpair : unit -> (range(1,2),range(3,4)) + +function getpair () = { + return (2,3) +} + +val test : unit -> range (4,6) + +function test () = + let (x,y) = getpair() in + x + y |
