aboutsummaryrefslogtreecommitdiff
path: root/plugins/syntax/g_string.mlg
diff options
context:
space:
mode:
authorEmilio Jesus Gallego Arias2018-10-26 10:05:58 +0200
committerEmilio Jesus Gallego Arias2019-03-27 23:56:18 +0100
commitbd5689d4e9294d66b3eb4ecdc0af3ad7d65fe52d (patch)
tree46b44ee2f005710509ab847e8db7142dd2cf2b13 /plugins/syntax/g_string.mlg
parent7efaf86882488034e6545505e1eda7d6e1a6ce14 (diff)
[coqpp] [ltac] Adapt to removal of imperative proof state.
We add state handling to tactics. TODO: - [rewrite] `add_morphism_infer` creates problems as it opens a proof. - [g_obligations] with_tac
Diffstat (limited to 'plugins/syntax/g_string.mlg')
-rw-r--r--plugins/syntax/g_string.mlg20
1 files changed, 17 insertions, 3 deletions
diff --git a/plugins/syntax/g_string.mlg b/plugins/syntax/g_string.mlg
index 171e0e213d..cc8c13a84b 100644
--- a/plugins/syntax/g_string.mlg
+++ b/plugins/syntax/g_string.mlg
@@ -19,8 +19,22 @@ open Stdarg
}
VERNAC COMMAND EXTEND StringNotation CLASSIFIED AS SIDEFF
- | #[ locality = Attributes.locality; ] [ "String" "Notation" reference(ty) reference(f) reference(g) ":"
+ | #[ locality = Attributes.locality; ] ![proof] [ "String" "Notation" reference(ty) reference(f) reference(g) ":"
ident(sc) ] ->
- { let (sigma, env) = Pfedit.get_current_context () in
- vernac_string_notation env sigma (Locality.make_module_locality locality) ty f g (Id.to_string sc) }
+ { (* It is a bug to use the proof context here, but at the request of
+ * the reviewers we keep this broken behavior for now. The Global env
+ * should be used instead, and the `env, sigma` parameteter to the
+ * numeral notation command removed.
+ *)
+ fun ~pstate ->
+ let sigma, env = match pstate with
+ | None ->
+ let env = Global.env () in
+ let sigma = Evd.from_env env in
+ sigma, env
+ | Some pstate ->
+ Pfedit.get_current_context pstate
+ in
+ vernac_string_notation env sigma (Locality.make_module_locality locality) ty f g (Id.to_string sc);
+ pstate }
END