From c20eb3a73c4868533bb50555d1979f5b9d821256 Mon Sep 17 00:00:00 2001 From: Pierre-Marie Pédrot Date: Thu, 20 Jun 2019 08:22:28 +0200 Subject: Enforce that opaque entries carry their type. --- kernel/entries.ml | 2 +- kernel/safe_typing.ml | 2 +- kernel/term_typing.ml | 2 -- 3 files changed, 2 insertions(+), 4 deletions(-) (limited to 'kernel') diff --git a/kernel/entries.ml b/kernel/entries.ml index 62aab7c391..6016510189 100644 --- a/kernel/entries.ml +++ b/kernel/entries.ml @@ -83,7 +83,7 @@ type 'a opaque_entry = { opaque_entry_secctx : Constr.named_context option; (* State id on which the completion of type checking is reported *) opaque_entry_feedback : Stateid.t option; - opaque_entry_type : types option; + opaque_entry_type : types; opaque_entry_universes : universes_entry; opaque_entry_inline_code : bool } diff --git a/kernel/safe_typing.ml b/kernel/safe_typing.ml index 5dac469a40..6cb7a22a15 100644 --- a/kernel/safe_typing.ml +++ b/kernel/safe_typing.ml @@ -693,7 +693,7 @@ let constant_entry_of_side_effect eff = opaque_entry_body = Future.from_val ((p, Univ.ContextSet.empty), ()); opaque_entry_secctx = None; opaque_entry_feedback = None; - opaque_entry_type = Some cb.const_type; + opaque_entry_type = cb.const_type; opaque_entry_universes = univs; opaque_entry_inline_code = cb.const_inline_code } else diff --git a/kernel/term_typing.ml b/kernel/term_typing.ml index 2c31a237ce..86d79ba044 100644 --- a/kernel/term_typing.ml +++ b/kernel/term_typing.ml @@ -117,7 +117,6 @@ let infer_declaration (type a) ~(trust : a trust) env (dcl : a constant_entry) = | OpaqueEntry ({ opaque_entry_type = typ; opaque_entry_universes = Monomorphic_entry univs; _ } as c) -> - let typ = match typ with None -> assert false | Some typ -> typ in let env = push_context_set ~strict:true univs env in let { opaque_entry_body = body; opaque_entry_feedback = feedback_id; _ } = c in let tyj = Typeops.infer_type env typ in @@ -159,7 +158,6 @@ let infer_declaration (type a) ~(trust : a trust) env (dcl : a constant_entry) = | OpaqueEntry ({ opaque_entry_type = typ; opaque_entry_universes = Polymorphic_entry (nas, uctx); _ } as c) -> - let typ = match typ with None -> assert false | Some typ -> typ in let { opaque_entry_body = body; opaque_entry_feedback = feedback_id; _ } = c in let env = push_context ~strict:false uctx env in let tj = Typeops.infer_type env typ in -- cgit v1.2.3