diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lem_interp/interp.lem | 2 | ||||
| -rw-r--r-- | src/test/test1.sail | 4 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/lem_interp/interp.lem b/src/lem_interp/interp.lem index 57b3067b..786d742f 100644 --- a/src/lem_interp/interp.lem +++ b/src/lem_interp/interp.lem @@ -681,7 +681,7 @@ and interp_main t_level l_env l_mem exp = (fun vals -> V_vector (List_extra.head indexes) true vals) (*Need to see increasing or not, can look at types later*) l_env l_mem [] exps | E_block(exps) -> interp_block t_level l_env l_env l_mem exps | E_app f args -> - (match (exp_list t_level (fun es -> E_app f es) V_tuple l_env l_mem [] args) with + (match (exp_list t_level (fun es -> E_app f es) (fun vs -> match vs with | [] -> V_lit L_unit | [v] -> v | vs -> V_tuple vs end) l_env l_mem [] args) with | (Value v,lm,le) -> (match (f,t_level) with | (id,(Env defs externs lets regs mems ctors)) -> diff --git a/src/test/test1.sail b/src/test/test1.sail index 7747783e..3580f3e6 100644 --- a/src/test/test1.sail +++ b/src/test/test1.sail @@ -13,5 +13,7 @@ let bool e = true let bit v = bitzero let ( bit [ 32 ] ) v1 = 0b101 -function bit main _ = v1[0] +function bit sw s = switch s { case 0 -> bitzero } + +function bit main _ = {sw(0); v1[0] } |
