aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pretyping/evarutil.ml1
-rw-r--r--test-suite/success/evars.v9
-rw-r--r--tools/coq_makefile.ml41
3 files changed, 11 insertions, 0 deletions
diff --git a/pretyping/evarutil.ml b/pretyping/evarutil.ml
index 3563c77887..40599f4a35 100644
--- a/pretyping/evarutil.ml
+++ b/pretyping/evarutil.ml
@@ -1015,6 +1015,7 @@ let is_unification_pattern_evar env (_,args) l t =
l
else
(* Probably strong restrictions coming from t being evar-closed *)
+ let t = expand_vars_in_term env t in
let fv_rels = free_rels t in
let fv_ids = global_vars env t in
List.filter (fun c ->
diff --git a/test-suite/success/evars.v b/test-suite/success/evars.v
index 082cbfbe17..e3a6e4188b 100644
--- a/test-suite/success/evars.v
+++ b/test-suite/success/evars.v
@@ -198,6 +198,15 @@ Goal forall x : nat, F1 x -> G1 x.
refine (fun x H => proj2 (_ x H) _).
Abort.
+
+(* An example from y-not that was failing in 8.2rc1 *)
+
+Fixpoint filter (A:nat->Set) (l:list (sigT A)) : list (sigT A) :=
+ match l with
+ | nil => nil
+ | (existT k v)::l' => (existT _ k v):: (filter A l')
+ end.
+
(* Remark: the following example does not succeed any longer in 8.2 because,
the algorithm is more general and does exclude a solution that it should
exclude for typing reason. Handling of types and backtracking is still to
diff --git a/tools/coq_makefile.ml4 b/tools/coq_makefile.ml4
index ba8ab29a01..6d0d98d602 100644
--- a/tools/coq_makefile.ml4
+++ b/tools/coq_makefile.ml4
@@ -246,6 +246,7 @@ let implicit () =
print "%.cmxs: %.ml\n\t$(CAMLOPTC) $(ZDEBUG) $(ZFLAGS) -shared -o $@ $(PP) $<\n\n";
print "%.cmo: %.ml4\n\t$(CAMLC) $(ZDEBUG) $(ZFLAGS) $(PP) -impl $<\n\n";
print "%.cmx: %.ml4\n\t$(CAMLOPTC) $(ZDEBUG) $(ZFLAGS) $(PP) -impl $<\n\n";
+ print "%.cmxs: %.ml4\n\t$(CAMLOPTC) $(ZDEBUG) $(ZFLAGS) -shared -o $@ $(PP) -impl $<\n\n";
print "%.ml.d: %.ml\n";
print "\t$(CAMLBIN)ocamldep -slash $(COQSRCLIBS) $(PP) \"$<\" > \"$@\"\n\n"
and v_rule () =