diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/byterun/dune | 14 | ||||
| -rw-r--r-- | kernel/inductive.ml | 5 |
2 files changed, 4 insertions, 15 deletions
diff --git a/kernel/byterun/dune b/kernel/byterun/dune index d0145176ea..8d8374a603 100644 --- a/kernel/byterun/dune +++ b/kernel/byterun/dune @@ -1,20 +1,8 @@ -; Dune doesn't use configure's output, but it is still necessary for -; some Coq files to work; will be fixed in the future. -(rule - (targets dune.c_flags) - (mode fallback) - (deps %{project_root}/configure.ml %{project_root}/dev/ocamldebug-coq.run (env_var COQ_CONFIGURE_PREFIX)) - (action (chdir %{project_root} (run %{ocaml} configure.ml -no-ask -native-compiler no)))) - -(env - (dev (c_flags (:include dune.c_flags))) - (release (c_flags (:include dune.c_flags))) - (ireport (c_flags (:include dune.c_flags)))) - (library (name byterun) (synopsis "Coq's Kernel Abstract Reduction Machine [C implementation]") (public_name coq.vm) + (c_flags (:include %{project_root}/config/dune.c_flags)) (c_names coq_fix_code coq_memory coq_values coq_interp)) (rule diff --git a/kernel/inductive.ml b/kernel/inductive.ml index fdd09436d4..2966acae45 100644 --- a/kernel/inductive.ml +++ b/kernel/inductive.ml @@ -1124,9 +1124,10 @@ let inductive_of_mutfix env ((nvect,bodynum),(names,types,bodies as recdef)) = | _ -> raise_err env i NotEnoughAbstractionInFixBody in let ((ind, _), _) as res = check_occur fixenv 1 def in - let _, ind = lookup_mind_specif env ind in + let _, mip = lookup_mind_specif env ind in (* recursive sprop means non record with projections -> squashed *) - if Sorts.Irrelevant == ind.mind_relevance + if mip.mind_relevance == Sorts.Irrelevant && + not (Environ.is_type_in_type env (GlobRef.IndRef ind)) then begin if names.(i).Context.binder_relevance == Sorts.Relevant |
