Disallow declarations outside of the global scope.
[hiphop-php.git] / hphp / test / slow / inout / interp-retm / tests / method-interop-dynamic.php
blob246a8cf53bf63e36e7a7200e6c3fdd6c7ed23fec
1 <?hh /* @generated by make_suite.sh */
3 class Herp {
4 function foo(inout $x) {
5 $x = 42;
6 $bt = array_slice(debug_backtrace(), 0, 2);
7 echo implode(', ', array_map($a ==> $a['function'], $bt))."\n";
8 return 'Hello';
11 function bar(&$y) {
12 $y = 9;
13 $bt = array_slice(debug_backtrace(), 0, 2);
14 echo implode(', ', array_map($a ==> $a['function'], $bt))."\n";
15 return 'world!';
18 static function fizz(inout $x) {
19 $x = 24;
20 $bt = array_slice(debug_backtrace(), 0, 2);
21 echo implode(', ', array_map($a ==> $a['function'], $bt))."\n";
22 return 'FIZZ';
25 static function buzz(&$y) {
26 $y = 19;
27 $bt = array_slice(debug_backtrace(), 0, 2);
28 echo implode(', ', array_map($a ==> $a['function'], $bt))."\n";
29 return 'BUZZ';
33 function main($obj, $Herp, $foo, $bar, $fizz, $buzz) {
34 $a = null;
35 $b = null;
36 $c = null;
37 $g1 = $obj->$foo(inout $a);
38 $g2 = $obj->$foo($b);
39 $g3 = $obj->$foo(&$c);
40 var_dump($a, $b, $c);
42 $x = null;
43 $y = null;
44 $z = null;
45 $h1 = $obj->$bar($x);
46 $h2 = $obj->$bar(&$y);
47 $h3 = $obj->$bar(inout $z);
48 var_dump($x, $y, $z);
50 echo "$g1, $h1\n";
51 echo "$g2, $h2\n";
52 echo "$g2, $h2\n";
54 $q = null;
55 $r = null;
56 $s = null;
57 $f1 = Herp::$fizz(inout $q);
58 $f2 = Herp::$fizz($r);
59 $f3 = Herp::$fizz(&$s);
60 var_dump($q, $r, $s);
62 $t = null;
63 $u = null;
64 $v = null;
65 $k1 = Herp::$buzz(inout $t);
66 $k2 = Herp::$buzz($u);
67 $k3 = Herp::$buzz(&$v);
68 var_dump($t, $u, $v);
70 echo "$f1, $k1\n";
71 echo "$f2, $k2\n";
72 echo "$f2, $k2\n";
74 $q2 = null;
75 $r2 = null;
76 $s2 = null;
77 $f4 = $Herp::$fizz(inout $q2);
78 $f5 = $Herp::$fizz($r2);
79 $f6 = $Herp::$fizz(&$s2);
80 var_dump($q2, $r2, $s2);
82 $t2 = null;
83 $u2 = null;
84 $v2 = null;
85 $k4 = $Herp::$buzz(inout $t2);
86 $k5 = $Herp::$buzz($u2);
87 $k6 = $Herp::$buzz(&$v2);
88 var_dump($t2, $u2, $v2);
90 echo "$f4, $k4\n";
91 echo "$f5, $k5\n";
92 echo "$f6, $k6\n";
94 $q3 = null;
95 $r3 = null;
96 $s3 = null;
97 $f7 = $Herp::fizz(inout $q3);
98 $f8 = $Herp::fizz($r3);
99 $f9 = $Herp::fizz(&$s3);
100 var_dump($q3, $r3, $s3);
102 $t3 = null;
103 $u3 = null;
104 $v3 = null;
105 $k7 = $Herp::$buzz(inout $t3);
106 $k8 = $Herp::$buzz($u3);
107 $k9 = $Herp::$buzz(&$v3);
108 var_dump($t3, $u3, $v3);
110 echo "$f7, $k7\n";
111 echo "$f8, $k8\n";
112 echo "$f9, $k9\n";
115 $obj = new Herp;
116 main($obj, 'Herp', 'foo', 'bar', 'fizz', 'buzz');