diff options
| -rw-r--r-- | kernel/indtypes.ml | 10 | ||||
| -rw-r--r-- | test-suite/bugs/closed/3808.v | 2 |
2 files changed, 8 insertions, 4 deletions
diff --git a/kernel/indtypes.ml b/kernel/indtypes.ml index ea575e1e0d..799471c68a 100644 --- a/kernel/indtypes.ml +++ b/kernel/indtypes.ml @@ -164,10 +164,12 @@ let infer_constructor_packet env_ar_par ctx params lc = (* If indices matter *) let cumulate_arity_large_levels env sign = fst (List.fold_right - (fun (_,_,t as d) (lev,env) -> - let tj = infer_type env t in - let u = univ_of_sort tj.utj_type in - (Universe.sup u lev, push_rel d env)) + (fun (_,b,t as d) (lev,env) -> + if Option.is_empty b then + let tj = infer_type env t in + let u = univ_of_sort tj.utj_type in + (Universe.sup u lev, push_rel d env) + else lev, push_rel d env) sign (Universe.type0m,env)) let is_impredicative env u = diff --git a/test-suite/bugs/closed/3808.v b/test-suite/bugs/closed/3808.v new file mode 100644 index 0000000000..6e19ddf8dc --- /dev/null +++ b/test-suite/bugs/closed/3808.v @@ -0,0 +1,2 @@ +Inductive Foo : (let enforce := (fun x => x) : Type@{j} -> Type@{i} in Type@{i}) + := foo : Foo.
\ No newline at end of file |
