aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2007-05-16 18:39:35 +0000
committerGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2007-05-16 18:39:35 +0000
commit01eb823bc346f06e0a075a9dc2bbf6aa9e70b2d1 (patch)
tree7ab3dc17571e33c12c01ed905e78803d79185bbf
parent3101ff981d36359f74d5996447ba70f41398e72b (diff)
Correction bug calcul des implicites en présence d'evars dans les types
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@9827 85f007b7-540e-0410-9357-904b9bb8a0f7
-rw-r--r--library/impargs.ml1
-rw-r--r--test-suite/success/implicit.v10
2 files changed, 11 insertions, 0 deletions
diff --git a/library/impargs.ml b/library/impargs.ml
index 52ea66de0..f3da637de 100644
--- a/library/impargs.ml
+++ b/library/impargs.ml
@@ -185,6 +185,7 @@ let add_free_rels_until strict strongly_strict revpat bound env m pos acc =
| Case _ when rig ->
if strict then () else
iter_constr_with_full_binders push_lift (frec false) ed c
+ | Evar _ -> ()
| _ ->
iter_constr_with_full_binders push_lift (frec rig) ed c
in
diff --git a/test-suite/success/implicit.v b/test-suite/success/implicit.v
index 47c58f045..9034d6a6f 100644
--- a/test-suite/success/implicit.v
+++ b/test-suite/success/implicit.v
@@ -36,3 +36,13 @@ Check (fun x => @ rhs _ _ (f x)).
Fixpoint g n := match n with O => true | S n => g n end.
Inductive P n : nat -> Prop := c : P n n.
+
+(* Avoid evars in the computation of implicit arguments (cf r9827) *)
+
+Require Import List.
+
+Fixpoint plus n m {struct n} :=
+ match n with
+ | 0 => m
+ | S p => S (plus p m)
+ end.