aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorJason Gross2019-10-25 15:28:37 -0400
committerJason Gross2019-10-29 12:32:57 -0400
commitc59815c860a11948359e96ecc51d566bb5e5d8fb (patch)
treebdd7e2d7dbcf38e6e2d27de71a3d94dc80f46347 /doc
parente9dddcb2b5297f2e601a2e2d65a131ee5fde19e4 (diff)
`assert_succeeds`&`assert_fails`: multisuccess fix
These tactics now work correctly with multisuccess tactics by wrapping the tactic argument in `once`. Fixes #10965
Diffstat (limited to 'doc')
-rw-r--r--doc/changelog/04-tactics/10966-assert-succeeds-once.rst6
-rw-r--r--doc/sphinx/proof-engine/ltac.rst2
2 files changed, 7 insertions, 1 deletions
diff --git a/doc/changelog/04-tactics/10966-assert-succeeds-once.rst b/doc/changelog/04-tactics/10966-assert-succeeds-once.rst
new file mode 100644
index 0000000000..d97c69737e
--- /dev/null
+++ b/doc/changelog/04-tactics/10966-assert-succeeds-once.rst
@@ -0,0 +1,6 @@
+- The :tacn:`assert_succeeds` and :tacn:`assert_fails` tactics now
+ only run their tactic argument once, even if it has multiple
+ successes. This prevents blow-up and looping from using
+ multisuccess tactics with :tacn:`assert_succeeds`. (`#10966
+ <https://github.com/coq/coq/pull/10966>`_ fixes `#10965
+ <https://github.com/coq/coq/issues/10965>`_, by Jason Gross).
diff --git a/doc/sphinx/proof-engine/ltac.rst b/doc/sphinx/proof-engine/ltac.rst
index 79eddbd3b5..aa4e90560b 100644
--- a/doc/sphinx/proof-engine/ltac.rst
+++ b/doc/sphinx/proof-engine/ltac.rst
@@ -516,7 +516,7 @@ Coq provides a derived tactic to check that a tactic *fails*:
.. tacn:: assert_fails @ltac_expr
:name: assert_fails
- This behaves like :n:`tryif @ltac_expr then fail 0 tac "succeeds" else idtac`.
+ This behaves like :n:`tryif once @ltac_expr then fail 0 tac "succeeds" else idtac`.
Checking the success
~~~~~~~~~~~~~~~~~~~~