aboutsummaryrefslogtreecommitdiff
path: root/kernel/environ.ml
diff options
context:
space:
mode:
authorMaxime Dénès2018-06-23 12:48:08 +0200
committerMaxime Dénès2018-06-23 12:48:08 +0200
commit38b180984b09840e0b1023cc441917acc77dd438 (patch)
tree789a228bc09ea801116745dff353483d22fa605c /kernel/environ.ml
parentf337d237c97db0b29619e15d21a022bba953a794 (diff)
parent50105b474cb2daaad997ebbd4eab096600dadcd9 (diff)
Merge PR #7750: Handle mutual records in the kernel
Diffstat (limited to 'kernel/environ.ml')
-rw-r--r--kernel/environ.ml11
1 files changed, 6 insertions, 5 deletions
diff --git a/kernel/environ.ml b/kernel/environ.ml
index 2d6c9117b3..0e34a71650 100644
--- a/kernel/environ.ml
+++ b/kernel/environ.ml
@@ -515,11 +515,12 @@ let template_polymorphic_pind (ind,u) env =
let add_mind_key kn (mind, _ as mind_key) env =
let new_inds = Mindmap_env.add kn mind_key env.env_globals.env_inductives in
let new_projections = match mind.mind_record with
- | None | Some None -> env.env_globals.env_projections
- | Some (Some (id, kns, pbs)) ->
- Array.fold_left2 (fun projs kn pb ->
- Cmap_env.add kn pb projs)
- env.env_globals.env_projections kns pbs
+ | NotRecord | FakeRecord -> env.env_globals.env_projections
+ | PrimRecord projs ->
+ Array.fold_left (fun accu (id, kns, pbs) ->
+ Array.fold_left2 (fun accu kn pb ->
+ Cmap_env.add kn pb accu) accu kns pbs)
+ env.env_globals.env_projections projs
in
let new_globals =
{ env.env_globals with