summaryrefslogtreecommitdiff
path: root/src/constant_propagation.ml
diff options
context:
space:
mode:
authorAlasdair2020-09-29 16:23:40 +0100
committerAlasdair2020-09-29 16:32:24 +0100
commit7441db19749fb7fb9383b6361dfbd99547e53486 (patch)
tree779f90dbe139bce648540d517be84b156d92319e /src/constant_propagation.ml
parent6dbd0facf0962d869d0c3957f668b035a4a6605c (diff)
Refactor: Change AST type from a union to a struct
Diffstat (limited to 'src/constant_propagation.ml')
-rw-r--r--src/constant_propagation.ml10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/constant_propagation.ml b/src/constant_propagation.ml
index b7bc0a69..cea1fe93 100644
--- a/src/constant_propagation.ml
+++ b/src/constant_propagation.ml
@@ -301,16 +301,16 @@ let is_env_inconsistent env ksubsts =
module StringSet = Set.Make(String)
module StringMap = Map.Make(String)
-let const_props target defs ref_vars =
+let const_props target ast ref_vars =
let const_fold exp =
(* Constant-fold function applications with constant arguments *)
let interpreter_istate =
(* Do not interpret undefined_X functions *)
let open Interpreter in
- let undefined_builtin_ids = ids_of_ast (Defs Initial_check.undefined_builtin_val_specs) in
+ let undefined_builtin_ids = ids_of_defs Initial_check.undefined_builtin_val_specs in
let remove_primop id = StringMap.remove (string_of_id id) in
let remove_undefined_primops = IdSet.fold remove_primop undefined_builtin_ids in
- let (lstate, gstate) = Constant_fold.initial_state defs Type_check.initial_env in
+ let (lstate, gstate) = Constant_fold.initial_state ast Type_check.initial_env in
(lstate, { gstate with primops = remove_undefined_primops gstate.primops })
in
try
@@ -328,9 +328,7 @@ let const_props target defs ref_vars =
Bindings.add id exp m
| _ -> m
in
- match defs with
- | Defs defs ->
- List.fold_left add Bindings.empty defs
+ List.fold_left add Bindings.empty ast.defs
in
let replace_constant (E_aux (e,annot) as exp) =
match e with