aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmilio Jesus Gallego Arias2019-08-22 00:58:51 +0200
committerEmilio Jesus Gallego Arias2019-10-29 16:59:09 +0100
commit6817b634825638e6ff6c0b41dbc61f8410c55f43 (patch)
tree6c56d2df27a9310f89737e7d6a82d55160e3ab5e
parentf0c393b57e89d01fd409008d3b88ea3a2ed87236 (diff)
[declare] Use helper function for `fix_exn` instead of relying on internals.
-rw-r--r--dev/ci/user-overlays/10681-ejgallego-proof+private_entry.sh6
-rw-r--r--tactics/declare.ml2
-rw-r--r--tactics/declare.mli4
-rw-r--r--vernac/declareDef.ml2
-rw-r--r--vernac/lemmas.ml2
5 files changed, 14 insertions, 2 deletions
diff --git a/dev/ci/user-overlays/10681-ejgallego-proof+private_entry.sh b/dev/ci/user-overlays/10681-ejgallego-proof+private_entry.sh
new file mode 100644
index 0000000000..f4840c2a83
--- /dev/null
+++ b/dev/ci/user-overlays/10681-ejgallego-proof+private_entry.sh
@@ -0,0 +1,6 @@
+if [ "$CI_PULL_REQUEST" = "10681" ] || [ "$CI_BRANCH" = "proof+private_entry" ]; then
+
+ equations_CI_REF=proof+private_entry
+ equations_CI_GITURL=https://github.com/ejgallego/Coq-Equations
+
+fi
diff --git a/tactics/declare.ml b/tactics/declare.ml
index eb17cf67d1..4ef0fb9459 100644
--- a/tactics/declare.ml
+++ b/tactics/declare.ml
@@ -446,6 +446,8 @@ 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/tactics/declare.mli b/tactics/declare.mli
index 0cdf317fe4..c9cad823a4 100644
--- a/tactics/declare.mli
+++ b/tactics/declare.mli
@@ -135,6 +135,10 @@ 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
end
diff --git a/vernac/declareDef.ml b/vernac/declareDef.ml
index f044c025d8..e57c324c9a 100644
--- a/vernac/declareDef.ml
+++ b/vernac/declareDef.ml
@@ -44,7 +44,7 @@ end
(* Locality stuff *)
let declare_definition ~name ~scope ~kind ?hook_data udecl ce imps =
- let fix_exn = Future.fix_exn_of ce.proof_entry_body in
+ let fix_exn = Declare.Internal.get_fix_exn ce in
let gr = match scope with
| Discharge ->
let () =
diff --git a/vernac/lemmas.ml b/vernac/lemmas.ml
index 93c3f900bb..7010aa8c6d 100644
--- a/vernac/lemmas.ml
+++ b/vernac/lemmas.ml
@@ -401,7 +401,7 @@ let finish_proved env sigma idopt po info =
let name = match idopt with
| None -> name
| Some { CAst.v = save_id } -> check_anonymity name save_id; save_id in
- let fix_exn = Future.fix_exn_of const.Declare.proof_entry_body in
+ let fix_exn = Declare.Internal.get_fix_exn const in
let () = try
let const = adjust_guardness_conditions const compute_guard in
let should_suggest = const.Declare.proof_entry_opaque &&