aboutsummaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/byterun/dune14
-rw-r--r--kernel/inductive.ml5
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