aboutsummaryrefslogtreecommitdiff
path: root/interp
diff options
context:
space:
mode:
Diffstat (limited to 'interp')
-rw-r--r--interp/syntax_def.ml9
1 files changed, 7 insertions, 2 deletions
diff --git a/interp/syntax_def.ml b/interp/syntax_def.ml
index 25dc54b370..3769362b17 100644
--- a/interp/syntax_def.ml
+++ b/interp/syntax_def.ml
@@ -39,10 +39,15 @@ let load_syntax_constant i ((sp,kn),(local,c,onlyparse)) =
add_syntax_constant kn c;
Nametab.push_syntactic_definition (Nametab.Until i) sp kn;
if not onlyparse then
+ (* Declare it to be used as long name *)
Notation.declare_uninterpretation (Notation.SynDefRule kn) ([],c)
-let open_syntax_constant i ((sp,kn),c) =
- Nametab.push_syntactic_definition (Nametab.Exactly i) sp kn
+let open_syntax_constant i ((sp,kn),(_,c,onlyparse)) =
+ Nametab.push_syntactic_definition (Nametab.Exactly i) sp kn;
+ if not onlyparse then
+ (* Redeclare it to be used as (short) name in case an other (distfix)
+ notation was declared inbetween *)
+ Notation.declare_uninterpretation (Notation.SynDefRule kn) ([],c)
let cache_syntax_constant d =
load_syntax_constant 1 d