X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2Fstrictures.pm;h=1a96fcc7b837c8774bce38ba73c6608835ecde0b;hb=d50343b962ecab99ec40a0cfe99bb4ce9e510958;hp=43a6600cfbd8a47ec803667235c8a6dd9dd110fb;hpb=1c35787c75148e768b8c61eb9aec45d6b0ea3949;p=p5sagit%2Fstrictures.git diff --git a/lib/strictures.pm b/lib/strictures.pm index 43a6600..1a96fcc 100644 --- a/lib/strictures.pm +++ b/lib/strictures.pm @@ -15,9 +15,12 @@ our @WARNING_CATEGORIES = grep { exists $warnings::Offsets{$_} } qw( deprecated exiting experimental + experimental::autoderef experimental::lexical_subs experimental::lexical_topic + experimental::postderef experimental::regex_sets + experimental::signatures experimental::smartmatch glob imprecision @@ -27,6 +30,7 @@ our @WARNING_CATEGORIES = grep { exists $warnings::Offsets{$_} } qw( layer newline pipe + syscalls unopened misc numeric @@ -125,18 +129,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 +148,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})) {