In the attachment, I show several lines from this file coverage report
on a Perl 5 module in the Parrot distribution:
http://thenceforward.net/parrot/coverage/configure-build/config-auto-pmc-pm.html
http://tinyurl.com/5fovnc
Two statements, lines 261-262, each of which is a simple 'push'. But
unlike other 'push' statements in this file, I get *two* entries in the
'stmt' column for each of these two lines. In the first case, line 261
is encountered 2444 times -- but that's reported twice. In the second
case, I also get two statement reports for the same line -- but the
second report is 0.
These two lines were refactored from another location in the same file
today. When I ran Devel::Cover on that earlier version, the two lines
appeared normal, i.e., no double 'stmt' coverage. But the double
coverage today -- and specifically the '0' second statement on line 262
-- caused the overall statement coverage for config/auto/pmc.pm to drop
from 100% to 99.3%.
I don't understand why I'm getting double reportage on these two lines.
Any ideas?
(Note: The explanation shouldn't have anything to do, fundamentally,
with the branch in line 262. That branch had only 50% coverage in the
*previous* coverage run as well.)
Thank you very much.
Jim Keenan
config/auto/pmc.pm
line err stmt bran cond sub pod time code
260 # please
note that normal and Const PMCs must be in this order
261 2444 26260 push @{
$parents{$parent} }, $name;
2444 31820
262 *** 2444 50 28942 push @{
$parents{$parent} }, "Const$name" if $const;
*** 0 0