aboutsummaryrefslogtreecommitdiffhomepage
path: root/kernel/inductive.ml
diff options
context:
space:
mode:
authorGravatar Maxime Dénès <mail@maximedenes.fr>2018-03-09 10:21:10 +0100
committerGravatar Maxime Dénès <mail@maximedenes.fr>2018-03-09 10:21:10 +0100
commit49dd2bddc03ce64707cb93d450127152ad6eece6 (patch)
tree8bf555876d6a7177ad90442acba264a15acacfd0 /kernel/inductive.ml
parent2a0538da5e81e21ef05120bba5dd7e25dbf9e6fa (diff)
parent7ceed3c76e5ac752321827300f80ee974acbb54c (diff)
Merge PR #407: Fix SR breakage due to allowing fixpoints on non-rec values
Diffstat (limited to 'kernel/inductive.ml')
-rw-r--r--kernel/inductive.ml3
1 files changed, 3 insertions, 0 deletions
diff --git a/kernel/inductive.ml b/kernel/inductive.ml
index 91c042130..9bed598bb 100644
--- a/kernel/inductive.ml
+++ b/kernel/inductive.ml
@@ -1069,6 +1069,9 @@ let inductive_of_mutfix env ((nvect,bodynum),(names,types,bodies as recdef)) =
try find_inductive env a
with Not_found ->
raise_err env i (RecursionNotOnInductiveType a) in
+ let mib,_ = lookup_mind_specif env (out_punivs mind) in
+ if mib.mind_finite != Finite then
+ raise_err env i (RecursionNotOnInductiveType a);
(mind, (env', b))
else check_occur env' (n+1) b
else anomaly ~label:"check_one_fix" (Pp.str "Bad occurrence of recursive call.")