aboutsummaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorPierre-Marie Pédrot2016-05-14 19:51:46 +0200
committerPierre-Marie Pédrot2016-05-14 19:51:46 +0200
commitb161ad97fdc01ac8816341a089365657cebc6d2b (patch)
treefe82ae4aa65c6c7bc175f75d7e8ab0b6572dd0f8 /plugins
parentbd0befffb80c3086e3b451456cec24f3a12ac1f0 (diff)
Hack in TACTIC EXTEND to maintain the 8.5 behaviour on badly designed arguments.
Since TACTIC EXTEND relies on the usual tactic notation mechanism, the interpretation of an ML tactic first goes through a TacAlias node. This means that variables bound by the notation overwrite those of the current environment. It turns out to be problematic for badly designed arguments that close over variables of the environment, e.g. glob_constr, because the variables used at interpretation time are now different from the ones of parsing time. Ideally, those arguments should return a closure made of the inner argument together with the Ltac environment they were defined in. Unluckily, this would need some important changes in their design. Most notably, most of ssreflect ARGUMENT EXTEND actually create such closed arguments. In order to emulate the old behaviour, we rather use a hack by prefixing ML-bound variables by a character that is not accessible from user-side.
Diffstat (limited to 'plugins')
0 files changed, 0 insertions, 0 deletions