Basic flow analysis on if statements
[hiphop-php.git] / hphp / test / slow / dyn-methcaller-apc.php
blob25c778788621da6835e9f75d7120b91c9bdfc3b1
1 <?hh
3 class C { <<__DynamicallyCallable>> function m() {} }
5 <<__EntryPoint>>
6 function main() {
7 $mc1 = HH\dynamic_meth_caller(C::class, 'm');
8 $mc2 = __hhvm_intrinsics\launder_value($mc1);
10 $v1 = vec[$mc1];
11 $v2 = __hhvm_intrinsics\launder_value(vec[$mc2]);
13 $d1 = dict['a' => $mc1];
14 $d2 = __hhvm_intrinsics\launder_value(dict['a' => $mc2]);
16 $x1 = dict['a' => vec[$mc1]];
17 $x2 = __hhvm_intrinsics\launder_value(dict['a' => vec[$mc2]]);
19 try { apc_store('mc1', $mc1); } catch (Exception $e) { var_dump($e->getMessage()); }
20 try { apc_store('mc2', $mc2); } catch (Exception $e) { var_dump($e->getMessage()); }
21 try { apc_store('v1', $v1); } catch (Exception $e) { var_dump($e->getMessage()); }
22 try { apc_store('v2', $v2); } catch (Exception $e) { var_dump($e->getMessage()); }
23 try { apc_store('d1', $d1); } catch (Exception $e) { var_dump($e->getMessage()); }
24 try { apc_store('d2', $d2); } catch (Exception $e) { var_dump($e->getMessage()); }
26 var_dump(__hhvm_intrinsics\apc_fetch_no_check('mc1'));
27 var_dump(__hhvm_intrinsics\apc_fetch_no_check('mc2'));
28 var_dump(__hhvm_intrinsics\apc_fetch_no_check('v1'));
29 var_dump(__hhvm_intrinsics\apc_fetch_no_check('v2'));
30 var_dump(__hhvm_intrinsics\apc_fetch_no_check('d1'));
31 var_dump(__hhvm_intrinsics\apc_fetch_no_check('d2'));
33 $mc1 = HH\dynamic_meth_caller_force(C::class, 'm');
34 $mc2 = __hhvm_intrinsics\launder_value($mc1);
36 $v1 = vec[$mc1];
37 $v2 = __hhvm_intrinsics\launder_value(vec[$mc2]);
39 $d1 = dict['a' => $mc1];
40 $d2 = __hhvm_intrinsics\launder_value(dict['a' => $mc2]);
42 $x1 = dict['a' => vec[$mc1]];
43 $x2 = __hhvm_intrinsics\launder_value(dict['a' => vec[$mc2]]);
45 try { apc_store('mc1', $mc1); } catch (Exception $e) { var_dump($e->getMessage()); }
46 try { apc_store('mc2', $mc2); } catch (Exception $e) { var_dump($e->getMessage()); }
47 try { apc_store('v1', $v1); } catch (Exception $e) { var_dump($e->getMessage()); }
48 try { apc_store('v2', $v2); } catch (Exception $e) { var_dump($e->getMessage()); }
49 try { apc_store('d1', $d1); } catch (Exception $e) { var_dump($e->getMessage()); }
50 try { apc_store('d2', $d2); } catch (Exception $e) { var_dump($e->getMessage()); }
52 var_dump(__hhvm_intrinsics\apc_fetch_no_check('mc1'));
53 var_dump(__hhvm_intrinsics\apc_fetch_no_check('mc2'));
54 var_dump(__hhvm_intrinsics\apc_fetch_no_check('v1'));
55 var_dump(__hhvm_intrinsics\apc_fetch_no_check('v2'));
56 var_dump(__hhvm_intrinsics\apc_fetch_no_check('d1'));
57 var_dump(__hhvm_intrinsics\apc_fetch_no_check('d2'));