aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorherbelin2009-02-06 10:03:55 +0000
committerherbelin2009-02-06 10:03:55 +0000
commit5ad9c7361fd63728623a1c8f9eab5e134d4025b3 (patch)
tree258ac4a196b224c14fcdeeb84e2a38bf1da0eccd
parentd1f92d3bc420d0a5115a4533ca59b17f6b823515 (diff)
From v8.2 to trunk:
- commit 11871 (Miller's pattern detection bug) + a corresponding test - commit 11883 (.ml4 to .cmxs in coq_makefile) git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@11884 85f007b7-540e-0410-9357-904b9bb8a0f7
-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 () =