diff options
| author | Hugo Herbelin | 2014-10-02 15:47:14 +0200 |
|---|---|---|
| committer | Hugo Herbelin | 2014-10-02 16:17:30 +0200 |
| commit | 2b26c3e9a011af1f77e4f4fc61c73943d2bb0dfc (patch) | |
| tree | 271676c2b92ba2ec9c1e9c8356444a9cb61b40f2 /tactics | |
| parent | 6a736c77dee9315afd6d5f50375bf92c1da5d20c (diff) | |
Fixing bug #2810 (autounfold on local variable declared as hint but cleared).
Diffstat (limited to 'tactics')
| -rw-r--r-- | tactics/eauto.ml4 | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/tactics/eauto.ml4 b/tactics/eauto.ml4 index 7a4639967f..711ae92b0d 100644 --- a/tactics/eauto.ml4 +++ b/tactics/eauto.ml4 @@ -483,15 +483,17 @@ END let cons a l = a :: l -let autounfolds db occs = +let autounfolds db occs cls gl = let unfolds = List.concat (List.map (fun dbname -> let db = try searchtable_map dbname with Not_found -> errorlabstrm "autounfold" (str "Unknown database " ++ str dbname) in let (ids, csts) = Hint_db.unfolds db in + let hyps = pf_ids_of_hyps gl in + let ids = Idset.filter (fun id -> List.mem id hyps) ids in Cset.fold (fun cst -> cons (AllOccurrences, EvalConstRef cst)) csts (Id.Set.fold (fun id -> cons (AllOccurrences, EvalVarRef id)) ids [])) db) - in unfold_option unfolds + in unfold_option unfolds cls gl let autounfold db cls gl = let cls = concrete_clause_of (fun () -> pf_ids_of_hyps gl) cls in |
