diff options
| author | herbelin | 2004-08-06 18:15:24 +0000 |
|---|---|---|
| committer | herbelin | 2004-08-06 18:15:24 +0000 |
| commit | 2e42df1fe1e4b8276e7a4b268002e6a68d3ac619 (patch) | |
| tree | 0510e2cff31bf814cb101d15efdd65d5de1feb00 /kernel/inductive.ml | |
| parent | 8bb0d9d3853cdbde4992be9cbde393f19edcdcbf (diff) | |
Amélioration message d'erreur objet de récursion de type non inductif
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@6019 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'kernel/inductive.ml')
| -rw-r--r-- | kernel/inductive.ml | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/kernel/inductive.ml b/kernel/inductive.ml index 5b2e8998bf..3e2f03871a 100644 --- a/kernel/inductive.ml +++ b/kernel/inductive.ml @@ -668,8 +668,8 @@ let inductive_of_mutfix env ((nvect,bodynum),(names,types,bodies as recdef)) = or bodynum >= nbfix then anomaly "Ill-formed fix term"; let fixenv = push_rec_types recdef env in - let raise_err i err = - error_ill_formed_rec_body fixenv err names i in + let raise_err env i err = + error_ill_formed_rec_body env err names i in (* Check the i-th definition with recarg k *) let find_ind i k def = if k < 0 then anomaly "negative recarg position"; @@ -684,11 +684,12 @@ let inductive_of_mutfix env ((nvect,bodynum),(names,types,bodies as recdef)) = (* get the inductive type of the fixpoint *) let (mind, _) = try find_inductive env a - with Not_found -> raise_err i RecursionNotOnInductiveType in + with Not_found -> + raise_err env i (RecursionNotOnInductiveType a) in (mind, (env', b)) else check_occur env' (n+1) b else anomaly "check_one_fix: Bad occurrence of recursive call" - | _ -> raise_err i NotEnoughAbstractionInFixBody in + | _ -> raise_err env i NotEnoughAbstractionInFixBody in check_occur fixenv 1 def in (* Do it on every fixpoint *) let rv = array_map2_i find_ind nvect bodies in |
