Skip to content

Commit ecdaa10

Browse files
committed
Add test prior to optimization
1 parent 9b48fe7 commit ecdaa10

1 file changed

Lines changed: 202 additions & 0 deletions

File tree

Lines changed: 202 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,202 @@
1+
--TEST--
2+
Return type check converted to a cast
3+
--INI--
4+
opcache.enable=1
5+
opcache.enable_cli=1
6+
opcache.optimization_level=-1
7+
opcache.opt_debug_level=0x20000
8+
opcache.preload=
9+
--EXTENSIONS--
10+
opcache
11+
--FILE--
12+
<?php
13+
14+
function strToBool(string $v): bool {
15+
return $v;
16+
}
17+
function intToBool(int $v): bool {
18+
return $v;
19+
}
20+
function floatToBool(float $v): bool {
21+
return $v;
22+
}
23+
24+
function strToInt(string $v): int {
25+
return $v;
26+
}
27+
function floatToInt(float $v): int {
28+
return $v;
29+
}
30+
function boolToInt(bool $v): int {
31+
return $v;
32+
}
33+
34+
function strToFloat(string $v): float {
35+
return $v;
36+
}
37+
function intToFloat(int $v): float {
38+
return $v;
39+
}
40+
function boolToFloat(bool $v): float {
41+
return $v;
42+
}
43+
44+
function floatToString(float $v): string {
45+
return $v;
46+
}
47+
function intToString(int $v): string {
48+
return $v;
49+
}
50+
function boolToString(bool $v): string {
51+
return $v;
52+
}
53+
54+
function floatToUnion(float $v): string|int|bool {
55+
return $v;
56+
}
57+
function intToUnion(int $v): string|float|bool {
58+
return $v;
59+
}
60+
function boolToUnion(bool $v): string|int|float {
61+
return $v;
62+
}
63+
function stringToUnion(string $v): bool|int|float {
64+
return $v;
65+
}
66+
67+
68+
?>
69+
--EXPECTF--
70+
$_main:
71+
; (lines=1, args=0, vars=0, tmps=0)
72+
; (after optimizer)
73+
; %s:1-58
74+
0000 RETURN int(1)
75+
76+
strToBool:
77+
; (lines=3, args=1, vars=1, tmps=0)
78+
; (after optimizer)
79+
; %s:3-5
80+
0000 CV0($v) = RECV 1
81+
0001 VERIFY_RETURN_TYPE CV0($v)
82+
0002 RETURN CV0($v)
83+
84+
intToBool:
85+
; (lines=3, args=1, vars=1, tmps=0)
86+
; (after optimizer)
87+
; %s:6-8
88+
0000 CV0($v) = RECV 1
89+
0001 VERIFY_RETURN_TYPE CV0($v)
90+
0002 RETURN CV0($v)
91+
92+
floatToBool:
93+
; (lines=3, args=1, vars=1, tmps=0)
94+
; (after optimizer)
95+
; %s:9-11
96+
0000 CV0($v) = RECV 1
97+
0001 VERIFY_RETURN_TYPE CV0($v)
98+
0002 RETURN CV0($v)
99+
100+
strToInt:
101+
; (lines=3, args=1, vars=1, tmps=0)
102+
; (after optimizer)
103+
; %s:13-15
104+
0000 CV0($v) = RECV 1
105+
0001 VERIFY_RETURN_TYPE CV0($v)
106+
0002 RETURN CV0($v)
107+
108+
floatToInt:
109+
; (lines=3, args=1, vars=1, tmps=0)
110+
; (after optimizer)
111+
; %s:16-18
112+
0000 CV0($v) = RECV 1
113+
0001 VERIFY_RETURN_TYPE CV0($v)
114+
0002 RETURN CV0($v)
115+
116+
boolToInt:
117+
; (lines=3, args=1, vars=1, tmps=0)
118+
; (after optimizer)
119+
; %s:19-21
120+
0000 CV0($v) = RECV 1
121+
0001 VERIFY_RETURN_TYPE CV0($v)
122+
0002 RETURN CV0($v)
123+
124+
strToFloat:
125+
; (lines=3, args=1, vars=1, tmps=0)
126+
; (after optimizer)
127+
; %s:23-25
128+
0000 CV0($v) = RECV 1
129+
0001 VERIFY_RETURN_TYPE CV0($v)
130+
0002 RETURN CV0($v)
131+
132+
intToFloat:
133+
; (lines=3, args=1, vars=1, tmps=0)
134+
; (after optimizer)
135+
; %s:26-28
136+
0000 CV0($v) = RECV 1
137+
0001 VERIFY_RETURN_TYPE CV0($v)
138+
0002 RETURN CV0($v)
139+
140+
boolToFloat:
141+
; (lines=3, args=1, vars=1, tmps=0)
142+
; (after optimizer)
143+
; %s:29-31
144+
0000 CV0($v) = RECV 1
145+
0001 VERIFY_RETURN_TYPE CV0($v)
146+
0002 RETURN CV0($v)
147+
148+
floatToString:
149+
; (lines=3, args=1, vars=1, tmps=0)
150+
; (after optimizer)
151+
; %s:33-35
152+
0000 CV0($v) = RECV 1
153+
0001 VERIFY_RETURN_TYPE CV0($v)
154+
0002 RETURN CV0($v)
155+
156+
intToString:
157+
; (lines=3, args=1, vars=1, tmps=0)
158+
; (after optimizer)
159+
; %s:36-38
160+
0000 CV0($v) = RECV 1
161+
0001 VERIFY_RETURN_TYPE CV0($v)
162+
0002 RETURN CV0($v)
163+
164+
boolToString:
165+
; (lines=3, args=1, vars=1, tmps=0)
166+
; (after optimizer)
167+
; %s:39-41
168+
0000 CV0($v) = RECV 1
169+
0001 VERIFY_RETURN_TYPE CV0($v)
170+
0002 RETURN CV0($v)
171+
172+
floatToUnion:
173+
; (lines=3, args=1, vars=1, tmps=0)
174+
; (after optimizer)
175+
; %s:43-45
176+
0000 CV0($v) = RECV 1
177+
0001 VERIFY_RETURN_TYPE CV0($v)
178+
0002 RETURN CV0($v)
179+
180+
intToUnion:
181+
; (lines=3, args=1, vars=1, tmps=0)
182+
; (after optimizer)
183+
; %s:46-48
184+
0000 CV0($v) = RECV 1
185+
0001 VERIFY_RETURN_TYPE CV0($v)
186+
0002 RETURN CV0($v)
187+
188+
boolToUnion:
189+
; (lines=3, args=1, vars=1, tmps=0)
190+
; (after optimizer)
191+
; %s:49-51
192+
0000 CV0($v) = RECV 1
193+
0001 VERIFY_RETURN_TYPE CV0($v)
194+
0002 RETURN CV0($v)
195+
196+
stringToUnion:
197+
; (lines=3, args=1, vars=1, tmps=0)
198+
; (after optimizer)
199+
; %s:52-54
200+
0000 CV0($v) = RECV 1
201+
0001 VERIFY_RETURN_TYPE CV0($v)
202+
0002 RETURN CV0($v)

0 commit comments

Comments
 (0)