aboutsummaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorwerner2001-04-24 17:30:03 +0000
committerwerner2001-04-24 17:30:03 +0000
commit88bc6a84e38ede558386be3eef1d1515af85ea21 (patch)
tree901ecbacc282eb809058a84d4c80875d9d8f667a /kernel
parent5c0fb1246294ca1a7144af64fa1bdc198c0d24f1 (diff)
interdiction occ positives ET negatives dans Pattern
(en fait dans term.ml, fonction subst_occ_gen BW git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@1698 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'kernel')
-rw-r--r--kernel/term.ml7
1 files changed, 5 insertions, 2 deletions
diff --git a/kernel/term.ml b/kernel/term.ml
index a4adad7626..5d7be75ee4 100644
--- a/kernel/term.ml
+++ b/kernel/term.ml
@@ -1598,8 +1598,11 @@ let subst_term_occ_gen locs occ c t =
let maxocc = List.fold_right max locs 0 in
let pos = ref occ in
let check = ref true in
- let except = List.for_all (fun n -> n<0) locs in
- let rec substrec (k,c as kc) t =
+ let except = List.exists (fun n -> n<0) locs in
+ if except & (List.exists (fun n -> n>=0) locs)
+ then error "mixing of positive and negative occurences"
+ else
+ let rec substrec (k,c as kc) t =
if (not except) & (!pos > maxocc) then t
else
if eq_constr t c then