Handle this typehints
[hiphop-php.git] / hphp / test / slow / hack-arrays-eval.php
blob738941ff4115d0dfa46c9ea1aec8743f941ec68c
1 <?hh
2 // Copyright 2004-present Facebook. All Rights Reserved.
4 function test_eval() {
5 echo "============ test_eval =======================================\n";
7 eval('$v = vec[1, 2, 3];');
8 eval('$d = dict[100 => \'abc\', 200 => \'def\'];');
9 eval('$k = keyset[1, \'abc\', 3];');
11 var_dump($v);
12 var_dump($d);
13 var_dump($k);
15 $a = [100, 200, 300];
16 eval('$v = vec($a);');
17 eval('$d = dict($a);');
18 eval('$k = keyset($a);');
20 var_dump($v);
21 var_dump($d);
22 var_dump($k);
24 eval('var_dump(is_vec($v));');
25 eval('var_dump(is_dict($d));');
26 eval('var_dump(is_keyset($k));');
29 function test_assert() {
30 echo "============ test_assert =====================================\n";
32 assert('($v = vec[1, 2, 3]) || true');
33 assert('($d = dict[100 => \'abc\', 200 => \'def\']) || true');
34 assert('($k = keyset[1, \'abc\', 3]) || true');
36 var_dump($v);
37 var_dump($d);
38 var_dump($k);
40 $a = [100, 200, 300];
41 assert('($v = vec($a)) || true');
42 assert('($d = dict($a)) || true');
43 assert('($k = keyset($a)) || true');
45 var_dump($v);
46 var_dump($d);
47 var_dump($k);
49 assert('(var_dump(is_vec($v))) || true');
50 assert('(var_dump(is_dict($d))) || true');
51 assert('(var_dump(is_keyset($k))) || true');
54 function test_create_function() {
55 echo "============ test_create_function ============================\n";
57 $f1 = create_function('', 'return vec[1, 2, 3];');
58 $f2 = create_function('', 'return dict[100 => \'abc\', 200 => \'def\'];');
59 $f3 = create_function('', 'return keyset[1, \'abc\', 3];');
61 $v = $f1();
62 $d = $f2();
63 $k = $f3();
65 var_dump($k);
66 var_dump($d);
67 var_dump($k);
69 $a = [100, 200, 300];
70 $f4 = create_function('$a', 'return vec($a);');
71 $f5 = create_function('$a', 'return dict($a);');
72 $f6 = create_function('$a', 'return keyset($a);');
74 var_dump($f4($a));
75 var_dump($f5($a));
76 var_dump($f6($a));
78 $f7 = create_function('$v', 'return is_vec($v);');
79 $f8 = create_function('$d', 'return is_dict($d);');
80 $f9 = create_function('$k', 'return is_keyset($k);');
82 var_dump($f7($v));
83 var_dump($f8($d));
84 var_dump($f9($k));
87 $array = [];
88 function test_func($v = $array[] = vec[1, 2],
89 $d = $array[] = dict[100 => 'a', 200 => 'b'],
90 $k = $array[] = keyset['a', 'b']) {}
92 function test_default_value() {
93 echo "============ test_default_value ==============================\n";
94 $r = new ReflectionFunction('test_func');
95 var_dump($r->getParameters()[0]->info['default']);
96 var_dump($r->getParameters()[1]->info['default']);
97 var_dump($r->getParameters()[2]->info['default']);
100 test_eval();
101 test_assert();
102 test_create_function();
103 test_default_value();