aboutsummaryrefslogtreecommitdiffhomepage
path: root/interp/constrintern.ml
diff options
context:
space:
mode:
authorGravatar Hugo Herbelin <Hugo.Herbelin@inria.fr>2017-11-21 18:03:11 +0100
committerGravatar Hugo Herbelin <Hugo.Herbelin@inria.fr>2018-02-20 10:03:02 +0100
commit09122b77b4f556281fec338cbb2ec43c5520dc8d (patch)
tree77e750dcf6179474c19397451871fb9e6aca3566 /interp/constrintern.ml
parentaec63ba9c8f6840d98ba731640a786138d836343 (diff)
Again one more step in fixing #5762 ("where" clause).
We enforce that variables of the notation hide the variables in the implicit-arguments map. Will be useful when there will be a special map of single binders when interpreting notations.
Diffstat (limited to 'interp/constrintern.ml')
-rw-r--r--interp/constrintern.ml1
1 files changed, 1 insertions, 0 deletions
diff --git a/interp/constrintern.ml b/interp/constrintern.ml
index 4afe301dd..b52a28029 100644
--- a/interp/constrintern.ml
+++ b/interp/constrintern.ml
@@ -2161,6 +2161,7 @@ let intern_constr_pattern env ?(as_type=false) ?(ltacvars=empty_ltac_sign) c =
let interp_notation_constr env ?(impls=empty_internalization_env) nenv a =
(* [vl] is intended to remember the scope of the free variables of [a] *)
let vl = Id.Map.map (fun typ -> (ref true, ref None, typ)) nenv.ninterp_var_type in
+ let impls = Id.Map.fold (fun id _ impls -> Id.Map.remove id impls) nenv.ninterp_var_type impls in
let c = internalize (Global.env()) {ids = extract_ids env; unb = false;
tmp_scope = None; scopes = []; impls = impls}
false (empty_ltac_sign, vl) a in