diff options
author | 2016-09-12 17:22:03 +0200 | |
---|---|---|
committer | 2016-09-12 17:22:03 +0200 | |
commit | 90e5945e1666540bc18e7a9b831d136041f4e487 (patch) | |
tree | 9af1cee10f24c6114c196ba4e1302b2931899f7d /interp/notation_ops.ml | |
parent | 74f8381ed943f1e786b32c49fb31f14fd488dc9c (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.ml | 3 |
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) |