diff options
| author | herbelin | 2009-02-06 10:03:55 +0000 |
|---|---|---|
| committer | herbelin | 2009-02-06 10:03:55 +0000 |
| commit | 5ad9c7361fd63728623a1c8f9eab5e134d4025b3 (patch) | |
| tree | 258ac4a196b224c14fcdeeb84e2a38bf1da0eccd | |
| parent | d1f92d3bc420d0a5115a4533ca59b17f6b823515 (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.ml | 1 | ||||
| -rw-r--r-- | test-suite/success/evars.v | 9 | ||||
| -rw-r--r-- | tools/coq_makefile.ml4 | 1 |
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 () = |
