diff options
| author | herbelin | 2010-06-28 07:27:28 +0000 |
|---|---|---|
| committer | herbelin | 2010-06-28 07:27:28 +0000 |
| commit | f5458f9064be5cc4f645019df6519b265281a280 (patch) | |
| tree | c80eaccf51c7b0a194932a1de7421a51c3db0d60 | |
| parent | 4ff602f29211792651b22d36d1ab444e6f570045 (diff) | |
Fixed a bug introduced in a combination in r12807 and revealed in
r13080 via a failure in CoRN (pattern_of_constr needs correct sigma).
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@13205 85f007b7-540e-0410-9357-904b9bb8a0f7
| -rw-r--r-- | pretyping/pattern.ml | 4 | ||||
| -rw-r--r-- | pretyping/pattern.mli | 2 | ||||
| -rw-r--r-- | tactics/tacinterp.ml | 2 |
3 files changed, 4 insertions, 4 deletions
diff --git a/pretyping/pattern.ml b/pretyping/pattern.ml index 59f3cde88a..fd51f7952f 100644 --- a/pretyping/pattern.ml +++ b/pretyping/pattern.ml @@ -163,7 +163,7 @@ let error_instantiate_pattern id l = ++ strbrk " in pattern because the term refers to " ++ pr_enum pr_id l ++ strbrk " which " ++ str is ++ strbrk " not bound in the pattern.") -let instantiate_pattern lvar c = +let instantiate_pattern sigma lvar c = let rec aux vars = function | PVar id as x -> (try @@ -172,7 +172,7 @@ let instantiate_pattern lvar c = let inst = List.map (fun id -> mkRel (list_index (Name id) vars)) ctx in let c = substl inst c in - snd (pattern_of_constr Evd.empty c) + snd (pattern_of_constr sigma c) with Not_found (* list_index failed *) -> let vars = list_map_filter (function Name id -> Some id | _ -> None) vars in diff --git a/pretyping/pattern.mli b/pretyping/pattern.mli index 5685f3d2c5..344a6239b8 100644 --- a/pretyping/pattern.mli +++ b/pretyping/pattern.mli @@ -111,7 +111,7 @@ val pattern_of_rawconstr : rawconstr -> patvar list * constr_pattern val instantiate_pattern : - (identifier * (identifier list * constr)) list -> + Evd.evar_map -> (identifier * (identifier list * constr)) list -> constr_pattern -> constr_pattern val lift_pattern : int -> constr_pattern -> constr_pattern diff --git a/tactics/tacinterp.ml b/tactics/tacinterp.ml index 04ef9befb1..5230ff810c 100644 --- a/tactics/tacinterp.ml +++ b/tactics/tacinterp.ml @@ -1667,7 +1667,7 @@ let eval_pattern lfun ist env sigma (_,pat as c) = if use_types then snd (interp_typed_pattern ist env sigma c) else - instantiate_pattern lfun pat + instantiate_pattern sigma lfun pat let read_pattern lfun ist env sigma = function | Subterm (b,ido,c) -> Subterm (b,ido,eval_pattern lfun ist env sigma c) |
