This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[perl #127976] Restore ‘or array’ to each($s) err
[perl5.git] / t / lib / croak / op
index eb5974f..6e19ff8 100644 (file)
@@ -1,17 +1,24 @@
 __END__
+# NAME join,
+join,
+EXPECT
+Not enough arguments for join or string at - line 1, near "join,"
+Execution of - aborted due to compilation errors.
+########
 # NAME my $<special>
 my $!;
 EXPECT
 Can't use global $! in "my" at - line 1, near "my $!"
 Execution of - aborted due to compilation errors.
 ########
-# NAME my $<special_unicode>
-use utf8;
-BEGIN { binmode STDERR, ":utf8" }
-my $♠;
+# NAME my $<non-ASCII> doesn't output garbage
+# \xB6 is same character in all three EBCDIC pages and Latin1
+use open ":std", ":utf8";
+eval qq|my \$\xb6;|; # ¶ in Latin-1, and EBCDIC 1047, 037, POSIX-BC
+print $@;
+exit 1;
 EXPECT
-Can't use global $♠ in "my" at - line 3, near "my $♠"
-Execution of - aborted due to compilation errors.
+Can't use global $¶ in "my" at (eval 1) line 1, near "my $¶"
 ########
 # NAME OP_HELEM fields
 package Foo;
@@ -25,6 +32,13 @@ $f->{c} = 1;
 EXPECT
 No such class field "c" in variable $f of type Foo at - line 8.
 ########
+# NAME "No such field" with block: ${$ref}{key}
+%FIELDS; # empty hash so all keys are invalid
+my main $r;
+${$r}{key};
+EXPECT
+No such class field "key" in variable $r of type main at - line 3.
+########
 # NAME OP_HSLICE fields
 package Foo;
 use fields qw(a b);
@@ -37,16 +51,55 @@ my Foo $f = Foo->new;
 EXPECT
 No such class field "c" in variable $f of type Foo at - line 8.
 ########
-# NAME my sub
-my sub foo { }
+# NAME Single OP_HSLICE field
+%FIELDS; # vivify it, but leave it empty, so all fields are invalid
+my main $f;
+@$f{"a"};
+EXPECT
+No such class field "a" in variable $f of type main at - line 3.
+########
+# NAME OP_KVHSLICE fields
+BEGIN { %FIELDS = qw(a 1 b 1); }
+my main $f;
+%$f{"a","c"};
+EXPECT
+No such class field "c" in variable $f of type main at - line 3.
+########
+# NAME Can't declare conditional
+my($a?$b:$c)
+EXPECT
+Can't declare conditional expression in "my" at - line 1, at EOF
+Execution of - aborted due to compilation errors.
+########
+# NAME Can't declare do block
+my(do{})
+EXPECT
+Can't declare do block in "my" at - line 1, at EOF
+Execution of - aborted due to compilation errors.
+########
+# NAME ($_, state $x) = ...
+($_, CORE::state $x) = ();
 EXPECT
-"my sub" not yet implemented at - line 1.
+Initialization of state variables in list context currently forbidden at - line 1, near ");"
+Execution of - aborted due to compilation errors.
+########
+# NAME my $y; ($y, state $x) = ...
+my $y; ($y, CORE::state $x) = ();
+EXPECT
+Initialization of state variables in list context currently forbidden at - line 1, near ");"
+Execution of - aborted due to compilation errors.
 ########
 # NAME delete BAD
 delete $x;
 EXPECT
 delete argument is not a HASH or ARRAY element or slice at - line 1.
 ########
+# NAME delete sort
+use warnings;
+delete sort; # used to warn about scalar context, too
+EXPECT
+delete argument is not a HASH or ARRAY element or slice at - line 2.
+########
 # NAME exists BAD
 exists $x;
 EXPECT
@@ -56,3 +109,45 @@ exists argument is not a HASH or ARRAY element or a subroutine at - line 1.
 exists &foo()
 EXPECT
 exists argument is not a subroutine name at - line 1.
+########
+# NAME push BAREWORD
+push FRED;
+EXPECT
+Type of arg 1 to push must be array (not constant item) at - line 1, near "FRED;"
+Execution of - aborted due to compilation errors.
+########
+# NAME pop BAREWORD
+pop FRED;
+EXPECT
+Type of arg 1 to pop must be array (not constant item) at - line 1, near "FRED;"
+Execution of - aborted due to compilation errors.
+########
+# NAME shift BAREWORD
+shift FRED;
+EXPECT
+Type of arg 1 to shift must be array (not constant item) at - line 1, near "FRED;"
+Execution of - aborted due to compilation errors.
+########
+# NAME unshift BAREWORD
+unshift FRED;
+EXPECT
+Type of arg 1 to unshift must be array (not constant item) at - line 1, near "FRED;"
+Execution of - aborted due to compilation errors.
+########
+# NAME keys BAREWORD
+@a = keys FRED ;
+EXPECT
+Type of arg 1 to keys must be hash or array (not constant item) at - line 1, near "FRED ;"
+Execution of - aborted due to compilation errors.
+########
+# NAME values BAREWORD
+@a = values FRED ;
+EXPECT
+Type of arg 1 to values must be hash or array (not constant item) at - line 1, near "FRED ;"
+Execution of - aborted due to compilation errors.
+########
+# NAME each BAREWORD
+@a = each FRED ;
+EXPECT
+Type of arg 1 to each must be hash or array (not constant item) at - line 1, near "FRED ;"
+Execution of - aborted due to compilation errors.