diff options
-rw-r--r-- | test-suite/output/UnivBinders.out | 12 | ||||
-rw-r--r-- | test-suite/output/UnivBinders.v | 3 | ||||
-rw-r--r-- | vernac/record.ml | 16 |
3 files changed, 15 insertions, 16 deletions
diff --git a/test-suite/output/UnivBinders.out b/test-suite/output/UnivBinders.out index 668b4e578..6f41b2fcf 100644 --- a/test-suite/output/UnivBinders.out +++ b/test-suite/output/UnivBinders.out @@ -149,24 +149,24 @@ inmod@{u} -> Type@{v} (* u v |= *) Applied.infunct is universe polymorphic -axfoo@{i Top.41 Top.42} : Type@{Top.41} -> Type@{i} -(* i Top.41 Top.42 |= *) +axfoo@{i Top.44 Top.45} : Type@{Top.44} -> Type@{i} +(* i Top.44 Top.45 |= *) axfoo is universe polymorphic Argument scope is [type_scope] Expands to: Constant Top.axfoo -axbar@{i Top.41 Top.42} : Type@{Top.42} -> Type@{i} -(* i Top.41 Top.42 |= *) +axbar@{i Top.44 Top.45} : Type@{Top.45} -> Type@{i} +(* i Top.44 Top.45 |= *) axbar is universe polymorphic Argument scope is [type_scope] Expands to: Constant Top.axbar -axfoo' : Type@{Top.44} -> Type@{axbar'.i} +axfoo' : Type@{Top.47} -> Type@{axbar'.i} axfoo' is not universe polymorphic Argument scope is [type_scope] Expands to: Constant Top.axfoo' -axbar' : Type@{Top.44} -> Type@{axbar'.i} +axbar' : Type@{Top.47} -> Type@{axbar'.i} axbar' is not universe polymorphic Argument scope is [type_scope] diff --git a/test-suite/output/UnivBinders.v b/test-suite/output/UnivBinders.v index 266d94ad9..c6efc240a 100644 --- a/test-suite/output/UnivBinders.v +++ b/test-suite/output/UnivBinders.v @@ -44,6 +44,9 @@ Module mono. Monomorphic Definition monomono := Type@{MONOU}. Check monomono. + + Monomorphic Inductive monoind@{i} : Type@{i} := . + Monomorphic Record monorecord@{i} : Type@{i} := mkmonorecord {}. End mono. Check mono.monomono. (* qualified MONOU *) Import mono. diff --git a/vernac/record.ml b/vernac/record.ml index e21f53f55..6e745b2af 100644 --- a/vernac/record.ml +++ b/vernac/record.ml @@ -594,13 +594,12 @@ let definition_structure (kind,cum,poly,finite,(is_coe,({CAst.loc;v=idstruc},pl) let pl, univs, arity, template, implpars, params, implfs, fields = States.with_state_protection (fun () -> typecheck_params_and_fields finite (kind = Class true) idstruc poly pl s ps notations fs) () in - let gr = match kind with + match kind with | Class def -> - let priorities = List.map (fun id -> {hint_priority = id; hint_pattern = None}) priorities in - let gr = declare_class finite def cum pl univs (loc,idstruc) idbuild - implpars params arity template implfs fields is_coe coers priorities in - gr - | _ -> + let priorities = List.map (fun id -> {hint_priority = id; hint_pattern = None}) priorities in + declare_class finite def cum pl univs (loc,idstruc) idbuild + implpars params arity template implfs fields is_coe coers priorities + | _ -> let implfs = List.map (fun impls -> implpars @ Impargs.lift_implicits (succ (List.length params)) impls) implfs @@ -618,7 +617,4 @@ let definition_structure (kind,cum,poly,finite,(is_coe,({CAst.loc;v=idstruc},pl) let ind = declare_structure finite pl univs idstruc idbuild implpars params arity template implfs fields is_coe (List.map (fun coe -> not (Option.is_empty coe)) coers) in - IndRef ind - in - Declare.declare_univ_binders gr pl; - gr + IndRef ind |