diff options
| author | Brian Campbell | 2019-01-29 16:25:45 +0000 |
|---|---|---|
| committer | Brian Campbell | 2019-01-29 16:25:45 +0000 |
| commit | 1f2c21b684be664e8ffffda2fd3c8d34edaba807 (patch) | |
| tree | b846118b9a360438bf90a637befb146ad4eab8a3 /src | |
| parent | 5682dd34fce64869a611ba1aee5e1e73b2f2fd0f (diff) | |
Monomorphisation: restrict our attention to Int kids
Diffstat (limited to 'src')
| -rw-r--r-- | src/monomorphise.ml | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/src/monomorphise.ml b/src/monomorphise.ml index dbe0fafd..1b7fb3b4 100644 --- a/src/monomorphise.ml +++ b/src/monomorphise.ml @@ -2733,7 +2733,7 @@ let merge rs rs' = { } type env = { - top_kids : kid list; + top_kids : kid list; (* Int kids bound by the function type *) var_deps : dependencies Bindings.t; kid_deps : dependencies KBindings.t; referenced_vars : IdSet.t @@ -2941,8 +2941,6 @@ let simplify_size_nexp env typ_env (Nexp_aux (ne,l) as nexp) = | Some n -> nconstant n | None -> let is_equal kid = - (* AA: top_kids should be changed to top_kopts so we don't end - up trying to prove v == nexp for a non-Int v. *) try prove __POS__ typ_env (NC_aux (NC_equal (Nexp_aux (Nexp_var kid,Unknown), nexp),Unknown)) with _ -> false @@ -3373,12 +3371,11 @@ let initial_env fn_id fn_l (TypQ_aux (tq,_)) pat body set_assertions = | P_cons (p1,p2) -> of_list [p1;p2] in aux pat in - let quant = function - | QI_aux (QI_id (KOpt_aux (KOpt_kind (_,kid),_)),_) -> - Some kid - | QI_aux (QI_const _,_) -> None + let int_quant = function + | QI_aux (QI_id (KOpt_aux (KOpt_kind (K_aux (K_int,_),kid),_)),_) -> Some kid + | _ -> None in - let top_kids = Util.map_filter quant qs in + let top_kids = Util.map_filter int_quant qs in let _,var_deps,kid_deps = split3 (List.mapi arg pats) in let var_deps = List.fold_left dep_bindings_merge Bindings.empty var_deps in let kid_deps = List.fold_left dep_kbindings_merge KBindings.empty kid_deps in |
