aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tactics/hints.ml8
-rw-r--r--tactics/hints.mli5
-rw-r--r--vernac/comHints.ml10
3 files changed, 15 insertions, 8 deletions
diff --git a/tactics/hints.ml b/tactics/hints.ml
index 0170487b2e..b8bd459616 100644
--- a/tactics/hints.ml
+++ b/tactics/hints.ml
@@ -1347,6 +1347,14 @@ let add_hints ~locality dbnames h =
| HintsExternEntry (info, tacexp) ->
add_externs info tacexp ~local ~superglobal dbnames
+let hint_constr env sigma ~poly c =
+ let c, diff = prepare_hint true env sigma c in
+ let diff, uctx =
+ if poly then Some diff, Univ.ContextSet.empty
+ else None, diff
+ in
+ IsConstr (c, diff), uctx
+
let expand_constructor_hints env sigma lems =
List.map_append (fun (evd,lem) ->
match EConstr.kind sigma lem with
diff --git a/tactics/hints.mli b/tactics/hints.mli
index 1bbb506761..e74519f12a 100644
--- a/tactics/hints.mli
+++ b/tactics/hints.mli
@@ -199,8 +199,9 @@ val current_pure_db : unit -> hint_db list
val add_hints : locality:Goptions.option_locality -> hint_db_name list -> hints_entry -> unit
-val prepare_hint : bool (* Check no remaining evars *) ->
- env -> evar_map -> evar_map * constr -> (constr * Univ.ContextSet.t)
+val hint_constr :
+ env -> evar_map -> poly:bool -> evar_map * constr -> hint_term * Univ.ContextSet.t
+ [@ocaml.deprecated "Declare a hint constant instead"]
(** A constr which is Hint'ed will be:
- (1) used as an Exact, if it does not start with a product
diff --git a/vernac/comHints.ml b/vernac/comHints.ml
index 9eac558908..b5e53208ca 100644
--- a/vernac/comHints.ml
+++ b/vernac/comHints.ml
@@ -85,14 +85,12 @@ let interp_hints ~poly h =
let env = Global.env () in
let sigma = Evd.from_env env in
let f poly c =
- let evd, c = Constrintern.interp_open_constr env sigma c in
let env = Global.env () in
let sigma = Evd.from_env env in
- let c, diff = Hints.prepare_hint true env sigma (evd, c) in
- if poly then (Hints.IsConstr (c, Some diff) [@ocaml.warning "-3"])
- else
- let () = DeclareUctx.declare_universe_context ~poly:false diff in
- (Hints.IsConstr (c, None) [@ocaml.warning "-3"])
+ let evd, c = Constrintern.interp_open_constr env sigma c in
+ let h, diff = Hints.hint_constr env sigma ~poly (evd, c) in
+ let () = DeclareUctx.declare_universe_context ~poly:false diff [@ocaml.warning "-3"] in
+ h
in
let fref r =
let gr = Smartlocate.global_with_alias r in