aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthieu Sozeau2015-04-09 16:50:38 +0200
committerMatthieu Sozeau2015-04-09 16:51:06 +0200
commitfd19fbb3720f1f1d930dcd082ddcd021cb6e8b50 (patch)
treee739af6bee98ca2532ed2563d663d331f801b80b
parenteaa3f9719d6190ba92ce55816f11c70b30434309 (diff)
Remove evars in the type of _unnammed_ metas in pattern_of_constr (fixes QuicksortComplexity).
-rw-r--r--pretyping/patternops.ml5
1 files changed, 4 insertions, 1 deletions
diff --git a/pretyping/patternops.ml b/pretyping/patternops.ml
index 009b7323e4..9fb6ec9d11 100644
--- a/pretyping/patternops.ml
+++ b/pretyping/patternops.ml
@@ -171,7 +171,10 @@ let pattern_of_constr env sigma t =
assert (not b); PMeta (Some id)
| Evar_kinds.GoalEvar ->
PEvar (evk,Array.map (pattern_of_constr env) ctxt)
- | _ -> PMeta None)
+ | _ ->
+ let ty = Evarutil.nf_evar sigma (existential_type sigma ev) in
+ remove := Evar.Set.union (evars_of_term ty) !remove;
+ PMeta None)
| Case (ci,p,a,br) ->
let cip =
{ cip_style = ci.ci_pp_info.style;