This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Turn \N{ } deprecation warnings on by default
authorFather Chrysostomos <sprout@cpan.org>
Mon, 27 May 2013 07:10:57 +0000 (00:10 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Mon, 27 May 2013 07:50:03 +0000 (00:50 -0700)
All deprecation warnings are supposed to be on by default, but
these two were not.

t/re/pat_advanced.t
toke.c

index faa8859..6012d2b 100644 (file)
@@ -1023,6 +1023,16 @@ sub run_tests {
         eval q [use utf8; is("\N{TOO  MANY SPACES}", "TOO  MANY SPACES", "Same under 'use utf8': they work")];
         like ($w, qr/A sequence of multiple spaces in a charnames alias definition is deprecated/, "... but return a deprecation warning");
         {
+            # disable lexical warnings
+            BEGIN { ${^WARNING_BITS} = undef; $^W = 0 }
+            undef $w;
+            () = eval q ["\N{TOO  MANY SPACES}"];
+            like ($w, qr/A sequence of multiple spaces in a charnames alias definition is deprecated/, "... and returns a deprecation warning outside of lexical warnings");
+            undef $w;
+            eval q [use utf8; () = "\N{TOO  MANY SPACES}"];
+            like ($w, qr/A sequence of multiple spaces in a charnames alias definition is deprecated/, "... same under utf8");
+        }
+        {
             no warnings 'deprecated';
             undef $w;
             eval q ["\N{TOO  MANY SPACES}"];
@@ -1037,6 +1047,16 @@ sub run_tests {
         eval q [use utf8; is("\N{TRAILING SPACE }", "TRAILING SPACE ", "Same under 'use utf8': they work")];
         like ($w, qr/Trailing white-space in a charnames alias definition is deprecated/, "... but returns a deprecation warning");
         {
+            # disable lexical warnings
+            BEGIN { ${^WARNING_BITS} = undef; $^W = 0 }
+            undef $w;
+            () = eval q ["\N{TRAILING SPACE }"];
+            like ($w, qr/Trailing white-space in a charnames alias definition is deprecated/, "... and returns a deprecation warning outside of lexical warnings");
+            undef $w;
+            eval q [use utf8; () = "\N{TRAILING SPACE }"];
+            like ($w, qr/Trailing white-space in a charnames alias definition is deprecated/, "... same under utf8");
+        }
+        {
             no warnings 'deprecated';
             undef $w;
             eval q ["\N{TRAILING SPACE }"];
diff --git a/toke.c b/toke.c
index bca5d56..91c5a76 100644 (file)
--- a/toke.c
+++ b/toke.c
@@ -2728,12 +2728,12 @@ S_get_and_check_backslash_N_name(pTHX_ const char* s, const char* const e)
             if (! isCHARNAME_CONT(*s)) {
                 goto bad_charname;
             }
-           if (*s == ' ' && *(s-1) == ' ' && ckWARN(WARN_DEPRECATED)) {
+           if (*s == ' ' && *(s-1) == ' ' && ckWARN_d(WARN_DEPRECATED)) {
                 Perl_warn(aTHX_ "A sequence of multiple spaces in a charnames alias definition is deprecated");
             }
             s++;
         }
-        if (*(s-1) == ' ' && ckWARN(WARN_DEPRECATED)) {
+        if (*(s-1) == ' ' && ckWARN_d(WARN_DEPRECATED)) {
             Perl_warn(aTHX_ "Trailing white-space in a charnames alias definition is deprecated");
         }
     }
@@ -2771,7 +2771,8 @@ S_get_and_check_backslash_N_name(pTHX_ const char* s, const char* const e)
                 if (! isCHARNAME_CONT(*s)) {
                     goto bad_charname;
                 }
-                if (*s == ' ' && *(s-1) == ' ' && ckWARN(WARN_DEPRECATED)) {
+                if (*s == ' ' && *(s-1) == ' '
+                 && ckWARN_d(WARN_DEPRECATED)) {
                     Perl_warn(aTHX_ "A sequence of multiple spaces in a charnames alias definition is deprecated");
                 }
                 s++;
@@ -2798,7 +2799,7 @@ S_get_and_check_backslash_N_name(pTHX_ const char* s, const char* const e)
                 s += UTF8SKIP(s);
             }
         }
-        if (*(s-1) == ' ' && ckWARN(WARN_DEPRECATED)) {
+        if (*(s-1) == ' ' && ckWARN_d(WARN_DEPRECATED)) {
             Perl_warn(aTHX_ "Trailing white-space in a charnames alias definition is deprecated");
         }
     }