From f9015d1e956ace6c875eb6a631caeac49cfb8148 Mon Sep 17 00:00:00 2001 From: Sidney Congard Date: Fri, 29 Jul 2022 16:04:49 +0200 Subject: Create global declaration group, address PR changes but introduce bugs --- src/PureUtils.ml | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/PureUtils.ml') diff --git a/src/PureUtils.ml b/src/PureUtils.ml index 8d3b5258..8a1c074d 100644 --- a/src/PureUtils.ml +++ b/src/PureUtils.ml @@ -399,6 +399,11 @@ let type_decl_is_enum (def : T.type_decl) : bool = let mk_state_ty : ty = Adt (Assumed State, []) let mk_result_ty (ty : ty) : ty = Adt (Assumed Result, [ ty ]) +let unwrap_result_ty (ty : ty) : ty = + match ty with + | Adt (Assumed Result, [ ty ]) -> ty + | _ -> failwith "not a result" + let mk_result_fail_texpression (ty : ty) : texpression = let type_args = [ ty ] in let ty = Adt (Assumed Result, type_args) in -- cgit v1.2.3 From f106fd4ad0a221611c840bf0af0b1c2ff23f3d0f Mon Sep 17 00:00:00 2001 From: Son Ho Date: Thu, 22 Sep 2022 17:44:04 +0200 Subject: Make minor modifications --- src/PureUtils.ml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/PureUtils.ml') diff --git a/src/PureUtils.ml b/src/PureUtils.ml index 8a1c074d..e72ff9d7 100644 --- a/src/PureUtils.ml +++ b/src/PureUtils.ml @@ -402,7 +402,7 @@ let mk_result_ty (ty : ty) : ty = Adt (Assumed Result, [ ty ]) let unwrap_result_ty (ty : ty) : ty = match ty with | Adt (Assumed Result, [ ty ]) -> ty - | _ -> failwith "not a result" + | _ -> failwith "not a result type" let mk_result_fail_texpression (ty : ty) : texpression = let type_args = [ ty ] in -- cgit v1.2.3 From 2b79c533d98f1bec8d332f660b36a05152b4c7dc Mon Sep 17 00:00:00 2001 From: Son Ho Date: Thu, 22 Sep 2022 18:13:56 +0200 Subject: Update PureMicroPasses.inline_useless_var_reassignments --- src/PureUtils.ml | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/PureUtils.ml') diff --git a/src/PureUtils.ml b/src/PureUtils.ml index e72ff9d7..c3d4c983 100644 --- a/src/PureUtils.ml +++ b/src/PureUtils.ml @@ -173,6 +173,12 @@ let is_var (e : texpression) : bool = let as_var (e : texpression) : VarId.id = match e.e with Var v -> v | _ -> raise (Failure "Unreachable") +let is_global (e : texpression) : bool = + match e.e with Qualif { id = Global _; _ } -> true | _ -> false + +let is_const (e : texpression) : bool = + match e.e with Const _ -> true | _ -> false + (** Remove the external occurrences of [Meta] *) let rec unmeta (e : texpression) : texpression = match e.e with Meta (_, e) -> unmeta e | _ -> e -- cgit v1.2.3