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 /plugins | |
| parent | f337d237c97db0b29619e15d21a022bba953a794 (diff) | |
| parent | 50105b474cb2daaad997ebbd4eab096600dadcd9 (diff) | |
Merge PR #7750: Handle mutual records in the kernel
Diffstat (limited to 'plugins')
| -rw-r--r-- | plugins/extraction/extraction.ml | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/plugins/extraction/extraction.ml b/plugins/extraction/extraction.ml index 3a61c7747d..71e09992cc 100644 --- a/plugins/extraction/extraction.ml +++ b/plugins/extraction/extraction.ml @@ -488,7 +488,7 @@ and extract_really_ind env kn mib = Int.equal (List.length l) 1 && not (type_mem_kn kn (List.hd l)) then raise (I Singleton); if List.is_empty l then raise (I Standard); - if Option.is_empty mib.mind_record then raise (I Standard); + if mib.mind_record == Declarations.NotRecord then raise (I Standard); (* Now we're sure it's a record. *) (* First, we find its field names. *) let rec names_prod t = match Constr.kind t with @@ -1069,8 +1069,7 @@ let extract_constant env kn cb = | false -> mk_typ (get_body c) | true -> let pb = lookup_projection (Projection.make kn false) env in - (** FIXME: handle mutual records *) - let ind = (pb.Declarations.proj_ind, 0) in + let ind = pb.Declarations.proj_ind in let bodies = Inductiveops.legacy_match_projection env ind in let body = bodies.(pb.Declarations.proj_arg) in mk_typ (EConstr.of_constr body)) @@ -1086,8 +1085,7 @@ let extract_constant env kn cb = | false -> mk_def (get_body c) | true -> let pb = lookup_projection (Projection.make kn false) env in - (** FIXME: handle mutual records *) - let ind = (pb.Declarations.proj_ind, 0) in + let ind = pb.Declarations.proj_ind in let bodies = Inductiveops.legacy_match_projection env ind in let body = bodies.(pb.Declarations.proj_arg) in mk_def (EConstr.of_constr body)) |
