On Sun Aug 24 09:30:43 2008, [EMAIL PROTECTED] wrote: > I'm running coverage analysis to see whether there > are any new branches/conditions in lib/Parrot/Configure/Compiler.pm > which need testing.
I never cease to find coverage analysis rewarding for its ability to enable you to spot dead code. After running Devel::Cover over the configuration and build tools, I noticed that lines 315-317 of lib/Parrot/Configure/Compiler.pm had one-half of the branch and two-thirds of the condition uncovered by the test suite. if ( !exists $options{file_type} && $target =~ m/makefile$/i ) { $options{file_type} = 'makefile'; } These lines were formerly found higher up inside genfile(). The more I stared at them, the more I realized that they now duplicated code at lines 298-301: if ( !exists $options{file_type}) { if ( $target =~ m/makefile$/i ) { $options{file_type} = 'makefile'; } So they could be excised. I further realized that since with makefiles we always want 'replace_slashes' and 'conditioned_lines' to be enabled, we could simplify this: if ( $options{file_type} eq 'makefile' ) { exists $options{replace_slashes} or $options{replace_slashes} = 1; exists $options{conditioned_lines} or $options{conditioned_lines} = 1; } ... to this: if ( $options{file_type} eq 'makefile' ) { $options{replace_slashes} = 1; $options{conditioned_lines} = 1; } ... and in the process eliminate two conditions which were also coming up short in coverage analysis. Changes were committed in r30527. kid51