Disallow declarations outside of the global scope.
[hiphop-php.git] / hphp / test / slow / inout / msrv / tests / method-dynamic.php
blobbcf9f9b4ece8d32b3b92b2f5f143fefb8a761801
1 <?hh /* @generated by make_suite.sh */
3 class Foo {
4 function alpha(inout $a, inout $b) {
5 $a = 'bravo';
6 $b = 'charlie';
7 return 'delta';
9 static function beta(inout $x) {
10 return $x++;
12 function one(inout $t) {
13 $t = debug_backtrace()[0]['function'];
15 static function two(inout $t) {
16 $t = debug_backtrace()[0]['function'];
18 function info(inout $x, inout $y) {
19 $x = self::class;
20 $y = static::class;
21 return $this->beep();
25 class Bar extends Foo {
26 function beep() { return 42; }
27 function info2(inout $x, inout $y, inout $z) {
28 $z = parent::class;
29 return parent::info(inout $x, inout $y);
33 function main($obj, $foo, $alpha, $beta, $one, $two, $bar, $arr1, $arr2) {
34 $a = 'beta';
35 $b = 'gamma';
36 $x = 41;
37 $r1 = $obj->$alpha(inout $a, inout $b);
38 $r2 = $foo::$beta(inout $x);
39 var_dump($a, $b, $x, $r1, $r2);
41 $t = null;
42 $obj->$one(inout $t);
43 var_dump($t);
45 $foo::$two(inout $t);
46 var_dump($t);
48 $q = null;
49 Foo::$two(inout $q);
50 var_dump($q);
52 $r = null;
53 $foo::two(inout $r);
54 var_dump($r);
56 $self = null;
57 $static = null;
58 $parent = null;
59 $num = $bar->info2(inout $self, inout $static, inout $parent);
60 var_dump($num, $self, $static, $parent);
62 $a = null;
63 $arr1(inout $a);
64 var_dump($a);
65 $arr2(inout $a);
66 var_dump($a);
69 main(new Foo, 'Foo', 'alpha', 'beta', 'one', 'two', new Bar,
70 array(new Foo, 'one'), array('Foo', 'two'));