summaryrefslogtreecommitdiff
path: root/library/impargs.ml
diff options
context:
space:
mode:
authorGravatar Stephane Glondu <steph@glondu.net>2012-03-27 07:41:19 +0200
committerGravatar Stephane Glondu <steph@glondu.net>2012-03-27 07:41:19 +0200
commit2bdcd093b357adb2185518dabbafd1a0b9279044 (patch)
treebb98a3f549ff7fb9721a94972f0baba47290fedb /library/impargs.ml
parent300293c119981054c95182a90c829058530a6b6f (diff)
Imported Upstream version 8.3.pl4upstream/8.3.pl4
Diffstat (limited to 'library/impargs.ml')
-rw-r--r--library/impargs.ml15
1 files changed, 7 insertions, 8 deletions
diff --git a/library/impargs.ml b/library/impargs.ml
index 1c2b5afe..96209505 100644
--- a/library/impargs.ml
+++ b/library/impargs.ml
@@ -6,7 +6,7 @@
(* * GNU Lesser General Public License Version 2.1 *)
(************************************************************************)
-(* $Id: impargs.ml 14641 2011-11-06 11:59:10Z herbelin $ *)
+(* $Id: impargs.ml 15069 2012-03-20 14:06:07Z herbelin $ *)
open Util
open Names
@@ -209,11 +209,10 @@ let rec is_rigid_head t = match kind_of_term t with
(* calcule la liste des arguments implicites *)
-let find_displayed_name_in all avoid na b =
- if all then
- compute_and_force_displayed_name_in (RenamingElsewhereFor b) avoid na b
- else
- compute_displayed_name_in (RenamingElsewhereFor b) avoid na b
+let find_displayed_name_in all avoid na (_,b as envnames_b) =
+ let flag = RenamingElsewhereFor envnames_b in
+ if all then compute_and_force_displayed_name_in flag avoid na b
+ else compute_displayed_name_in flag avoid na b
let compute_implicits_gen strict strongly_strict revpat contextual all env t =
let rigid = ref true in
@@ -221,7 +220,7 @@ let compute_implicits_gen strict strongly_strict revpat contextual all env t =
let t = whd_betadeltaiota env t in
match kind_of_term t with
| Prod (na,a,b) ->
- let na',avoid' = find_displayed_name_in all avoid na b in
+ let na',avoid' = find_displayed_name_in all avoid na (names,b) in
add_free_rels_until strict strongly_strict revpat n env a (Hyp (n+1))
(aux (push_rel (na',None,a) env) avoid' (n+1) (na'::names) b)
| _ ->
@@ -234,7 +233,7 @@ let compute_implicits_gen strict strongly_strict revpat contextual all env t =
in
match kind_of_term (whd_betadeltaiota env t) with
| Prod (na,a,b) ->
- let na',avoid = find_displayed_name_in all [] na b in
+ let na',avoid = find_displayed_name_in all [] na ([],b) in
let v = aux (push_rel (na',None,a) env) avoid 1 [na'] b in
!rigid, Array.to_list v
| _ -> true, []