aboutsummaryrefslogtreecommitdiff
path: root/interp
diff options
context:
space:
mode:
authorGaëtan Gilbert2020-02-24 15:03:08 +0100
committerGaëtan Gilbert2020-04-13 15:18:18 +0200
commit8e3abd852c9a1c65738be63215e94014550f2c5a (patch)
tree1cdd4d19b7a1e8cc828cc608ac8c6f56dffebe9e /interp
parentb98ef72ee300e52dd2c67f03da358e3c2102cdbb (diff)
correctly open objects for Names filters
Diffstat (limited to 'interp')
-rw-r--r--interp/syntax_def.ml9
1 files changed, 8 insertions, 1 deletions
diff --git a/interp/syntax_def.ml b/interp/syntax_def.ml
index d6aa527f4d..7184f5ea29 100644
--- a/interp/syntax_def.ml
+++ b/interp/syntax_def.ml
@@ -67,11 +67,18 @@ let subst_syntax_constant (subst,(local,syndef)) =
let classify_syntax_constant (local,_ as o) =
if local then Dispose else Substitute o
+let filtered_open_syntax_constant f i ((_,kn),_ as o) =
+ let in_f = match f with
+ | Unfiltered -> true
+ | Names ns -> Globnames.(ExtRefSet.mem (SynDef kn) ns)
+ in
+ if in_f then open_syntax_constant i o
+
let in_syntax_constant : (bool * syndef) -> obj =
declare_object {(default_object "SYNDEF") with
cache_function = cache_syntax_constant;
load_function = load_syntax_constant;
- open_function = todo_filter open_syntax_constant;
+ open_function = filtered_open_syntax_constant;
subst_function = subst_syntax_constant;
classify_function = classify_syntax_constant }