aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Herbelin2015-03-07 13:22:11 +0100
committerHugo Herbelin2015-03-07 13:24:57 +0100
commit95f1e6467be41bfcdbac291a88f7c9a04474d585 (patch)
treed3fc6f32578352712c7dddbbe5756f619bbc3359
parent21e439b65eab694adaccfaa39aec9415da0a4609 (diff)
Continuing a8ad3abc15a2 and 60810aaec on freshness of name in tactic "evar".
Not inventing a new fresh name if a non-fresh name is explicitly given, as in v8.4.
-rw-r--r--tactics/evar_tactics.ml7
1 files changed, 5 insertions, 2 deletions
diff --git a/tactics/evar_tactics.ml b/tactics/evar_tactics.ml
index 2aafaf080e..c3fe6b6574 100644
--- a/tactics/evar_tactics.ml
+++ b/tactics/evar_tactics.ml
@@ -71,8 +71,11 @@ let let_evar name typ =
Proofview.Goal.enter begin fun gl ->
let sigma = Proofview.Goal.sigma gl in
let env = Proofview.Goal.env gl in
- let id = Namegen.id_of_name_using_hdchar env typ name in
- let id = Namegen.next_ident_away_in_goal id (Termops.ids_of_named_context (Environ.named_context env)) in
+ let id = match name with
+ | Names.Anonymous ->
+ let id = Namegen.id_of_name_using_hdchar env typ name in
+ Namegen.next_ident_away_in_goal id (Termops.ids_of_named_context (Environ.named_context env))
+ | Names.Name id -> id in
let sigma',evar = Evarutil.new_evar env sigma ~src ~naming:(Misctypes.IntroFresh id) typ in
Tacticals.New.tclTHEN (Proofview.V82.tactic (Refiner.tclEVARS sigma'))
(Tactics.letin_tac None (Names.Name id) evar None Locusops.nowhere)