Remove deprecated comma-less format variable lists
authorDagfinn Ilmari Mannsåker <ilmari@ilmari.org>
Sat, 12 Nov 2016 16:08:18 +0000 (17:08 +0100)
committerSawyer X <xsawyerx@cpan.org>
Thu, 1 Jun 2017 08:53:32 +0000 (10:53 +0200)
This has been issuing a deprecation warning since perl 5.000.

embed.fnc
embed.h
pod/perldelta.pod
proto.h
t/lib/warnings/toke
t/op/write.t
toke.c

index 654dad9..35b80d9 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -2683,7 +2683,6 @@ so        |SV*    |new_constant   |NULLOK const char *s|STRLEN len \
                                |NN const char *key|STRLEN keylen|NN SV *sv \
                                |NULLOK SV *pv|NULLOK const char *type \
                                |STRLEN typelen
-s      |int    |deprecate_commaless_var_list
 s      |int    |ao             |int toketype
 s      |void|parse_ident|NN char **s|NN char **d \
                      |NN char * const e|int allow_package \
diff --git a/embed.h b/embed.h
index 5352f53..4400d87 100644 (file)
--- a/embed.h
+++ b/embed.h
 #define ao(a)                  S_ao(aTHX_ a)
 #define check_uni()            S_check_uni(aTHX)
 #define checkcomma(a,b,c)      S_checkcomma(aTHX_ a,b,c)
-#define deprecate_commaless_var_list() S_deprecate_commaless_var_list(aTHX)
 #define filter_gets(a,b)       S_filter_gets(aTHX_ a,b)
 #define find_in_my_stash(a,b)  S_find_in_my_stash(aTHX_ a,b)
 #define force_ident(a,b)       S_force_ident(aTHX_ a,b)
index 022c1a9..b6d1152 100644 (file)
@@ -45,6 +45,11 @@ XXX For a release on a stable branch, this section aspires to be:
 
 [ List each incompatible change as a =head2 entry ]
 
+=head2 Comma-less variable lists in formats are no longer allowed
+
+Omitting the commas between variables passed to formats is no longer
+allowed.  This has been deprecated since perl 5.000.
+
 =head1 Deprecations
 
 XXX Any deprecated features, syntax, modules etc. should be listed here.
diff --git a/proto.h b/proto.h
index f1d6181..8f64cf6 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -5651,7 +5651,6 @@ STATIC void       S_check_uni(pTHX);
 STATIC void    S_checkcomma(pTHX_ const char *s, const char *name, const char *what);
 #define PERL_ARGS_ASSERT_CHECKCOMMA    \
        assert(s); assert(name); assert(what)
-STATIC int     S_deprecate_commaless_var_list(pTHX);
 STATIC char *  S_filter_gets(pTHX_ SV *sv, STRLEN append)
                        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_FILTER_GETS   \
index fc51d9f..77e0ae3 100644 (file)
@@ -4,8 +4,6 @@ toke.c  AOK
 
  
                $a = <<;
-               Use of comma-less variable list is deprecated. Its use will be fatal in Perl 5.28
-               (called 3 times via depcom)
 
      \1 better written as $1 
        use warnings 'syntax' ;
@@ -125,21 +123,6 @@ toke.c     AOK
         *foo *foo
 
 __END__
-# toke.c 
-format STDOUT =
-@<<<  @|||  @>>>  @>>>
-$a    $b    "abc" 'def'
-.
-no warnings 'deprecated' ;
-format STDOUT =
-@<<<  @|||  @>>>  @>>>
-$a    $b    "abc" 'def'
-.
-EXPECT
-Use of comma-less variable list is deprecated. Its use will be fatal in Perl 5.28 at - line 4.
-Use of comma-less variable list is deprecated. Its use will be fatal in Perl 5.28 at - line 4.
-Use of comma-less variable list is deprecated. Its use will be fatal in Perl 5.28 at - line 4.
-########
 # toke.c
 $a = <<;
 
index d528a8e..645bf69 100644 (file)
@@ -98,7 +98,7 @@ for my $tref ( @NumTests ){
 my $bas_tests = 21;
 
 # number of tests in section 3
-my $bug_tests = 66 + 3 * 3 * 5 * 2 * 3 + 2 + 66 + 6 + 2 + 3 + 96 + 11 + 15;
+my $bug_tests = 66 + 3 * 3 * 5 * 2 * 3 + 2 + 66 + 6 + 2 + 3 + 96 + 11 + 14;
 
 # number of tests in section 4
 my $hmb_tests = 37;
@@ -2018,18 +2018,6 @@ a    x
 EXPECT
              { stderr => 1 }, '#123538 crash in FF_MORE');
 
-# this used to assert fail
-fresh_perl_like(<<'EOP',
-format STDOUT =
-@
-0"$x"
-.
-print "got here\n";
-EOP
-    qr/Use of comma-less variable list is deprecated.*got here/s,
-    { stderr => 1 },
-    '#128255 Assert fail in S_sublex_done');
-
 {
     $^A = "";
     my $a = *globcopy;
diff --git a/toke.c b/toke.c
index ee18153..c1c54c3 100644 (file)
--- a/toke.c
+++ b/toke.c
@@ -464,13 +464,6 @@ S_printbuf(pTHX_ const char *const fmt, const char *const s)
 
 #endif
 
-static int
-S_deprecate_commaless_var_list(pTHX) {
-    PL_expect = XTERM;
-    deprecate_fatal_in("5.28", "Use of comma-less variable list is deprecated");
-    return REPORT(','); /* grandfather non-comma-format format */
-}
-
 /*
  * S_ao
  *
@@ -6563,12 +6556,7 @@ Perl_yylex(pTHX)
     case '$':
        CLINE;
 
-       if (PL_expect == XOPERATOR) {
-           if (PL_lex_formbrack && PL_lex_brackets == PL_lex_formbrack) {
-               return deprecate_commaless_var_list();
-           }
-       }
-       else if (PL_expect == XPOSTDEREF) {
+        if (PL_expect == XPOSTDEREF) {
            if (s[1] == '#') {
                s++;
                POSTDEREF(DOLSHARP);
@@ -6858,10 +6846,6 @@ Perl_yylex(pTHX)
        TERM(THING);
 
     case '\'':
-       if (   PL_expect == XOPERATOR
-           && (PL_lex_formbrack && PL_lex_brackets == PL_lex_formbrack))
-               return deprecate_commaless_var_list();
-
        s = scan_str(s,FALSE,FALSE,FALSE,NULL);
        if (!s)
            missingterm(NULL);
@@ -6874,10 +6858,6 @@ Perl_yylex(pTHX)
        TERM(sublex_start());
 
     case '"':
-       if (   PL_expect == XOPERATOR
-           && (PL_lex_formbrack && PL_lex_brackets == PL_lex_formbrack))
-               return deprecate_commaless_var_list();
-
        s = scan_str(s,FALSE,FALSE,FALSE,NULL);
        DEBUG_T( {
            if (s)