diff options
| author | Pierre-Marie Pédrot | 2014-04-23 21:38:37 +0200 |
|---|---|---|
| committer | Pierre-Marie Pédrot | 2014-04-23 22:58:51 +0200 |
| commit | 5bddbf141cc6462563cdc86dcc7c02edccd295fd (patch) | |
| tree | 9ebc3de6396f376064b67c5da0202b1e33ed22af /pretyping/cases.ml | |
| parent | 74ddca99c649f2f8c203582a9b82bddf64fb6b52 (diff) | |
Better representation of evar filters: we represent the vacuous filters of
any length with a [None] representation and ensure that this representation
is canonical through the restricted interface.
Diffstat (limited to 'pretyping/cases.ml')
| -rw-r--r-- | pretyping/cases.ml | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/pretyping/cases.ml b/pretyping/cases.ml index a7957ebe84..d71499eda9 100644 --- a/pretyping/cases.ml +++ b/pretyping/cases.ml @@ -1573,12 +1573,12 @@ let abstract_tycon loc env evdref subst _tycon extenv t = (fun i _ -> if Int.List.mem i vl then u else mkRel i) 1 (rel_context extenv) in let rel_filter = - Filter.init_list (fun a -> not (isRel a) || dependent a u + List.map (fun a -> not (isRel a) || dependent a u || Int.Set.mem (destRel a) depvl) inst in let named_filter = - Filter.init_list (fun (id,_,_) -> dependent (mkVar id) u) + List.map (fun (id,_,_) -> dependent (mkVar id) u) (named_context extenv) in - let filter = Filter.append rel_filter named_filter in + let filter = Filter.make (rel_filter @ named_filter) in let candidates = u :: List.map mkRel vl in let ev = e_new_evar evdref extenv ~src:(loc, Evar_kinds.CasesType) |
