aboutsummaryrefslogtreecommitdiffhomepage
path: root/plugins/ssr
diff options
context:
space:
mode:
authorGravatar Emilio Jesus Gallego Arias <e+git@x80.org>2018-02-28 09:43:06 +0100
committerGravatar Maxime Dénès <mail@maximedenes.fr>2018-03-10 10:24:07 +0100
commit99129d2518bd9fe92051aa89138cbb57c839a270 (patch)
treec7185ce535ef7c5438e79f1c4b81464c8367d6c9 /plugins/ssr
parent4d5c7243b4aea5b28358757e2d86c11334da6699 (diff)
[ssreflect] Fix module scoping problems due to packing and mli files.
Unfortunately, mli-only files cannot be included in packs, so we have the weird situation that the scope for `Tacexpr` is wrong. So we cannot address the module as `Ltac_plugin.Tacexpr` but it lives in the global namespace instead. This creates problem when using other modular build/packing strategies [such as #6857] This could be indeed considered a bug in the OCaml compiler. In order to remedy this situation we face two choices: - leave the module out of the pack (!) - create an implementation for the module I chose the second solution as it seems to me like the most sensible choice. cc: #6512.
Diffstat (limited to 'plugins/ssr')
-rw-r--r--plugins/ssr/ssrparser.mli2
-rw-r--r--plugins/ssr/ssrtacticals.mli18
2 files changed, 12 insertions, 8 deletions
diff --git a/plugins/ssr/ssrparser.mli b/plugins/ssr/ssrparser.mli
index 130550388..2ac7c7e26 100644
--- a/plugins/ssr/ssrparser.mli
+++ b/plugins/ssr/ssrparser.mli
@@ -10,6 +10,8 @@
(* This file is (C) Copyright 2006-2015 Microsoft Corporation and Inria. *)
+open Ltac_plugin
+
val ssrtacarg : Tacexpr.raw_tactic_expr Pcoq.Gram.entry
val wit_ssrtacarg : (Tacexpr.raw_tactic_expr, Tacexpr.glob_tactic_expr, Geninterp.Val.t) Genarg.genarg_type
val pr_ssrtacarg : 'a -> 'b -> (Notation_term.tolerability -> 'c) -> 'c
diff --git a/plugins/ssr/ssrtacticals.mli b/plugins/ssr/ssrtacticals.mli
index 84b184713..a5636ad0f 100644
--- a/plugins/ssr/ssrtacticals.mli
+++ b/plugins/ssr/ssrtacticals.mli
@@ -10,21 +10,23 @@
(* This file is (C) Copyright 2006-2015 Microsoft Corporation and Inria. *)
+open Ltac_plugin
+open Ssrmatching_plugin
val tclSEQAT :
- Ltac_plugin.Tacinterp.interp_sign ->
- Ltac_plugin.Tacinterp.Value.t ->
+ Tacinterp.interp_sign ->
+ Tacinterp.Value.t ->
Ssrast.ssrdir ->
int Misctypes.or_var *
- (('a * Ltac_plugin.Tacinterp.Value.t option list) *
- Ltac_plugin.Tacinterp.Value.t option) ->
+ (('a * Tacinterp.Value.t option list) *
+ Tacinterp.Value.t option) ->
Tacmach.tactic
val tclCLAUSES :
unit Proofview.tactic ->
(Ssrast.ssrhyps *
((Ssrast.ssrhyp_or_id * string) *
- Ssrmatching_plugin.Ssrmatching.cpattern option)
+ Ssrmatching.cpattern option)
option)
list * Ssrast.ssrclseq ->
unit Proofview.tactic
@@ -34,12 +36,12 @@ val hinttac :
bool -> bool * Tacinterp.Value.t option list -> Ssrast.v82tac
val ssrdotac :
- Ltac_plugin.Tacinterp.interp_sign ->
+ Tacinterp.interp_sign ->
((int Misctypes.or_var * Ssrast.ssrmmod) *
- (bool * Ltac_plugin.Tacinterp.Value.t option list)) *
+ (bool * Tacinterp.Value.t option list)) *
((Ssrast.ssrhyps *
((Ssrast.ssrhyp_or_id * string) *
- Ssrmatching_plugin.Ssrmatching.cpattern option)
+ Ssrmatching.cpattern option)
option)
list * Ssrast.ssrclseq) ->
Goal.goal Evd.sigma -> Goal.goal list Evd.sigma