Login
RT #67231: Perlcritic crashes when evaluating a file
authorTom Wyant <harryfmudd@comcast.net>
Tue, 5 Apr 2011 00:22:51 +0000 (00:22 +0000)
committerTom Wyant <harryfmudd@comcast.net>
Tue, 5 Apr 2011 00:22:51 +0000 (00:22 +0000)
Sorry, guys. This is another one of mine.

The problem was introduced in the code that implemented RT #59268. The
problem is that the enhancement code assumes that if there is POD at
all, there will be a '=head1' to report the problem against. Which there
isn't if the only reason this policy is looking at the code is because
someone put in a =pod/=cut pair to comment out some code.

In an attempt to preserve the spirit of the enhancement, the failure is
reported against the first POD found if no =head1 was found.

The commit includes a revised t/Documentation/RequirePodSections.run,
and an entry to Changes.

Changes
lib/Perl/Critic/Policy/Documentation/RequirePodSections.pm
t/Documentation/RequirePodSections.run

diff --git a/Changes b/Changes
index f028b1a..f2101cb 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,6 +1,9 @@
 Whenever the next release is
 
     Policy Changes:
+    * Documentation::RequirePodSections no longer blows up on code
+      having POD but no =head1. This problem was introduced with RT
+      #59268. RT #67231
     * ValuesAndExpressions::ProhibitMagicNumbers and
       Module::RequireVersionVar now treat versions passed as the second
       argument of a 'package' statement the same as versions declared as
index 1845c14..76c0a12 100644 (file)
@@ -342,7 +342,10 @@ sub violates {
             my $desc = qq{Missing "$required" section in POD};
             # Report any violations against POD of record rather than whole
             # document (the point of RT #59268)
-            push @violations, $self->violation( $desc, $EXPL, $pod_of_record );
+            # But if there are no =head1 records at all, rat out the
+            # first pod found, as being better than blowing up. RT #67231
+            push @violations, $self->violation( $desc, $EXPL,
+                $pod_of_record || $pods_ref->[0] );
         }
     }
 
index 7c88cff..c47ee14 100644 (file)
@@ -156,6 +156,21 @@ Blah...
 
 =cut
 
+#-----------------------------------------------------------------------------
+
+## name Don't die if we don't have a head1 to report against. RT #67231
+## failures 1
+## parms { lib_sections => 'NAME' }
+## cut
+
+warn "Trouble ahead";   # Needed because we ignore files without code
+
+=pod
+
+Fubar
+
+=cut
+
 ##############################################################################
 #      $URL$
 #     $Date$