Handle this typehints
[hiphop-php.git] / hphp / test / quick / exception_bug_2080454.php
blob6a048c03fbb124c0a8d40a4223fd03ff79268e50
1 <?php
3 class Dtor {
4 public function __destruct() {
5 echo "dtor\n";
9 $ar = array(1,3,2);
11 //////////////////////////////////////////////////////////////////////
12 // Exception test cases with fault funclets and nested FPI regions of
13 // various complexity.
15 function func() {
17 function blar() {
18 throw new Exception("Hi");
21 function foo() {
22 global $ar;
23 foreach ($ar as $y) {
24 func(blar($y));
25 echo "wat\n";
27 try {} catch (Exception $x) { echo "Bad\n"; }
30 function case1() { foo(); }
32 function foo2() {
33 global $ar;
34 foreach ($ar as $y) {
35 func(12, new Dtor(), mt_rand(), blar($y) ? 1024 : -1);
37 try {} catch (Exception $x) { echo "Bad\n"; }
40 function case2() { foo2(); }
42 function foo3() {
43 global $ar;
44 foreach ($ar as $y) {
45 func(12, new Dtor(), mt_rand(), func(blar($y)));
47 try {} catch (Exception $x) { echo "Bad\n"; }
50 function case3() { foo3(); }
53 function foo4() {
54 global $ar;
55 foreach ($ar as $y) {
56 func(12, new Dtor(), mt_rand(), func(mt_rand(), blar($y)));
58 try {} catch (Exception $x) { echo "Bad\n"; }
61 function case4() { foo3(); }
63 try { case1(); } catch (Exception $x) { echo "Good1\n"; }
64 try { case2(); } catch (Exception $x) { echo "Good2\n"; }
65 try { case3(); } catch (Exception $x) { echo "Good3\n"; }
66 try { case4(); } catch (Exception $x) { echo "Good4\n"; }
67 echo "Done\n";