This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[perl #128204] Fix crash with @a &.= etc.
[perl5.git] / t / lib / croak / op
1 __END__
2 # NAME join,
3 join,
4 EXPECT
5 Not enough arguments for join or string at - line 1, near "join,"
6 Execution of - aborted due to compilation errors.
7 ########
8 # NAME my $<special>
9 my $!;
10 EXPECT
11 Can't use global $! in "my" at - line 1, near "my $!"
12 Execution of - aborted due to compilation errors.
13 ########
14 # NAME my $<non-ASCII> doesn't output garbage
15 # \xB6 is same character in all three EBCDIC pages and Latin1
16 use open ":std", ":utf8";
17 eval qq|my \$\xb6;|; # ¶ in Latin-1, and EBCDIC 1047, 037, POSIX-BC
18 print $@;
19 exit 1;
20 EXPECT
21 Can't use global $¶ in "my" at (eval 1) line 1, near "my $¶"
22 ########
23 # NAME OP_HELEM fields
24 package Foo;
25 use fields qw(a b);
26 sub new {
27     my $class = shift;
28     return fields::new($class);
29 }
30 my Foo $f = Foo->new;
31 $f->{c} = 1;
32 EXPECT
33 No such class field "c" in variable $f of type Foo at - line 8.
34 ########
35 # NAME "No such field" with block: ${$ref}{key}
36 %FIELDS; # empty hash so all keys are invalid
37 my main $r;
38 ${$r}{key};
39 EXPECT
40 No such class field "key" in variable $r of type main at - line 3.
41 ########
42 # NAME OP_HSLICE fields
43 package Foo;
44 use fields qw(a b);
45 sub new {
46     my $class = shift;
47     return fields::new($class);
48 }
49 my Foo $f = Foo->new;
50 @$f{"a", "c"} = ( 1, 2 );
51 EXPECT
52 No such class field "c" in variable $f of type Foo at - line 8.
53 ########
54 # NAME Single OP_HSLICE field
55 %FIELDS; # vivify it, but leave it empty, so all fields are invalid
56 my main $f;
57 @$f{"a"};
58 EXPECT
59 No such class field "a" in variable $f of type main at - line 3.
60 ########
61 # NAME OP_KVHSLICE fields
62 BEGIN { %FIELDS = qw(a 1 b 1); }
63 my main $f;
64 %$f{"a","c"};
65 EXPECT
66 No such class field "c" in variable $f of type main at - line 3.
67 ########
68 # NAME Num-specific &= on @array
69 use feature 'bitwise';
70 @a &= 1;
71 EXPECT
72 The bitwise feature is experimental at - line 2.
73 Can't modify array dereference in numeric bitwise and (&) at - line 2, near "1;"
74 Execution of - aborted due to compilation errors.
75 ########
76 # NAME Num-specific |= on @array
77 use feature 'bitwise';
78 @a |= 1;
79 EXPECT
80 The bitwise feature is experimental at - line 2.
81 Can't modify array dereference in numeric bitwise or (|) at - line 2, near "1;"
82 Execution of - aborted due to compilation errors.
83 ########
84 # NAME Num-specific ^= on @array
85 use feature 'bitwise';
86 @a ^= 1;
87 EXPECT
88 The bitwise feature is experimental at - line 2.
89 Can't modify array dereference in numeric bitwise xor (^) at - line 2, near "1;"
90 Execution of - aborted due to compilation errors.
91 ########
92 # NAME &.= on @array
93 use feature 'bitwise';
94 @a &.= 1;
95 EXPECT
96 The bitwise feature is experimental at - line 2.
97 Can't modify array dereference in string bitwise and (&.) at - line 2, near "1;"
98 Execution of - aborted due to compilation errors.
99 ########
100 # NAME |.= on @array
101 use feature 'bitwise';
102 @a |.= 1;
103 EXPECT
104 The bitwise feature is experimental at - line 2.
105 Can't modify array dereference in string bitwise or (|.) at - line 2, near "1;"
106 Execution of - aborted due to compilation errors.
107 ########
108 # NAME ^.= on @array
109 use feature 'bitwise';
110 @a ^.= 1;
111 EXPECT
112 The bitwise feature is experimental at - line 2.
113 Can't modify array dereference in string bitwise xor (^.) at - line 2, near "1;"
114 Execution of - aborted due to compilation errors.
115 ########
116 # NAME Can't declare conditional
117 my($a?$b:$c)
118 EXPECT
119 Can't declare conditional expression in "my" at - line 1, at EOF
120 Execution of - aborted due to compilation errors.
121 ########
122 # NAME Can't declare do block
123 my(do{})
124 EXPECT
125 Can't declare do block in "my" at - line 1, at EOF
126 Execution of - aborted due to compilation errors.
127 ########
128 # NAME ($_, state $x) = ...
129 ($_, CORE::state $x) = ();
130 EXPECT
131 Initialization of state variables in list context currently forbidden at - line 1, near ");"
132 Execution of - aborted due to compilation errors.
133 ########
134 # NAME my $y; ($y, state $x) = ...
135 my $y; ($y, CORE::state $x) = ();
136 EXPECT
137 Initialization of state variables in list context currently forbidden at - line 1, near ");"
138 Execution of - aborted due to compilation errors.
139 ########
140 # NAME delete BAD
141 delete $x;
142 EXPECT
143 delete argument is not a HASH or ARRAY element or slice at - line 1.
144 ########
145 # NAME delete sort
146 use warnings;
147 delete sort; # used to warn about scalar context, too
148 EXPECT
149 delete argument is not a HASH or ARRAY element or slice at - line 2.
150 ########
151 # NAME exists BAD
152 exists $x;
153 EXPECT
154 exists argument is not a HASH or ARRAY element or a subroutine at - line 1.
155 ########
156 # NAME exists non-sub
157 exists &foo()
158 EXPECT
159 exists argument is not a subroutine name at - line 1.
160 ########
161 # NAME push BAREWORD
162 push FRED;
163 EXPECT
164 Type of arg 1 to push must be array (not constant item) at - line 1, near "FRED;"
165 Execution of - aborted due to compilation errors.
166 ########
167 # NAME pop BAREWORD
168 pop FRED;
169 EXPECT
170 Type of arg 1 to pop must be array (not constant item) at - line 1, near "FRED;"
171 Execution of - aborted due to compilation errors.
172 ########
173 # NAME shift BAREWORD
174 shift FRED;
175 EXPECT
176 Type of arg 1 to shift must be array (not constant item) at - line 1, near "FRED;"
177 Execution of - aborted due to compilation errors.
178 ########
179 # NAME unshift BAREWORD
180 unshift FRED;
181 EXPECT
182 Type of arg 1 to unshift must be array (not constant item) at - line 1, near "FRED;"
183 Execution of - aborted due to compilation errors.
184 ########
185 # NAME keys BAREWORD
186 @a = keys FRED ;
187 EXPECT
188 Type of arg 1 to keys must be hash or array (not constant item) at - line 1, near "FRED ;"
189 Execution of - aborted due to compilation errors.
190 ########
191 # NAME values BAREWORD
192 @a = values FRED ;
193 EXPECT
194 Type of arg 1 to values must be hash or array (not constant item) at - line 1, near "FRED ;"
195 Execution of - aborted due to compilation errors.
196 ########
197 # NAME each BAREWORD
198 @a = each FRED ;
199 EXPECT
200 Type of arg 1 to each must be hash or array (not constant item) at - line 1, near "FRED ;"
201 Execution of - aborted due to compilation errors.