From 4bd01aaa630fbed653b9ceeefd7aa868182367d4 Mon Sep 17 00:00:00 2001 From: Kathy Gray Date: Thu, 9 Jan 2014 13:47:53 +0000 Subject: Fixed a single-argument tuple bug on function calls --- src/lem_interp/interp.lem | 2 +- src/test/test1.sail | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'src') 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] } -- cgit v1.2.3