aboutsummaryrefslogtreecommitdiff
path: root/doc/sphinx/language/extensions
diff options
context:
space:
mode:
authorcoqbot-app[bot]2020-10-26 16:13:30 +0000
committerGitHub2020-10-26 16:13:30 +0000
commit970d9be15074e78ab2961cfe81a668cdf09ea4f4 (patch)
tree8688a81c9564d7fbacec5b2585bb612dff7329a4 /doc/sphinx/language/extensions
parent9e7b0f9f248a1fae8e5681815bd621f182696c4f (diff)
parent3c73900038e904e007e0e83d53ac040dfc951fb0 (diff)
Merge PR #12768: Granting wish #12762: warning on duplicated catch-all pattern-matching clause with unused named variable
Reviewed-by: jfehrle Reviewed-by: vbgl Ack-by: gares
Diffstat (limited to 'doc/sphinx/language/extensions')
-rw-r--r--doc/sphinx/language/extensions/match.rst37
1 files changed, 37 insertions, 0 deletions
diff --git a/doc/sphinx/language/extensions/match.rst b/doc/sphinx/language/extensions/match.rst
index 561262262b..3c1983ee97 100644
--- a/doc/sphinx/language/extensions/match.rst
+++ b/doc/sphinx/language/extensions/match.rst
@@ -290,6 +290,43 @@ This example emphasizes what the printing settings offer.
Print snd.
+Conventions about unused pattern-matching variables
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Pattern-matching variables that are not used on the right-hand side of ``=>`` are
+considered the sign of a potential error. For instance, it could
+result from an undetected mispelled constant constructor. By default,
+a warning is issued in such situations.
+
+.. warn:: Unused variable @ident catches more than one case.
+
+ This indicates that an unused pattern variable :token:`ident`
+ occurs in a pattern-matching clause used to complete at least two
+ cases of the pattern-matching problem.
+
+ The warning can be deactivated by using a variable name starting
+ with ``_`` or by setting ``Set Warnings
+ "-unused-pattern-matching-variable"``.
+
+ Here is an example where the warning is activated.
+
+ .. example::
+
+ .. coqtop:: none
+
+ Set Warnings "-unused-pattern-matching-variable".
+
+ .. coqtop:: all
+
+ Definition is_zero (o : option nat) := match o with
+ | Some 0 => true
+ | x => false
+ end.
+
+ .. coqtop:: none
+
+ Set Warnings "+unused-pattern-matching-variable".
+
Patterns
--------