aboutsummaryrefslogtreecommitdiff
path: root/vernac/g_vernac.mlg
diff options
context:
space:
mode:
Diffstat (limited to 'vernac/g_vernac.mlg')
-rw-r--r--vernac/g_vernac.mlg17
1 files changed, 14 insertions, 3 deletions
diff --git a/vernac/g_vernac.mlg b/vernac/g_vernac.mlg
index 116cfc6413..5c329f60a9 100644
--- a/vernac/g_vernac.mlg
+++ b/vernac/g_vernac.mlg
@@ -531,6 +531,10 @@ let warn_deprecated_include_type =
CWarnings.create ~name:"deprecated-include-type" ~category:"deprecated"
(fun () -> strbrk "Include Type is deprecated; use Include instead")
+let warn_deprecated_as_ident_kind =
+ CWarnings.create ~name:"deprecated-as-ident-kind" ~category:"deprecated"
+ (fun () -> strbrk "grammar kind \"as ident\" no longer accepts \"_\"; use \"as name\" instead to accept \"_\", too, or silence the warning if you actually intended to accept only identifiers.")
+
}
(* Modules and Sections *)
@@ -1242,7 +1246,13 @@ GRAMMAR EXTEND Gram
] ]
;
explicit_subentry:
- [ [ IDENT "ident" -> { ETIdent } | IDENT "global" -> { ETGlobal }
+ [ [ (* Warning to be turn into an error at the end of deprecation phase (for 8.14) *)
+ IDENT "ident" -> { ETName false }
+ (* To be activated at the end of transitory phase (for 8.15)
+ | IDENT "ident" -> { ETIdent }
+ *)
+ | IDENT "name" -> { ETName true } (* Boolean to remove at the end of transitory phase *)
+ | IDENT "global" -> { ETGlobal }
| IDENT "bigint" -> { ETBigint }
| IDENT "binder" -> { ETBinder true }
| IDENT "constr" -> { ETConstr (InConstrEntry,None,DefaultLevel) }
@@ -1261,8 +1271,9 @@ GRAMMAR EXTEND Gram
| -> { DefaultLevel } ] ]
;
binder_interp:
- [ [ "as"; IDENT "ident" -> { Notation_term.AsIdent }
- | "as"; IDENT "pattern" -> { Notation_term.AsIdentOrPattern }
+ [ [ "as"; IDENT "ident" -> { warn_deprecated_as_ident_kind (); Notation_term.AsIdent }
+ | "as"; IDENT "name" -> { Notation_term.AsName }
+ | "as"; IDENT "pattern" -> { Notation_term.AsNameOrPattern }
| "as"; IDENT "strict"; IDENT "pattern" -> { Notation_term.AsStrictPattern } ] ]
;
END