diff options
author | Hugo Herbelin <Hugo.Herbelin@inria.fr> | 2017-11-21 18:03:11 +0100 |
---|---|---|
committer | Hugo Herbelin <Hugo.Herbelin@inria.fr> | 2018-02-20 10:03:02 +0100 |
commit | 09122b77b4f556281fec338cbb2ec43c5520dc8d (patch) | |
tree | 77e750dcf6179474c19397451871fb9e6aca3566 /interp/constrintern.ml | |
parent | aec63ba9c8f6840d98ba731640a786138d836343 (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.ml | 1 |
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 |