aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--interp/notation.ml2
-rw-r--r--plugins/setoid_ring/newring.ml4
-rw-r--r--test-suite/bugs/closed/bug_9851.v18
-rw-r--r--test-suite/output/locate.out3
-rw-r--r--test-suite/output/locate.v3
5 files changed, 27 insertions, 3 deletions
diff --git a/interp/notation.ml b/interp/notation.ml
index ea2173860d..70d3e4175e 100644
--- a/interp/notation.ml
+++ b/interp/notation.ml
@@ -1836,7 +1836,7 @@ let locate_notation prglob ntn scope =
str "Notation" ++ fnl () ++
prlist_with_sep fnl (fun (ntn,l) ->
let scope = find_default ntn scopes in
- prlist
+ prlist_with_sep fnl
(fun (sc,r,(_,df)) ->
hov 0 (
pr_notation_info prglob df r ++
diff --git a/plugins/setoid_ring/newring.ml b/plugins/setoid_ring/newring.ml
index 76c393450b..e3e787df2c 100644
--- a/plugins/setoid_ring/newring.ml
+++ b/plugins/setoid_ring/newring.ml
@@ -139,8 +139,8 @@ let _ = add_tacdef false ((Loc.ghost,Id.of_string"ring_closed_term"
let ic c =
let env = Global.env() in
let sigma = Evd.from_env env in
- let sigma, c = Constrintern.interp_open_constr env sigma c in
- (sigma, c)
+ let c, uctx = Constrintern.interp_constr env sigma c in
+ (Evd.from_ctx uctx, c)
let ic_unsafe c = (*FIXME remove *)
let env = Global.env() in
diff --git a/test-suite/bugs/closed/bug_9851.v b/test-suite/bugs/closed/bug_9851.v
new file mode 100644
index 0000000000..1f57ce8471
--- /dev/null
+++ b/test-suite/bugs/closed/bug_9851.v
@@ -0,0 +1,18 @@
+Require Import Ring_base.
+Record word : Type := Build_word
+ { rep : Type;
+ zero : rep; one: rep;
+ add : rep -> rep -> rep;
+ sub : rep -> rep -> rep;
+ opp : rep -> rep;
+ mul : rep -> rep -> rep;
+ }.
+Axiom rth
+ : forall (word : word ),
+ @ring_theory (@rep word)
+ (@zero word)
+ (@one word) (@add word)
+ (@mul word) (@sub word)
+ (@opp word) (@eq (@rep word)).
+
+Fail Add Ring wring: (@rth _).
diff --git a/test-suite/output/locate.out b/test-suite/output/locate.out
new file mode 100644
index 0000000000..473db2d312
--- /dev/null
+++ b/test-suite/output/locate.out
@@ -0,0 +1,3 @@
+Notation
+"b1 && b2" := if b1 then b2 else false (default interpretation)
+"x && y" := andb x y : bool_scope
diff --git a/test-suite/output/locate.v b/test-suite/output/locate.v
new file mode 100644
index 0000000000..af8b0ee193
--- /dev/null
+++ b/test-suite/output/locate.v
@@ -0,0 +1,3 @@
+Set Printing Width 400.
+Notation "b1 && b2" := (if b1 then b2 else false).
+Locate "&&".