aboutsummaryrefslogtreecommitdiff
path: root/interp/constrintern.ml
diff options
context:
space:
mode:
authorMaxime Dénès2017-05-25 16:03:10 +0200
committerMaxime Dénès2017-05-25 16:03:10 +0200
commit48d56f49b1db47f393ef3e0f31d1b22adf497afa (patch)
tree19a2ba42ff9bd34f082eebd14883708739e996b4 /interp/constrintern.ml
parent2f75922ad52e334b7bcc3a26c2ecb1602c85fc2f (diff)
parent19dce55540ba6b8bff2cf14073ff4112cb5d4ff2 (diff)
Merge PR#608: Allow Ltac2 as a plugin
Diffstat (limited to 'interp/constrintern.ml')
-rw-r--r--interp/constrintern.ml10
1 files changed, 7 insertions, 3 deletions
diff --git a/interp/constrintern.ml b/interp/constrintern.ml
index 3b3dccc998..c7078cf2a0 100644
--- a/interp/constrintern.ml
+++ b/interp/constrintern.ml
@@ -69,6 +69,7 @@ type internalization_env =
type ltac_sign = {
ltac_vars : Id.Set.t;
ltac_bound : Id.Set.t;
+ ltac_extra : Genintern.Store.t;
}
let interning_grammar = ref false
@@ -1733,12 +1734,14 @@ let internalize globalenv env allow_patvar (_, ntnvars as lvar) c =
| Some gen ->
let (ltacvars, ntnvars) = lvar in
let ntnvars = Id.Map.domain ntnvars in
+ let extra = ltacvars.ltac_extra in
let lvars = Id.Set.union ltacvars.ltac_bound ltacvars.ltac_vars in
let lvars = Id.Set.union lvars ntnvars in
- let lvars = Id.Set.union lvars env.ids in
+ let ltacvars = Id.Set.union lvars env.ids in
let ist = {
- Genintern.ltacvars = lvars;
- genv = globalenv;
+ Genintern.genv = globalenv;
+ ltacvars;
+ extra;
} in
let (_, glb) = Genintern.generic_intern ist gen in
Some glb
@@ -1937,6 +1940,7 @@ let scope_of_type_kind = function
let empty_ltac_sign = {
ltac_vars = Id.Set.empty;
ltac_bound = Id.Set.empty;
+ ltac_extra = Genintern.Store.empty;
}
let intern_gen kind env