summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKathy Gray2014-11-24 16:14:59 +0000
committerKathy Gray2014-11-24 16:14:59 +0000
commit8cfaffa0f71488640d815b5f991799625ef76ce5 (patch)
treedd104e31c788e4f8a2c0a0e58dd73e01c844f904
parent8c4dc0522f2dd075563abc4932022cebb0399417 (diff)
Missing patterns in pattern matches
-rw-r--r--src/lem_interp/interp.lem8
-rw-r--r--src/lem_interp/interp_lib.lem3
2 files changed, 10 insertions, 1 deletions
diff --git a/src/lem_interp/interp.lem b/src/lem_interp/interp.lem
index 467d98d1..f8d85cec 100644
--- a/src/lem_interp/interp.lem
+++ b/src/lem_interp/interp.lem
@@ -2181,7 +2181,13 @@ and create_write_message_or_update mode t_level value l_env l_mem is_top_level (
((Action (Write_reg regform Nothing (update_vector_start start_pos reg_size value))
(Thunk_frame (E_aux (E_lit (L_aux L_unit l)) (l,intern_annot annot)) t_level l_env l_mem Top),
l_mem,l_env),Nothing)
- | (V_register regform,false,Just lexp_builder) ->
+ | (V_track (V_register regform) _,true,_) ->
+ let start_pos = reg_start_pos regform in
+ let reg_size = reg_size regform in
+ ((Action (Write_reg regform Nothing (update_vector_start start_pos reg_size value))
+ (Thunk_frame (E_aux (E_lit (L_aux L_unit l)) (l,intern_annot annot)) t_level l_env l_mem Top),
+ l_mem,l_env),Nothing)
+ | (V_track (V_register regform) _,false,Just lexp_builder) ->
let start_pos = reg_start_pos regform in
let reg_size = reg_size regform in
((Action (Write_reg regform Nothing (update_vector_start start_pos reg_size value))
diff --git a/src/lem_interp/interp_lib.lem b/src/lem_interp/interp_lib.lem
index 8ebf37ec..9ee54b16 100644
--- a/src/lem_interp/interp_lib.lem
+++ b/src/lem_interp/interp_lib.lem
@@ -166,6 +166,7 @@ let rec to_vec_inc (V_tuple[v1;v2]) = match (v1,v2) with
| ((V_lit(L_aux (L_num n) ln)),V_unknown) ->
V_vector 0 true (List.replicate (natFromInteger n) V_unknown)
| (_,V_unknown) -> V_unknown
+ | (V_unknown,_) -> V_unknown
| _ -> Assert_extra.failwith ("to_vec_inc parameters were " ^ (string_of_value (V_tuple[v1;v2])))
end
;;
@@ -179,6 +180,8 @@ let rec to_vec_dec (V_tuple([v1;v2])) = match (v1,v2) with
| ((V_lit(L_aux (L_num n) ln)),V_unknown) ->
V_vector (n-1) false (List.replicate (natFromInteger n) V_unknown)
| (_,V_unknown) -> V_unknown
+ | (V_unknown,_) -> V_unknown
+ | _ -> Assert_extra.failwith ("to_vec_dec parameters were " ^ (string_of_value (V_tuple[v1;v2])))
end
;;
let to_vec ord len n =