aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Herbelin2019-12-10 23:10:26 +0100
committerHugo Herbelin2019-12-10 23:53:05 +0100
commit6bff5ed8ef6ef6148e035f80e26e60d050e79c43 (patch)
tree0738581ffbb52c57dab9e34509e0377891fe0da3
parent0ad6e13fc3065c6ff1eefa87c8a709fdf5602b0a (diff)
Fixing #10750 (anomaly of "Print Visibility" on only-printing notations).
-rw-r--r--doc/changelog/03-notations/11276-master+fix10750.rst4
-rw-r--r--interp/notation.ml4
-rw-r--r--test-suite/success/Notations2.v7
3 files changed, 14 insertions, 1 deletions
diff --git a/doc/changelog/03-notations/11276-master+fix10750.rst b/doc/changelog/03-notations/11276-master+fix10750.rst
new file mode 100644
index 0000000000..a1b8594f5f
--- /dev/null
+++ b/doc/changelog/03-notations/11276-master+fix10750.rst
@@ -0,0 +1,4 @@
+- **Fixed:**
+ :cmd:`Print Visibility` was failing in the presence of only-printing notations
+ (`#11276 <https://github.com/coq/coq/pull/11276>`_,
+ by Hugo Herbelin, fixing `#10750 <https://github.com/coq/coq/pull/10750>`_).
diff --git a/interp/notation.ml b/interp/notation.ml
index efb826a76e..5dc1658824 100644
--- a/interp/notation.ml
+++ b/interp/notation.ml
@@ -1872,6 +1872,7 @@ let collect_notations stack =
| SingleNotation ntn ->
if List.mem_f notation_eq ntn knownntn then (all,knownntn)
else
+ try
let { not_interp = (_, r); not_location = (_, df) } =
NotationMap.find ntn (find_scope default_scope).notations in
let all' = match all with
@@ -1879,7 +1880,8 @@ let collect_notations stack =
(s,(df,r)::lonelyntn)::rest
| _ ->
(default_scope,[df,r])::all in
- (all',ntn::knownntn))
+ (all',ntn::knownntn)
+ with Not_found -> (* e.g. if only printing *) (all,knownntn))
([],[]) stack)
let pr_visible_in_scope prglob (scope,ntns) =
diff --git a/test-suite/success/Notations2.v b/test-suite/success/Notations2.v
index d047f7560e..aa439fae12 100644
--- a/test-suite/success/Notations2.v
+++ b/test-suite/success/Notations2.v
@@ -165,3 +165,10 @@ Notation "# x ## t & u" := ((fun x => (x,t)),(fun x => (x,u))) (at level 0, x pa
Check fun y : nat => # (x,z) ## y & y.
End M17.
+
+Module Bug10750.
+
+Notation "#" := 0 (only printing).
+Print Visibility.
+
+End Bug10750.