X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2Fstrictures.pm;h=5bd43eca507396b5a32a9a00c5ca92a62874ec2c;hb=1e139b49372a4dbd05942d512dc12e68e708eade;hp=43a6600cfbd8a47ec803667235c8a6dd9dd110fb;hpb=1c35787c75148e768b8c61eb9aec45d6b0ea3949;p=p5sagit%2Fstrictures.git diff --git a/lib/strictures.pm b/lib/strictures.pm index 43a6600..5bd43ec 100644 --- a/lib/strictures.pm +++ b/lib/strictures.pm @@ -15,10 +15,17 @@ our @WARNING_CATEGORIES = grep { exists $warnings::Offsets{$_} } qw( deprecated exiting experimental + experimental::autoderef + experimental::const_attr experimental::lexical_subs experimental::lexical_topic + experimental::postderef + experimental::re_strict + experimental::refaliasing experimental::regex_sets + experimental::signatures experimental::smartmatch + experimental::win32_perlio glob imprecision io @@ -27,8 +34,11 @@ our @WARNING_CATEGORIES = grep { exists $warnings::Offsets{$_} } qw( layer newline pipe + syscalls unopened + locale misc + missing numeric once overflow @@ -36,6 +46,7 @@ our @WARNING_CATEGORIES = grep { exists $warnings::Offsets{$_} } qw( portable recursion redefine + redundant regexp severe debugging @@ -66,6 +77,7 @@ our @WARNING_CATEGORIES = grep { exists $warnings::Offsets{$_} } qw( nonchar surrogate void + void_unusual y2k ); @@ -125,18 +137,18 @@ sub _enable_1 { } } -our @V2_NONFATAL = grep { exists $warnings::Offsets{$_} } qw( - exec - recursion - internal - malloc - newline - experimental - deprecated - portable +our @V2_NONFATAL = grep { exists $warnings::Offsets{$_} } ( + 'exec', # not safe to catch + 'recursion', # will be caught by other mechanisms + 'internal', # not safe to catch + 'malloc', # not safe to catch + 'newline', # stat on nonexistent file with a newline in it + 'experimental', # no reason for these to be fatal + 'deprecated', # unfortunately can't make these fatal + 'portable', # everything worked fine here, just may not elsewhere ); -our @V2_DISABLE = grep { exists $warnings::Offsets{$_} } qw( - once +our @V2_DISABLE = grep { exists $warnings::Offsets{$_} } ( + 'once' # triggers inconsistently, can't be fatalized ); sub _enable_2 { @@ -144,7 +156,8 @@ sub _enable_2 { strict->import; warnings->import; warnings->import(FATAL => @WARNING_CATEGORIES); - warnings->import(NONFATAL => @V2_NONFATAL); + warnings->unimport(FATAL => @V2_NONFATAL); + warnings->import(@V2_NONFATAL); warnings->unimport(@V2_DISABLE); if (_want_extra($opts->{file})) { @@ -256,25 +269,8 @@ and when either C<.git>, C<.svn>, or C<.hg> is present in the current directory C<.git>, C<.svn>, or C<.hg> is present two directories up along with C (which would indicate we are in a C operation, via L) -- or when the C environment variable is -set, in which case +set, in which case it also does the equivalent of - use strictures 2; - -is equivalent to - - use strict; - use warnings FATAL => 'all'; - use warnings NONFATAL => qw( - exec - recursion - internal - malloc - newline - experimental - deprecated - portable - ); - no warnings 'once'; no indirect 'fatal'; no multidimensional; no bareword::filehandles;