From c1234a327b8ef2b52af1410dace719000c360f53 Mon Sep 17 00:00:00 2001 From: herbelin Date: Tue, 11 Oct 2011 19:17:58 +0000 Subject: More on r14536 (an unused pattern-matching remained in the commit). git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@14546 85f007b7-540e-0410-9357-904b9bb8a0f7 --- kernel/term.ml | 1 + kernel/term.mli | 1 + pretyping/evd.ml | 7 ++----- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/kernel/term.ml b/kernel/term.ml index 72489b49a8..b464f4455b 100644 --- a/kernel/term.ml +++ b/kernel/term.ml @@ -325,6 +325,7 @@ let isRel c = match kind_of_term c with Rel _ -> true | _ -> false (* Tests if a variable *) let isVar c = match kind_of_term c with Var _ -> true | _ -> false +let isVarId id c = match kind_of_term c with Var id' -> id = id' | _ -> false (* Tests if an inductive *) let isInd c = match kind_of_term c with Ind _ -> true | _ -> false diff --git a/kernel/term.mli b/kernel/term.mli index 7992c0bab7..d5899f1855 100644 --- a/kernel/term.mli +++ b/kernel/term.mli @@ -230,6 +230,7 @@ val kind_of_type : types -> (constr, types) kind_of_type val isRel : constr -> bool val isVar : constr -> bool +val isVarId : identifier -> constr -> bool val isInd : constr -> bool val isEvar : constr -> bool val isMeta : constr -> bool diff --git a/pretyping/evd.ml b/pretyping/evd.ml index cb44c926ff..c73ff91a1e 100644 --- a/pretyping/evd.ml +++ b/pretyping/evd.ml @@ -168,12 +168,9 @@ module EvarInfoMap = struct (* Note: let-in contributes to the instance *) let make_evar_instance sign args = let rec instrec = function - | (id,_,_) :: sign, c::args -> - (match kind_of_term c with - | Var id' when id = id' -> instrec (sign,args) - | _ -> (id,c) :: instrec (sign,args)) + | (id,_,_) :: sign, c::args when isVarId id c -> instrec (sign,args) | (id,_,_) :: sign, c::args -> (id,c) :: instrec (sign,args) - | [],[] -> [] + | [],[] -> [] | [],_ | _,[] -> anomaly "Signature and its instance do not match" in instrec (sign,args) -- cgit v1.2.3