diff options
Diffstat (limited to 'src/test/pattern.sail')
| -rw-r--r-- | src/test/pattern.sail | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/test/pattern.sail b/src/test/pattern.sail index bc04590d..7bbfebf9 100644 --- a/src/test/pattern.sail +++ b/src/test/pattern.sail @@ -3,6 +3,9 @@ register nat n register nat x register nat y +typedef wordsize = forall Nat 'n, 'n IN {8,16,32}. [|'n|] +let forall Nat 'n. (wordsize<'n>) word = 8 + function nat main _ = { (* works - x and y are set to 42 *) @@ -14,7 +17,12 @@ function nat main _ = { case z -> { x := 99; x } }); - (* doesn't work - main returns 1 instead of 99 *) + switch word { + case 8 -> { x:= 32; } + case 16 -> { x:= 64; } + case 32 -> { x:= 128; } + }; + n := 3; switch n { case 0 -> { 21 } |
