Updating submodules
[hiphop-php.git] / hphp / test / slow / dynamic-ptr.php
blobe3d31ff1a13e14461fb246b9add4b93371efb156
1 <?hh
3 function no_dyn() { echo __FUNCTION__."\n"; }
4 <<__DynamicallyCallable>> function dyn() { echo __FUNCTION__."\n"; }
6 class Cls {
7 static function static_no_dyn() { echo __METHOD__."\n"; }
8 function inst_no_dyn() { echo __METHOD__."\n"; }
9 <<__DynamicallyCallable>> static function static_dyn() {echo __METHOD__."\n";}
10 <<__DynamicallyCallable>> function inst_dyn() { echo __METHOD__."\n"; }
13 function test_it($fname, $cname = null) {
14 try {
15 if ($cname) $f = HH\dynamic_class_meth($cname, $fname);
16 else $f = HH\dynamic_fun($fname);
17 } catch (InvalidArgumentException $ex) {
18 echo "Caught: ".$ex->getMessage()."\n";
19 return;
21 $f();
24 <<__EntryPoint>>
25 function main() {
26 set_error_handler(($_n, $str) ==> { echo "Warning: $str\n"; return true; });
28 test_it('dyn');
29 test_it('no_dyn');
30 test_it('static_dyn', 'Cls');
31 test_it('static_no_dyn', 'Cls');
33 test_it('inst_dyn', 'Cls');
34 test_it('inst_no_dyn', 'Cls');
36 test_it('bad_func_name');
37 test_it('bad_meth_name', 'Cls');
38 test_it('static_dyn', 'BadClassName');