From bfa83d948aff5ad0ec298836bf9f0be58a62d542 Mon Sep 17 00:00:00 2001 From: Son Ho Date: Wed, 13 Dec 2023 10:57:49 +0100 Subject: Update the interpreter to handle optional otherwise branches --- compiler/InterpreterStatements.ml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/compiler/InterpreterStatements.ml b/compiler/InterpreterStatements.ml index 66b8492a..30b7b333 100644 --- a/compiler/InterpreterStatements.ml +++ b/compiler/InterpreterStatements.ml @@ -1125,7 +1125,10 @@ and eval_switch (config : config) (switch : switch) : st_cm_fun = let dv = Option.get adt.variant_id in (* Find the branch, evaluate and continue *) match List.find_opt (fun (svl, _) -> List.mem dv svl) stgts with - | None -> eval_statement config otherwise cf ctx + | None -> ( + match otherwise with + | None -> raise (Failure "No otherwise branch") + | Some otherwise -> eval_statement config otherwise cf ctx) | Some (_, tgt) -> eval_statement config tgt cf ctx) | VSymbolic sv -> (* Expand the symbolic value - may lead to branching *) -- cgit v1.2.3 From 07fc9c784e311ab082b89a63f5ca5b0c7568fc4c Mon Sep 17 00:00:00 2001 From: Son Ho Date: Wed, 13 Dec 2023 11:01:13 +0100 Subject: Update the flake.lock --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 94159200..77e6546b 100644 --- a/flake.lock +++ b/flake.lock @@ -8,11 +8,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1702401937, - "narHash": "sha256-PHm8BLp2S5Q1iaKOJOrn6/5nuQfxzwUcIFEgXJzNhBM=", + "lastModified": 1702461610, + "narHash": "sha256-9eHPrAExrMCiOm/yylwxuPFL9zyUoiBkajFTu1d1tWc=", "owner": "aeneasverif", "repo": "charon", - "rev": "45fd166933d7d30e73eae8150192ff4cc1e123df", + "rev": "17c2aaa7cb05c0f06d3177b020eb6ba8b0b1f950", "type": "github" }, "original": { -- cgit v1.2.3