Login
RT #65663 RequireConsistentNewlines five-part PPI location
authorTom Wyant <harryfmudd@comcast.net>
Sun, 13 Feb 2011 00:10:17 +0000 (00:10 +0000)
committerTom Wyant <harryfmudd@comcast.net>
Sun, 13 Feb 2011 00:10:17 +0000 (00:10 +0000)
commit6eb1ad2a1c97185b203e72a3d7207d78686e539a
tree8511b97d3f7b6ae641bb4615d8132279ce0a7fa9
parent010173e0950d3cb1f08bfc152789b89351d91c21
RT #65663 RequireConsistentNewlines five-part PPI location

This policy is a problem because it needs to bypass PPI to get at the
actual line endings. But since Perl::Critic needs a PPI::Element to
report a violation, it makes one up out of whole cloth, then reaches
into its innards to slam-dunk the information it wants to put in the
violation message.

Unfortunately, when it was coded it only slam-dunked three pieces of
information, not five. This may not have mattered before #file and #line
support, but it does now even if you are not using %f in the output
format as noted in the ticket -- at least, if you object to lots of
undefined value messages it matters.

The work in branches/violation_named_args/ was done to try to make it
possible to specify a violation position relative to the start of the
element, but until that makes it into the trunk I see no way to address
this other than to compound the felony.

This probably should be released fairly shortly. The symptoms are not
fatal, but are extremely annoying.
Changes
lib/Perl/Critic/Policy/CodeLayout/RequireConsistentNewlines.pm