aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar aspiwack <aspiwack@85f007b7-540e-0410-9357-904b9bb8a0f7>2012-07-06 11:24:29 +0000
committerGravatar aspiwack <aspiwack@85f007b7-540e-0410-9357-904b9bb8a0f7>2012-07-06 11:24:29 +0000
commit3e7c148472265c6066633bf39a63bfe387ba9351 (patch)
tree4aad6ed605687152bd16e3d3100a74a92dcc082e
parent843aa67736fad6efae3be67dba909164394674e9 (diff)
Fixes bug #2678
Some "dependent evars" were forgotten in the emacs mode. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@15530 85f007b7-540e-0410-9357-904b9bb8a0f7
-rw-r--r--pretyping/evarutil.ml6
1 files changed, 5 insertions, 1 deletions
diff --git a/pretyping/evarutil.ml b/pretyping/evarutil.ml
index b8f216ad4..7a9b41559 100644
--- a/pretyping/evarutil.ml
+++ b/pretyping/evarutil.ml
@@ -1804,7 +1804,11 @@ let rec add_evars_of_evars_in_types_of_set acc evm s =
let r = add_evars_of_evars_in_type r evm e in
match (Evd.find evm e).evar_body with
| Evar_empty -> r
- | Evar_defined b -> add_evars_of_evars_in_types_of_set r evm (evars_of_term b)
+ | Evar_defined b ->
+ (* Adds the evars used to define [b] to the binding map. *)
+ let r = add_evars_of_evars_of_term r evm b in
+ (* Goes recursively in the [evar_info] of each of these evar. *)
+ add_evars_of_evars_in_types_of_set r evm (evars_of_term b)
end s acc
let evars_of_evars_in_types_of_list evm l =