Re-deprecate $[
authorFather Chrysostomos <sprout@cpan.org>
Thu, 17 Nov 2011 17:59:09 +0000 (09:59 -0800)
committerFather Chrysostomos <sprout@cpan.org>
Thu, 17 Nov 2011 18:24:23 +0000 (10:24 -0800)
This was something e1dccc0d3 removed that b82b06b8 failed to restore.

16 files changed:
ext/arybase/arybase.xs
ext/arybase/t/aeach.t
ext/arybase/t/aelem.t
ext/arybase/t/akeys.t
ext/arybase/t/arybase.t
ext/arybase/t/aslice.t
ext/arybase/t/av2arylen.t
ext/arybase/t/index.t
ext/arybase/t/lslice.t
ext/arybase/t/pos.t
ext/arybase/t/scope.t
ext/arybase/t/splice.t
ext/arybase/t/substr.t
pod/perldiag.pod
t/lib/warnings/op
t/op/array_base.t

index 765b1eb..d654b54 100644 (file)
@@ -162,6 +162,9 @@ STATIC void ab_process_assignment(pTHX_ OP *left, OP *right) {
  if (ab_op_is_dollar_bracket(left) && right->op_type == OP_CONST) {
   set_arybase_to(SvIV(cSVOPx_sv(right)));
   ab_neuter_dollar_bracket(left);
+  Perl_ck_warner_d(aTHX_
+   packWARN(WARN_DEPRECATED), "Use of assignment to $[ is deprecated"
+  );
  }
 }
 
index f56d39e..241677a 100644 (file)
@@ -1,4 +1,4 @@
-use warnings;
+use warnings; no warnings 'deprecated';
 use strict;
 
 BEGIN {
index d6b8c38..c26a2a8 100644 (file)
@@ -1,4 +1,4 @@
-use warnings;
+use warnings; no warnings 'deprecated';
 use strict;
 
 use Test::More tests => 33;
index 45af13b..53e9db1 100644 (file)
@@ -1,4 +1,4 @@
-use warnings;
+use warnings; no warnings 'deprecated';
 use strict;
 
 BEGIN {
index a7edaf4..f3d3287 100644 (file)
@@ -3,6 +3,7 @@
 # Basic tests for $[ as a variable
 # plus miscellaneous bug fix tests
 
+no warnings 'deprecated';
 use Test::More tests => 7;
 
 sub outside_base_scope { return "${'['}" }
index 38aa87b..f4a507d 100644 (file)
@@ -1,4 +1,4 @@
-use warnings;
+use warnings; no warnings 'deprecated';
 use strict;
 
 use Test::More tests => 18;
index 988cca9..6c1deb2 100644 (file)
@@ -1,4 +1,4 @@
-use warnings;
+use warnings; no warnings 'deprecated';
 use strict;
 
 use Test::More tests => 8;
index 58efe74..86dde88 100644 (file)
@@ -1,4 +1,4 @@
-use warnings;
+use warnings; no warnings 'deprecated';
 use strict;
 
 use Test::More tests => 12;
index 6247a5e..c012b84 100644 (file)
@@ -1,4 +1,4 @@
-use warnings;
+use warnings; no warnings 'deprecated';
 use strict;
 
 use Test::More tests => 11;
index f2f6504..970e17e 100644 (file)
@@ -1,4 +1,4 @@
-use warnings;
+use warnings; no warnings 'deprecated';
 use strict;
 
 use Test::More tests => 12;
index 5fb0993..07b4176 100644 (file)
@@ -1,4 +1,4 @@
-use warnings;
+use warnings; no warnings 'deprecated';
 use strict;
 
 use Test::More tests => 14;
index e2db280..9fd618a 100644 (file)
@@ -1,4 +1,4 @@
-use warnings;
+use warnings; no warnings 'deprecated';
 use strict;
 
 use Test::More tests => 23;
index 793293b..ecfba48 100644 (file)
@@ -1,4 +1,4 @@
-use warnings;
+use warnings; no warnings 'deprecated';
 use strict;
 
 use Test::More tests => 6;
index 20ee641..594d58a 100644 (file)
@@ -5147,6 +5147,11 @@ you can write it as C<push(@tied_array,())> to avoid this warning.
 (F) The "use" keyword is recognized and executed at compile time, and
 returns no useful value.  See L<perlmod>.
 
+=item Use of assignment to $[ is deprecated
+
+(D deprecated) The C<$[> variable (index of the first element in an array)
+is deprecated. See L<perlvar/"$[">.
+
 =item Use of bare << to mean <<"" is deprecated
 
 (D deprecated) You are now encouraged to use the explicitly quoted
index 7f00838..3797b38 100644 (file)
@@ -1171,6 +1171,21 @@ Deprecated use of my() in false conditional at - line 7.
 Deprecated use of my() in false conditional at - line 8.
 ########
 # op.c
+$[ = 1;
+($[) = 1;
+use warnings 'deprecated';
+$[ = 2;
+($[) = 2;
+no warnings 'deprecated';
+$[ = 3;
+($[) = 3;
+EXPECT
+Use of assignment to $[ is deprecated at - line 2.
+Use of assignment to $[ is deprecated at - line 3.
+Use of assignment to $[ is deprecated at - line 5.
+Use of assignment to $[ is deprecated at - line 6.
+########
+# op.c
 use warnings 'void';
 @x = split /y/, "z";
 $x = split /y/, "z";
index fe5045a..34404d4 100644 (file)
@@ -1,5 +1,6 @@
 #!perl -w
 use strict;
+no warnings 'deprecated';
 
 BEGIN {
  require './test.pl';