diff options
| author | Maxime Dénès | 2018-06-23 12:48:08 +0200 |
|---|---|---|
| committer | Maxime Dénès | 2018-06-23 12:48:08 +0200 |
| commit | 38b180984b09840e0b1023cc441917acc77dd438 (patch) | |
| tree | 789a228bc09ea801116745dff353483d22fa605c /kernel/environ.ml | |
| parent | f337d237c97db0b29619e15d21a022bba953a794 (diff) | |
| parent | 50105b474cb2daaad997ebbd4eab096600dadcd9 (diff) | |
Merge PR #7750: Handle mutual records in the kernel
Diffstat (limited to 'kernel/environ.ml')
| -rw-r--r-- | kernel/environ.ml | 11 |
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 |
