diff options
| -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 () = |
