diff options
| author | ppedrot | 2013-10-22 17:26:28 +0000 |
|---|---|---|
| committer | ppedrot | 2013-10-22 17:26:28 +0000 |
| commit | e792b4a6b0a9a279293ff7ff5748bc61d2116ce6 (patch) | |
| tree | 0c745d58f1a1a76fc89b9b61bdf5df87dd47eaed /pretyping/evarsolve.ml | |
| parent | 14b6df0f5a23a231ade989bb1e3dab0f657d1fab (diff) | |
Optimizing evar filters. It seems to cost quite a lot in unification,
as witnessed by profiling on time-consuming files. I suspect we can
do better by using a smarter representation.
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@16912 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'pretyping/evarsolve.ml')
| -rw-r--r-- | pretyping/evarsolve.ml | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/pretyping/evarsolve.ml b/pretyping/evarsolve.ml index c8122c4dc5..7ae44faf8a 100644 --- a/pretyping/evarsolve.ml +++ b/pretyping/evarsolve.ml @@ -45,7 +45,7 @@ let test_success conv_algo env evd c c' rhs = (************************) let extract_subfilter initial_filter refined_filter = - snd (List.filter2 (fun b1 b2 -> b1) initial_filter refined_filter) + List.filter_with initial_filter refined_filter let apply_subfilter filter subfilter = fst (List.fold_right (fun oldb (l,filter) -> @@ -82,7 +82,7 @@ let restrict_evar_key evd evk filter candidates = let sign = evar_hyps evi in let src = evi.evar_source in let evd,newevk = new_pure_evar evd sign ccl ~src ~filter ?candidates in - let _, ctxt = List.filter2 (fun b c -> b) filter (evar_context evi) in + let ctxt = List.filter_with filter (evar_context evi) in let id_inst = Array.of_list (List.map (fun (id,_,_) -> mkVar id) ctxt) in Evd.define evk (mkEvar(newevk,id_inst)) evd,newevk end |
