aboutsummaryrefslogtreecommitdiffhomepage
path: root/interp/notation_ops.ml
diff options
context:
space:
mode:
authorGravatar Hugo Herbelin <Hugo.Herbelin@inria.fr>2016-09-12 17:22:03 +0200
committerGravatar Hugo Herbelin <Hugo.Herbelin@inria.fr>2016-09-12 17:22:03 +0200
commit90e5945e1666540bc18e7a9b831d136041f4e487 (patch)
tree9af1cee10f24c6114c196ba4e1302b2931899f7d /interp/notation_ops.ml
parent74f8381ed943f1e786b32c49fb31f14fd488dc9c (diff)
Fixing a recursive notation bug raised on coq-club on Sep 12, 2016.
Diffstat (limited to 'interp/notation_ops.ml')
-rw-r--r--interp/notation_ops.ml3
1 files changed, 2 insertions, 1 deletions
diff --git a/interp/notation_ops.ml b/interp/notation_ops.ml
index 5abc7794b..ec4b2e938 100644
--- a/interp/notation_ops.ml
+++ b/interp/notation_ops.ml
@@ -577,7 +577,8 @@ let rec alpha_var id1 id2 = function
let add_env alp (sigma,sigmalist,sigmabinders) var v =
(* Check that no capture of binding variables occur *)
- if List.exists (fun (id,_) ->occur_glob_constr id v) alp then raise No_match;
+ if not (Id.equal ldots_var var) &&
+ List.exists (fun (id,_) -> occur_glob_constr id v) alp then raise No_match;
(* TODO: handle the case of multiple occs in different scopes *)
((var,v)::sigma,sigmalist,sigmabinders)