aboutsummaryrefslogtreecommitdiff
path: root/tactics/tacinterp.ml
diff options
context:
space:
mode:
Diffstat (limited to 'tactics/tacinterp.ml')
-rw-r--r--tactics/tacinterp.ml9
1 files changed, 9 insertions, 0 deletions
diff --git a/tactics/tacinterp.ml b/tactics/tacinterp.ml
index 55134310fa..3c50c26725 100644
--- a/tactics/tacinterp.ml
+++ b/tactics/tacinterp.ml
@@ -868,6 +868,15 @@ VIdentifier id
(* Gives the identifier corresponding to an Identifier tactic_arg *)
let id_of_Identifier = function
| VConstr c when isVar c -> destVar c
+ | VConstr c ->
+ (match kind_of_term c with
+ Var id -> id
+ | Const sp -> id_of_global None (ConstRef sp)
+ | Ind sp -> id_of_global None (IndRef sp)
+ | Construct sp -> id_of_global None (ConstructRef sp)
+ | _ ->
+ anomalylabstrm "id_of_Identifier"
+ (str "Not an IDENTIFIER tactic_arg"))
| VIdentifier id -> id
| _ ->
anomalylabstrm "id_of_Identifier" (str "Not an IDENTIFIER tactic_arg")