aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorherbelin2011-10-11 19:17:58 +0000
committerherbelin2011-10-11 19:17:58 +0000
commitc1234a327b8ef2b52af1410dace719000c360f53 (patch)
tree34bcfe5d05b3ff2c1d4ad41fa6e29ff44a5fb908
parente79b800bec660dc2724fa70c33f4e435ddbf885c (diff)
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
-rw-r--r--kernel/term.ml1
-rw-r--r--kernel/term.mli1
-rw-r--r--pretyping/evd.ml7
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)