Basic flow analysis on if statements
[hiphop-php.git] / hphp / test / slow / builtin-io.php
blobab372e2df140d6784427e61d37b0c5ed0d1f4fa0
1 <?hh
3 /*
4 * function builtin_io(
5 * string $s,
6 * inout string $str,
7 * inout int $num,
8 * int $i,
9 * inout object $obj
10 * object $o,
11 * mixed $m,
12 * inout mixed $mix,
13 * bool retOrig,
14 * <<__OutOnly("KindOfBoolean")>> inout mixed $out1,
15 * <<__OutOnly("KindOfArray")>> inout mixed $out2,
16 * <<__OutOnly("KindOfObject")>> inout mixed $out3,
17 * ): array;
19 function go(bool $ret) {
20 $ret__str = (string)($ret);
21 echo "ret = $ret__str\n\n";
23 $s1 = "hello";
24 $s2 = "world";
25 $i1 = 10;
26 $i2 = 12;
27 $o1 = new stdClass;
28 $o2 = new Exception;
29 $m1 = "mixed";
30 $m2 = 42;
31 $out1 = new stdClass;
32 $out2 = varray[1, 2, new stdClass];
33 $out3 = "beepboop";
34 var_dump(
35 "one",
36 "two",
37 varray[1,2,3],
38 $s1,
39 $s2,
40 $i1,
41 $i2,
42 array_map(
43 $x ==> is_object($x) ? get_class($x) : $x,
44 __hhvm_intrinsics\builtin_io(
45 $s1,
46 inout $s2,
47 inout $i1,
48 $i2,
49 inout $o1,
50 $o2,
51 $m1,
52 inout $m2,
53 $ret,
54 inout $out1,
55 inout $out2,
56 inout $out3,
60 var_dump(
61 $s1,
62 $s2,
63 $i1,
64 $i2,
65 get_class($o1),
66 get_class($o2),
67 gettype($m1),
68 gettype($m2),
69 $out1,
70 $out2,
71 $out3,
73 echo "====================================================================\n";
77 * function builtin_io(
78 * string $s,
79 * inout string $str,
80 * inout int $num,
81 * int $i,
82 * inout object $obj
83 * object $o,
84 * mixed $m,
85 * inout mixed $mix,
86 * bool retOrig,
87 * <<__OutOnly("KindOfBoolean")>> inout mixed $out1,
88 * <<__OutOnly("KindOfArray")>> inout mixed $out2,
89 * <<__OutOnly("KindOfObject")>> inout mixed $out3,
90 * ): array;
92 function go2(bool $ret) {
93 $ret__str = (string)($ret);
94 echo "ret = $ret__str\n\n";
96 $s1 = "hello";
97 $s2 = "world";
98 $i1 = 10;
99 $i2 = 12;
100 $o1 = new stdClass;
101 $o2 = new Exception;
102 $m1 = "mixed";
103 $m2 = 42;
104 $out1 = new stdClass;
105 $out2 = varray[1, 2, new stdClass];
106 $out3 = "beepboop";
107 var_dump(
108 "one",
109 "two",
110 varray[1,2,3],
111 $s1,
112 $s2,
113 $i1,
114 $i2,
115 array_map(
116 $x ==> is_object($x) ? get_class($x) : $x,
117 __hhvm_intrinsics\builtin_io_no_fca(
118 $s1,
119 inout $s2,
120 inout $i1,
121 $i2,
122 inout $o1,
123 $o2,
124 $m1,
125 inout $m2,
126 $ret,
127 inout $out1,
128 inout $out2,
129 inout $out3,
133 var_dump(
134 $s1,
135 $s2,
136 $i1,
137 $i2,
138 get_class($o1),
139 get_class($o2),
140 gettype($m1),
141 gettype($m2),
142 $out1,
143 $out2,
144 $out3,
146 echo "====================================================================\n";
149 <<__EntryPoint>>
150 function main() {
151 go(true); go(false); go(true);
152 go2(true); go2(false); go2(true);