This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Test croaks inadvertently rmvd by bd2688c4c
[perl5.git] / t / lib / croak / op
index eb5974f..8be9b12 100644 (file)
@@ -5,14 +5,6 @@ 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 $♠;
-EXPECT
-Can't use global $♠ in "my" at - line 3, near "my $♠"
-Execution of - aborted due to compilation errors.
-########
 # NAME OP_HELEM fields
 package Foo;
 use fields qw(a b);
@@ -25,6 +17,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 +36,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
-"my sub" not yet implemented at - line 1.
+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
+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 +94,49 @@ 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
+no warnings 'experimental';
+push FRED;
+EXPECT
+Type of arg 1 to push must be array (not constant item) at - line 2, near "FRED;"
+Execution of - aborted due to compilation errors.
+########
+# NAME pop BAREWORD
+no warnings 'experimental';
+pop FRED;
+EXPECT
+Type of arg 1 to pop must be array (not constant item) at - line 2, near "FRED;"
+Execution of - aborted due to compilation errors.
+########
+# NAME shift BAREWORD
+no warnings 'experimental';
+shift FRED;
+EXPECT
+Type of arg 1 to shift must be array (not constant item) at - line 2, near "FRED;"
+Execution of - aborted due to compilation errors.
+########
+# NAME unshift BAREWORD
+no warnings 'experimental';
+unshift FRED;
+EXPECT
+Type of arg 1 to unshift must be array (not constant item) at - line 2, 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 (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 (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 (not constant item) at - line 1, near "FRED ;"
+Execution of - aborted due to compilation errors.