This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Add tests for the C<my $x if foo> deprecation, and change the
authorDave Mitchell <davem@fdisolutions.com>
Wed, 18 Feb 2004 11:14:43 +0000 (11:14 +0000)
committerDave Mitchell <davem@fdisolutions.com>
Wed, 18 Feb 2004 11:14:43 +0000 (11:14 +0000)
warning text

p4raw-id: //depot/perl@22332

op.c
pod/perldiag.pod
t/lib/warnings/op

diff --git a/op.c b/op.c
index d6d9aee..97dd955 100644 (file)
--- a/op.c
+++ b/op.c
@@ -6003,7 +6003,7 @@ Perl_ck_state(pTHX_ OP *o)
        && (ckWARN(WARN_DEPRECATED)))
     {
        Perl_warner(aTHX_ packWARN(WARN_DEPRECATED),
-                           "Use of my in conditional deprecated");
+                           "Deprecated use of my() in conditional");
     }
     return o;
 }
index 19bfa5e..a2c7348 100644 (file)
@@ -4282,7 +4282,7 @@ old way has bad side effects.
 it already went past any symlink you are presumably trying to look for.
 The operation returned C<undef>.  Use a filename instead.
 
-=item Use of my in conditional deprecated
+=item Deprecated use of my() in conditional
 
 (D deprecated) You used a C<my> declaration within a conditional
 expression of some sort, such as C<my $x=1 if foo> or C<foo && (my $x = 1)>.
index 486a00a..c101ffe 100644 (file)
@@ -1050,3 +1050,60 @@ Useless localization of defined or assignment (//=) at - line 45.
 Useless localization of substr at - line 48.
 Useless localization of match position at - line 49.
 Useless localization of vec at - line 50.
+########
+# op.c
+use warnings 'deprecated';
+our $a;
+my $x1 if $a;
+my @x2 if $a;
+my %x3 if $a;
+my ($x4) if $a;
+my ($x5,@x6, %x7) if $a;
+my @x8 if ($a+$a);
+my $x9 = 1+$a if $a;
+my ($x10,@x11) = ($a,$a+$a) if $a;
+my ($x12) = 1 if $a;
+my $y1 unless $a;
+my @y2 unless $a;
+my %y3 unless $a;
+my ($y4) unless $a;
+my ($y5,@y6, %y7) unless $a;
+my @y8 unless ($a+$a);
+$a && my $z1;
+$a && my (%z2);
+$a || my @z3;
+$a || my (%z4);
+$a || my (%z4,$z5);
+$a && (my $z6 = 1);
+$a && (my ($z7,@z8) = (1,2,3));
+
+# these shouldn't warn
+our $x if $a;
+our $x unless $a;
+if ($a) { my $w1 }
+if (my $w2) { $a=1 }
+if ($a && (my $w3 = 1)) {$a = 2}
+
+EXPECT
+Deprecated use of my() in conditional at - line 4.
+Deprecated use of my() in conditional at - line 5.
+Deprecated use of my() in conditional at - line 6.
+Deprecated use of my() in conditional at - line 7.
+Deprecated use of my() in conditional at - line 8.
+Deprecated use of my() in conditional at - line 9.
+Deprecated use of my() in conditional at - line 10.
+Deprecated use of my() in conditional at - line 11.
+Deprecated use of my() in conditional at - line 12.
+Deprecated use of my() in conditional at - line 13.
+Deprecated use of my() in conditional at - line 14.
+Deprecated use of my() in conditional at - line 15.
+Deprecated use of my() in conditional at - line 16.
+Deprecated use of my() in conditional at - line 17.
+Deprecated use of my() in conditional at - line 18.
+Deprecated use of my() in conditional at - line 19.
+Deprecated use of my() in conditional at - line 20.
+Deprecated use of my() in conditional at - line 21.
+Deprecated use of my() in conditional at - line 22.
+Deprecated use of my() in conditional at - line 23.
+Deprecated use of my() in conditional at - line 24.
+Deprecated use of my() in conditional at - line 25.