aboutsummaryrefslogtreecommitdiff
path: root/tactics/hints.ml
diff options
context:
space:
mode:
authorMatthieu Sozeau2016-06-14 16:11:58 +0200
committerMatthieu Sozeau2016-06-14 16:11:58 +0200
commit66ddaf0c21038f8986110fd36f13eb1cd5006f5e (patch)
tree33e975a6f95d767e7de3e36c22b300c1506e2970 /tactics/hints.ml
parent494312f05a10188cf51f66cf189681f389e179b2 (diff)
parent1e389def84cc3eafc8aa5d1a1505f078a58234bd (diff)
Merge branch 'bug4450' into v8.5
Diffstat (limited to 'tactics/hints.ml')
-rw-r--r--tactics/hints.ml6
1 files changed, 4 insertions, 2 deletions
diff --git a/tactics/hints.ml b/tactics/hints.ml
index 1da464e6f4..a1beacd5ed 100644
--- a/tactics/hints.ml
+++ b/tactics/hints.ml
@@ -1097,10 +1097,12 @@ exception Found of constr * types
let prepare_hint check (poly,local) env init (sigma,c) =
let sigma = Typeclasses.resolve_typeclasses ~fail:false env sigma in
- (* We re-abstract over uninstantiated evars.
+ (* We re-abstract over uninstantiated evars and universes.
It is actually a bit stupid to generalize over evars since the first
thing make_resolves will do is to re-instantiate the products *)
- let c = drop_extra_implicit_args (Evarutil.nf_evar sigma c) in
+ let sigma, subst = Evd.nf_univ_variables sigma in
+ let c = Vars.subst_univs_constr subst (Evarutil.nf_evar sigma c) in
+ let c = drop_extra_implicit_args c in
let vars = ref (collect_vars c) in
let subst = ref [] in
let rec find_next_evar c = match kind_of_term c with