aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmilio Jesus Gallego Arias2020-04-21 13:45:01 +0200
committerEmilio Jesus Gallego Arias2020-05-07 18:05:14 +0200
commitad84e6948a86db491a00bb92ec3e00a9a743b1f9 (patch)
tree7a85b4dfe31bfc26b97baaa6acd306e9ff144bb8
parente4bfbdfc4b4944d6e6d702eb732bce24f962e67f (diff)
[declare] Remove fix_exn internal access.
-rw-r--r--vernac/declare.ml13
-rw-r--r--vernac/declare.mli4
-rw-r--r--vernac/declareDef.ml7
3 files changed, 11 insertions, 13 deletions
diff --git a/vernac/declare.ml b/vernac/declare.ml
index 95e573a671..458002f03c 100644
--- a/vernac/declare.ml
+++ b/vernac/declare.ml
@@ -495,6 +495,17 @@ let declare_constant ?(local = ImportDefaultBehavior) ~name ~kind cd =
let () = register_constant kn kind local in
kn
+let get_cd_fix_exn = function
+ | DefinitionEntry de ->
+ Future.fix_exn_of de.proof_entry_body
+ | _ -> fun x -> x
+
+let declare_constant ?local ~name ~kind cd =
+ try declare_constant ?local ~name ~kind cd
+ with exn ->
+ let exn = Exninfo.capture exn in
+ Exninfo.iraise (get_cd_fix_exn cd exn)
+
let declare_private_constant ?role ?(local = ImportDefaultBehavior) ~name ~kind de =
let kn, eff =
let de =
@@ -620,8 +631,6 @@ module Internal = struct
let set_opacity ~opaque entry =
{ entry with proof_entry_opaque = opaque }
- let get_fix_exn entry = Future.fix_exn_of entry.proof_entry_body
-
let rec decompose len c t accu =
let open Constr in
let open Context.Rel.Declaration in
diff --git a/vernac/declare.mli b/vernac/declare.mli
index a297f25868..df81291e7e 100644
--- a/vernac/declare.mli
+++ b/vernac/declare.mli
@@ -211,10 +211,6 @@ module Internal : sig
(* Overriding opacity is indeed really hacky *)
val set_opacity : opaque:bool -> 'a proof_entry -> 'a proof_entry
- (* TODO: This is only used in DeclareDef to forward the fix to
- hooks, should eventually go away *)
- val get_fix_exn : 'a proof_entry -> Future.fix_exn
-
val shrink_entry : EConstr.named_context -> 'a proof_entry -> 'a proof_entry * Constr.constr list
type constant_obj
diff --git a/vernac/declareDef.ml b/vernac/declareDef.ml
index 1809c2bc91..90d88b95a2 100644
--- a/vernac/declareDef.ml
+++ b/vernac/declareDef.ml
@@ -59,13 +59,6 @@ let declare_entry ~name ~scope ~kind ?hook ?(obls=[]) ~impargs ~uctx entry =
Option.iter (fun hook -> Hook.call ~hook { Hook.S.uctx; obls; scope; dref }) hook;
dref
-let declare_entry ~name ~scope ~kind ?hook ?obls ~impargs ~uctx entry =
- try declare_entry ~name ~scope ~kind ?hook ?obls ~impargs ~uctx entry
- with exn ->
- let exn = Exninfo.capture exn in
- let fix_exn = Declare.Internal.get_fix_exn entry in
- Exninfo.iraise (fix_exn exn)
-
let mutual_make_bodies ~fixitems ~rec_declaration ~possible_indexes =
match possible_indexes with
| Some possible_indexes ->