From aead63946e85ccd9468f8315abc319be965e1030 Mon Sep 17 00:00:00 2001 From: Kathy Gray Date: Thu, 30 Oct 2014 14:43:49 +0000 Subject: Fix type error that Lem didn't catch with the interpreter alone --- src/lem_interp/interp_inter_imp.lem | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/lem_interp/interp_inter_imp.lem b/src/lem_interp/interp_inter_imp.lem index bfca32d3..7b96aef5 100644 --- a/src/lem_interp/interp_inter_imp.lem +++ b/src/lem_interp/interp_inter_imp.lem @@ -336,13 +336,14 @@ let rec find_reg_name reg = function | [] -> Nothing | (reg_name,v)::registers -> match (reg,reg_name) with - | (Reg i, Reg n) -> if i = n then v else find_reg_name reg registers + | (Reg i, Reg n) -> if i = n then (Just v) else find_reg_name reg registers | (Reg_slice i (p1,p2), Reg_slice n (p3,p4)) -> - if i=n && p1=p3 && p2 = p4 then v else find_reg_name reg registers + if i=n && p1=p3 && p2 = p4 then (Just v) else find_reg_name reg registers | (Reg_field i f _,Reg_field n fn _) -> - if i=n && f = fn then v else find_reg_name reg registers + if i=n && f = fn then (Just v) else find_reg_name reg registers | (Reg_f_slice i f _ (p1,p2), Reg_f_slice n fn _ (p3,p4)) -> - if i=n && f=fn && p1=p3 && p2=p3 then v else find_reg_name reg registers + if i=n && f=fn && p1=p3 && p2=p3 then (Just v) else find_reg_name reg registers + | _ -> find_reg_name reg registers end end let rec ie_loop mode register_values i_state = -- cgit v1.2.3