aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthieu Sozeau2016-10-20 17:45:17 +0200
committerMatthieu Sozeau2016-10-20 17:45:17 +0200
commit3e536acf2ebcd078314dcac2a79d267c95db7bf8 (patch)
tree39372d99951e30f1429b1d45a0a0844d9db8b588
parentdf1de9fa318f1924d92fb39c4bc67c16f3d31db4 (diff)
parent474a58b15ca41f1b3287ef3e29e80cca9988598c (diff)
Merge branch 'bug5036' into v8.6
-rw-r--r--library/declare.ml6
-rw-r--r--ltac/extratactics.ml46
2 files changed, 8 insertions, 4 deletions
diff --git a/library/declare.ml b/library/declare.ml
index c5b83c11a0..c9992fff3b 100644
--- a/library/declare.ml
+++ b/library/declare.ml
@@ -491,8 +491,10 @@ let do_universe poly l =
type constraint_decl = polymorphic * Univ.constraints
let cache_constraints (na, (p, c)) =
- let ctx = Univ.ContextSet.add_constraints c Univ.ContextSet.empty in
- cache_universe_context (p,ctx)
+ let ctx =
+ Univ.ContextSet.add_constraints c
+ Univ.ContextSet.empty (* No declared universes here, just constraints *)
+ in cache_universe_context (p,ctx)
let discharge_constraints (_, (p, c as a)) =
if p then None else Some a
diff --git a/ltac/extratactics.ml4 b/ltac/extratactics.ml4
index d6ba670d83..db7318469f 100644
--- a/ltac/extratactics.ml4
+++ b/ltac/extratactics.ml4
@@ -263,8 +263,10 @@ let add_rewrite_hint bases ort t lcsr =
let ctx =
let ctx = UState.context_set ctx in
if poly then ctx
- else (Declare.declare_universe_context false ctx;
- Univ.ContextSet.empty)
+ else (** This is a global universe context that shouldn't be
+ refreshed at every use of the hint, declare it globally. *)
+ (Declare.declare_universe_context false ctx;
+ Univ.ContextSet.empty)
in
Constrexpr_ops.constr_loc ce, (c, ctx), ort, Option.map (in_gen (rawwit wit_ltac)) t in
let eqs = List.map f lcsr in