diff options
| author | Matthieu Sozeau | 2016-06-14 16:11:58 +0200 |
|---|---|---|
| committer | Matthieu Sozeau | 2016-06-14 16:11:58 +0200 |
| commit | 66ddaf0c21038f8986110fd36f13eb1cd5006f5e (patch) | |
| tree | 33e975a6f95d767e7de3e36c22b300c1506e2970 /tactics/hints.ml | |
| parent | 494312f05a10188cf51f66cf189681f389e179b2 (diff) | |
| parent | 1e389def84cc3eafc8aa5d1a1505f078a58234bd (diff) | |
Merge branch 'bug4450' into v8.5
Diffstat (limited to 'tactics/hints.ml')
| -rw-r--r-- | tactics/hints.ml | 6 |
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 |
