Skip to content

Commit a90abe2

Browse files
committed
Convert warnings to TypeError in php_spl.c
Closes GH-4991
1 parent 3364858 commit a90abe2

File tree

3 files changed

+60
-96
lines changed

3 files changed

+60
-96
lines changed

ext/spl/php_spl.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,8 @@ PHP_FUNCTION(class_parents)
9292
}
9393

9494
if (Z_TYPE_P(obj) != IS_OBJECT && Z_TYPE_P(obj) != IS_STRING) {
95-
php_error_docref(NULL, E_WARNING, "object or string expected");
96-
RETURN_FALSE;
95+
zend_type_error("object or string expected");
96+
return;
9797
}
9898

9999
if (Z_TYPE_P(obj) == IS_STRING) {
@@ -125,8 +125,8 @@ PHP_FUNCTION(class_implements)
125125
return;
126126
}
127127
if (Z_TYPE_P(obj) != IS_OBJECT && Z_TYPE_P(obj) != IS_STRING) {
128-
php_error_docref(NULL, E_WARNING, "object or string expected");
129-
RETURN_FALSE;
128+
zend_type_error("object or string expected");
129+
return;
130130
}
131131

132132
if (Z_TYPE_P(obj) == IS_STRING) {
@@ -154,8 +154,8 @@ PHP_FUNCTION(class_uses)
154154
return;
155155
}
156156
if (Z_TYPE_P(obj) != IS_OBJECT && Z_TYPE_P(obj) != IS_STRING) {
157-
php_error_docref(NULL, E_WARNING, "object or string expected");
158-
RETURN_FALSE;
157+
zend_type_error("object or string expected");
158+
return;
159159
}
160160

161161
if (Z_TYPE_P(obj) == IS_STRING) {

ext/spl/tests/class_implements_variation1.phpt

Lines changed: 27 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,11 @@ $inputs = array(
105105

106106
foreach($inputs as $key =>$value) {
107107
echo "\n--$key--\n";
108-
var_dump( class_implements($value, $autoload) );
108+
try {
109+
var_dump( class_implements($value, $autoload) );
110+
} catch (\TypeError $e) {
111+
echo $e->getMessage() . \PHP_EOL;
112+
}
109113
};
110114

111115
fclose($res);
@@ -115,80 +119,61 @@ fclose($res);
115119
*** Testing class_implements() : variation ***
116120

117121
--int 0--
118-
Error: 2 - class_implements(): object or string expected, %s(%d)
119-
bool(false)
122+
object or string expected
120123

121124
--int 1--
122-
Error: 2 - class_implements(): object or string expected, %s(%d)
123-
bool(false)
125+
object or string expected
124126

125127
--int 12345--
126-
Error: 2 - class_implements(): object or string expected, %s(%d)
127-
bool(false)
128+
object or string expected
128129

129130
--int -12345--
130-
Error: 2 - class_implements(): object or string expected, %s(%d)
131-
bool(false)
131+
object or string expected
132132

133133
--float 10.5--
134-
Error: 2 - class_implements(): object or string expected, %s(%d)
135-
bool(false)
134+
object or string expected
136135

137136
--float -10.5--
138-
Error: 2 - class_implements(): object or string expected, %s(%d)
139-
bool(false)
137+
object or string expected
140138

141139
--float 12.3456789000e10--
142-
Error: 2 - class_implements(): object or string expected, %s(%d)
143-
bool(false)
140+
object or string expected
144141

145142
--float -12.3456789000e10--
146-
Error: 2 - class_implements(): object or string expected, %s(%d)
147-
bool(false)
143+
object or string expected
148144

149145
--float .5--
150-
Error: 2 - class_implements(): object or string expected, %s(%d)
151-
bool(false)
146+
object or string expected
152147

153148
--empty array--
154-
Error: 2 - class_implements(): object or string expected, %s(%d)
155-
bool(false)
149+
object or string expected
156150

157151
--int indexed array--
158-
Error: 2 - class_implements(): object or string expected, %s(%d)
159-
bool(false)
152+
object or string expected
160153

161154
--associative array--
162-
Error: 2 - class_implements(): object or string expected, %s(%d)
163-
bool(false)
155+
object or string expected
164156

165157
--nested arrays--
166-
Error: 2 - class_implements(): object or string expected, %s(%d)
167-
bool(false)
158+
object or string expected
168159

169160
--uppercase NULL--
170-
Error: 2 - class_implements(): object or string expected, %s(%d)
171-
bool(false)
161+
object or string expected
172162

173163
--lowercase null--
174-
Error: 2 - class_implements(): object or string expected, %s(%d)
175-
bool(false)
164+
object or string expected
176165

177166
--lowercase true--
178-
Error: 2 - class_implements(): object or string expected, %s(%d)
179-
bool(false)
167+
object or string expected
180168

181169
--lowercase false--
182-
Error: 2 - class_implements(): object or string expected, %s(%d)
183-
bool(false)
170+
object or string expected
184171

185172
--uppercase TRUE--
186-
Error: 2 - class_implements(): object or string expected, %s(%d)
187-
bool(false)
173+
object or string expected
188174

189175
--uppercase FALSE--
190-
Error: 2 - class_implements(): object or string expected, %s(%d)
191-
bool(false)
176+
object or string expected
192177

193178
--empty string DQ--
194179
Error: 2 - class_implements(): Class does not exist and could not be loaded, %s(%d)
@@ -207,13 +192,10 @@ array(0) {
207192
}
208193

209194
--undefined var--
210-
Error: 2 - class_implements(): object or string expected, %s(%d)
211-
bool(false)
195+
object or string expected
212196

213197
--unset var--
214-
Error: 2 - class_implements(): object or string expected, %s(%d)
215-
bool(false)
198+
object or string expected
216199

217200
--resource--
218-
Error: 2 - class_implements(): object or string expected, %s(%d)
219-
bool(false)
201+
object or string expected

ext/spl/tests/class_uses_variation1.phpt

Lines changed: 27 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,11 @@ $inputs = array(
105105

106106
foreach($inputs as $key =>$value) {
107107
echo "\n--$key--\n";
108-
var_dump( class_uses($value, $autoload) );
108+
try {
109+
var_dump( class_uses($value, $autoload) );
110+
} catch (\TypeError $e) {
111+
echo $e->getMessage() . \PHP_EOL;
112+
}
109113
};
110114

111115
fclose($res);
@@ -115,80 +119,61 @@ fclose($res);
115119
*** Testing class_uses() : variation ***
116120

117121
--int 0--
118-
Error: 2 - class_uses(): object or string expected, %s(%d)
119-
bool(false)
122+
object or string expected
120123

121124
--int 1--
122-
Error: 2 - class_uses(): object or string expected, %s(%d)
123-
bool(false)
125+
object or string expected
124126

125127
--int 12345--
126-
Error: 2 - class_uses(): object or string expected, %s(%d)
127-
bool(false)
128+
object or string expected
128129

129130
--int -12345--
130-
Error: 2 - class_uses(): object or string expected, %s(%d)
131-
bool(false)
131+
object or string expected
132132

133133
--float 10.5--
134-
Error: 2 - class_uses(): object or string expected, %s(%d)
135-
bool(false)
134+
object or string expected
136135

137136
--float -10.5--
138-
Error: 2 - class_uses(): object or string expected, %s(%d)
139-
bool(false)
137+
object or string expected
140138

141139
--float 12.3456789000e10--
142-
Error: 2 - class_uses(): object or string expected, %s(%d)
143-
bool(false)
140+
object or string expected
144141

145142
--float -12.3456789000e10--
146-
Error: 2 - class_uses(): object or string expected, %s(%d)
147-
bool(false)
143+
object or string expected
148144

149145
--float .5--
150-
Error: 2 - class_uses(): object or string expected, %s(%d)
151-
bool(false)
146+
object or string expected
152147

153148
--empty array--
154-
Error: 2 - class_uses(): object or string expected, %s(%d)
155-
bool(false)
149+
object or string expected
156150

157151
--int indexed array--
158-
Error: 2 - class_uses(): object or string expected, %s(%d)
159-
bool(false)
152+
object or string expected
160153

161154
--associative array--
162-
Error: 2 - class_uses(): object or string expected, %s(%d)
163-
bool(false)
155+
object or string expected
164156

165157
--nested arrays--
166-
Error: 2 - class_uses(): object or string expected, %s(%d)
167-
bool(false)
158+
object or string expected
168159

169160
--uppercase NULL--
170-
Error: 2 - class_uses(): object or string expected, %s(%d)
171-
bool(false)
161+
object or string expected
172162

173163
--lowercase null--
174-
Error: 2 - class_uses(): object or string expected, %s(%d)
175-
bool(false)
164+
object or string expected
176165

177166
--lowercase true--
178-
Error: 2 - class_uses(): object or string expected, %s(%d)
179-
bool(false)
167+
object or string expected
180168

181169
--lowercase false--
182-
Error: 2 - class_uses(): object or string expected, %s(%d)
183-
bool(false)
170+
object or string expected
184171

185172
--uppercase TRUE--
186-
Error: 2 - class_uses(): object or string expected, %s(%d)
187-
bool(false)
173+
object or string expected
188174

189175
--uppercase FALSE--
190-
Error: 2 - class_uses(): object or string expected, %s(%d)
191-
bool(false)
176+
object or string expected
192177

193178
--empty string DQ--
194179
Error: 2 - class_uses(): Class does not exist and could not be loaded, %s(%d)
@@ -207,13 +192,10 @@ array(0) {
207192
}
208193

209194
--undefined var--
210-
Error: 2 - class_uses(): object or string expected, %s(%d)
211-
bool(false)
195+
object or string expected
212196

213197
--unset var--
214-
Error: 2 - class_uses(): object or string expected, %s(%d)
215-
bool(false)
198+
object or string expected
216199

217200
--resource--
218-
Error: 2 - class_uses(): object or string expected, %s(%d)
219-
bool(false)
201+
object or string expected

0 commit comments

Comments
 (0)