aboutsummaryrefslogtreecommitdiff
path: root/tactics
diff options
context:
space:
mode:
authorEmilio Jesus Gallego Arias2018-04-09 01:33:31 +0200
committerEmilio Jesus Gallego Arias2018-04-13 12:13:48 +0200
commit2243c25c79ab19876ad74452c9cecc7dcc88c67c (patch)
treef32573eb7d7c4dbdb4493e186bed87c80e61a747 /tactics
parentb68e0b4f9ba37d1c2fa5921e1d934b4b38bfdfe7 (diff)
[ltac] Deprecate nameless fix/cofix.
LTAC's `fix` and `cofix` do require access to the proof object inside the tactic monad when used without a name. This is a bit inconvenient as we aim to make the handling of the proof object purely functional. Alternatives have been discussed in #7196, and it seems that deprecating the nameless forms may have the best cost/benefit ratio, so opening this PR for discussion. See also #6171.
Diffstat (limited to 'tactics')
-rw-r--r--tactics/tactics.ml6
1 files changed, 6 insertions, 0 deletions
diff --git a/tactics/tactics.ml b/tactics/tactics.ml
index d0ec3358a6..6561a86c2c 100644
--- a/tactics/tactics.ml
+++ b/tactics/tactics.ml
@@ -557,8 +557,13 @@ let mutual_fix f n rest j = Proofview.Goal.enter begin fun gl ->
end
end
+let warning_nameless_fix =
+ CWarnings.create ~name:"nameless-fix" ~category:"deprecated" Pp.(fun () ->
+ str "fix/cofix without a name are deprecated, please use the named version.")
+
let fix ido n = match ido with
| None ->
+ warning_nameless_fix ();
Proofview.Goal.enter begin fun gl ->
let name = Proof_global.get_current_proof_name () in
let id = new_fresh_id Id.Set.empty name gl in
@@ -610,6 +615,7 @@ end
let cofix ido = match ido with
| None ->
+ warning_nameless_fix ();
Proofview.Goal.enter begin fun gl ->
let name = Proof_global.get_current_proof_name () in
let id = new_fresh_id Id.Set.empty name gl in