aboutsummaryrefslogtreecommitdiffhomepage
path: root/pretyping/unification.ml
diff options
context:
space:
mode:
authorGravatar Maxime Dénès <mail@maximedenes.fr>2017-11-08 12:39:34 +0100
committerGravatar Maxime Dénès <mail@maximedenes.fr>2017-11-08 12:39:34 +0100
commit7e42041f5c4711a9fece32ce601ef99ca8ab272f (patch)
treef2330be6cbe2a8d0be1a7de17875c7ed62770e1f /pretyping/unification.ml
parent0d81e80a09db7d352408be4dfc5ba263f6ed98ef (diff)
parentdd56ef10395a2ced84612aa799690b034306806e (diff)
Merge PR #922: New beta-iota compatibility refinements
Diffstat (limited to 'pretyping/unification.ml')
-rw-r--r--pretyping/unification.ml4
1 files changed, 4 insertions, 0 deletions
diff --git a/pretyping/unification.ml b/pretyping/unification.ml
index e8f7e2bba..86ebc1f01 100644
--- a/pretyping/unification.ml
+++ b/pretyping/unification.ml
@@ -194,6 +194,10 @@ let pose_all_metas_as_evars env evd t =
let {rebus=ty;freemetas=mvs} = Evd.meta_ftype evd mv in
let ty = EConstr.of_constr ty in
let ty = if Evd.Metaset.is_empty mvs then ty else aux ty in
+ let ty =
+ if Flags.version_strictly_greater Flags.V8_6 || Flags.version_less_or_equal Flags.VOld
+ then nf_betaiota evd ty (* How it was in Coq <= 8.4 (but done in logic.ml at this time) *)
+ else ty (* some beta-iota-normalization "regression" in 8.5 and 8.6 *) in
let src = Evd.evar_source_of_meta mv !evdref in
let ev = Evarutil.e_new_evar env evdref ~src ty in
evdref := meta_assign mv (EConstr.Unsafe.to_constr ev,(Conv,TypeNotProcessed)) !evdref;