Remove .hh_file from hhas
[hiphop-php.git] / hphp / hack / test / pocket_universes / compile / trait_uses_trait.good.php.exp
blobfa5e1b898fbd78101efe023bbef6a4ce8e7b2a69
1 # trait_uses_trait.good.php starts here
3 .filepath "trait_uses_trait.good.php";
5 .adata A_0 = """Y:2:{s:4:\"kind\";i:21;s:13:\"generic_types\";y:1:{Y:1:{s:4:\"kind\";i:4;}}}""";
6 .adata A_1 = """k:1:{s:1:\"X\";}""";
7 .adata A_2 = """k:1:{s:1:\"J\";}""";
8 .adata A_3 = """v:1:{s:8:\"MyTraitB\";}""";
9 .adata A_4 = """k:1:{s:1:\"K\";}""";
10 .adata A_5 = """v:1:{s:8:\"MyTraitA\";}""";
12 .main (1,1) {
13 .srcloc 4:7,4:14;
14 DefCls 0
15 .srcloc 13:7,13:14;
16 DefCls 1
17 .srcloc 24:7,24:7;
18 DefCls 2
19 .srcloc 37:7,37:7;
20 DefCls 3
21 Int 1
22 RetC
25 .function {} ["__EntryPoint"("""y:0:{}""")] (40,44) <"HH\\void" N > main() {
26 .srcloc 41:8,41:23;
27 NullUninit
28 NullUninit
29 NullUninit
30 .srcloc 41:20,41:22;
31 String "K"
32 .srcloc 41:8,41:23;
33 FCallClsMethodD <> 1 1 "0" - "" "" "C" "pu$E$value"
34 .srcloc 41:25,41:28;
35 String "\n"
36 .srcloc 41:8,41:28;
37 Concat
38 .srcloc 41:3,41:29;
39 Print
40 .srcloc 41:3,41:29;
41 PopC
42 .srcloc 42:8,42:23;
43 NullUninit
44 NullUninit
45 NullUninit
46 .srcloc 42:20,42:22;
47 String "J"
48 .srcloc 42:8,42:23;
49 FCallClsMethodD <> 1 1 "0" - "" "" "C" "pu$E$value"
50 .srcloc 42:25,42:28;
51 String "\n"
52 .srcloc 42:8,42:28;
53 Concat
54 .srcloc 42:3,42:29;
55 Print
56 .srcloc 42:3,42:29;
57 PopC
58 .srcloc 43:8,43:23;
59 NullUninit
60 NullUninit
61 NullUninit
62 .srcloc 43:20,43:22;
63 String "X"
64 .srcloc 43:8,43:23;
65 FCallClsMethodD <> 1 1 "0" - "" "" "C" "pu$E$value"
66 .srcloc 43:25,43:28;
67 String "\n"
68 .srcloc 43:8,43:28;
69 Concat
70 .srcloc 43:3,43:29;
71 Print
72 .srcloc 43:3,43:29;
73 PopC
74 .srcloc 44:2,44:2;
75 Null
76 RetC
79 .class {} [final trait] MyTraitB (4,11) {
80 .method {}{} [private static "__Memoize"("""y:0:{}""")] (5,5) <"HH\\keyset<HH\\string>" "HH\\keyset" extended_hint> pu$E$Members$memoize_impl() {
81 .srcloc 5:8,5:8;
82 Keyset @A_1
83 .srcloc 5:8,5:8;
84 Array @A_0
85 VerifyRetTypeTS
86 RetC
88 .method {}{} [private static "__Memoize"("""y:0:{}""")] (5,5) <"HH\\mixed" N > pu$E$value$memoize_impl(<"HH\\string" "HH\\string" > $atom) {
89 .srcloc 5:8,5:8;
90 VerifyParamType $atom
91 .srcloc 5:8,5:8;
92 String "X"
93 .srcloc 5:8,5:8;
94 CGetL2 $atom
96 JmpNZ L0
97 Jmp L1
98 L0:
99 .srcloc 8:15,8:16;
100 Int 42
101 .srcloc 5:8,5:8;
102 RetC
104 .srcloc 5:8,5:8;
105 NewObjD "Exception"
107 NullUninit
108 NullUninit
109 .srcloc 5:8,5:8;
110 String "\\MyTraitB:@E::value unknown atom access: "
111 .srcloc 5:8,5:8;
112 CGetL $atom
113 Concat
114 .srcloc 5:8,5:8;
115 FCallCtor <LockWhileUnwinding> 1 1 "0" - "" ""
116 PopC
117 LockObj
118 .srcloc 5:8,5:8;
119 Throw
120 .srcloc 5:9,5:9;
121 Null
122 RetC
124 .method {}{} [public static "__Memoize"("""y:0:{}""")] (5,5) <"HH\\keyset<HH\\string>" "HH\\keyset" extended_hint> pu$E$Members() {
125 .ismemoizewrapper;
126 .srcloc 5:8,5:8;
127 MemoGet L0 L:0+0
128 RetC
130 NullUninit
131 NullUninit
132 NullUninit
133 FCallClsMethodSD <> 0 1 "" - "" "" Self "pu$E$Members$memoize_impl"
134 MemoSet L:0+0
135 RetC
137 .method {}{} [public static "__Memoize"("""y:0:{}""")] (5,5) <"HH\\mixed" N > pu$E$value(<"HH\\string" "HH\\string" > $atom) {
138 .ismemoizewrapper;
139 .srcloc 5:8,5:8;
140 VerifyParamType $atom
141 GetMemoKeyL $atom
142 SetL _1
143 PopC
144 MemoGet L0 L:1+1
145 RetC
147 NullUninit
148 NullUninit
149 NullUninit
150 CGetL $atom
151 FCallClsMethodSD <> 1 1 "" - "" "" Self "pu$E$value$memoize_impl"
152 MemoSet L:1+1
153 RetC
157 .class {} [final trait] MyTraitA (13,22) {
158 .use MyTraitB;
159 .method {}{} [private static "__Memoize"("""y:0:{}""") "__Override"("""y:0:{}""")] (16,16) <"HH\\keyset<HH\\string>" "HH\\keyset" extended_hint> pu$E$Members$memoize_impl() {
160 .numiters 2;
161 .declvars $result $traits_classes $traits_class $class $method $parent_members $p $_;
162 .srcloc 16:8,16:8;
163 Keyset @A_2
164 .srcloc 16:8,16:8;
165 SetL $result
166 .srcloc 16:8,16:8;
167 PopC
168 .srcloc 16:8,16:8;
169 Vec @A_3
170 .srcloc 16:8,16:8;
171 SetL $traits_classes
172 .srcloc 16:8,16:8;
173 PopC
174 .srcloc 16:8,16:8;
175 CGetL $traits_classes
176 .srcloc 16:8,16:8;
177 IterInit 0 NK V:$traits_class L0
178 .try {
180 .try {
181 .srcloc 16:8,16:8;
182 NewObjD "ReflectionClass"
184 NullUninit
185 NullUninit
186 .srcloc 16:8,16:8;
187 CGetL $traits_class
188 .srcloc 16:8,16:8;
189 FCallCtor <LockWhileUnwinding> 1 1 "0" - "" ""
190 PopC
191 LockObj
192 .srcloc 16:8,16:8;
193 SetL $class
194 .srcloc 16:8,16:8;
195 PopC
196 .srcloc 16:8,16:8;
197 CGetL $class
198 NullUninit
199 NullUninit
200 .srcloc 16:8,16:8;
201 String "pu$E$Members"
202 .srcloc 16:8,16:8;
203 FCallObjMethodD <> 1 1 "0" - "" "" NullThrows "getMethod"
204 .srcloc 16:8,16:8;
205 SetL $method
206 .srcloc 16:8,16:8;
207 PopC
208 .srcloc 16:8,16:8;
209 CGetL $method
210 NullUninit
211 NullUninit
212 .srcloc 16:8,16:8;
213 Null
214 .srcloc 16:8,16:8;
215 FCallObjMethodD <> 1 1 "0" - "" "" NullThrows "invoke"
216 .srcloc 16:8,16:8;
217 SetL $parent_members
218 .srcloc 16:8,16:8;
219 PopC
220 .srcloc 16:8,16:8;
221 CGetL $parent_members
222 .srcloc 16:8,16:8;
223 IterInit 1 NK V:$p L1
224 .try {
226 .srcloc 16:8,16:8;
227 CGetL $p
228 .srcloc 16:8,16:8;
229 BaseL $result Define
230 .srcloc 16:8,16:8;
231 SetM 0 W
232 .srcloc 16:8,16:8;
233 PopC
234 .srcloc 16:8,16:8;
235 IterNext 1 NK V:$p L2
236 Jmp L1
237 } .catch {
238 IterFree 1
239 Throw
242 .srcloc 16:8,16:8;
243 Jmp L3
244 } .catch {
246 InstanceOfD "ReflectionException"
247 JmpZ L4
248 SetL $_
249 PopC
250 .srcloc 16:8,16:8;
251 Jmp L3
253 Throw
256 .srcloc 16:8,16:8;
257 IterNext 0 NK V:$traits_class L5
258 Jmp L0
259 } .catch {
260 IterFree 0
261 Throw
264 .srcloc 16:8,16:8;
265 CGetL $result
266 .srcloc 16:8,16:8;
267 Array @A_0
268 VerifyRetTypeTS
269 RetC
271 .method {}{} [private static "__Memoize"("""y:0:{}""")] (16,16) <"HH\\mixed" N > pu$E$value$memoize_impl(<"HH\\string" "HH\\string" > $atom) {
272 .numiters 1;
273 .declvars $trait_classes $trait_class $class $method $_;
274 .srcloc 16:8,16:8;
275 VerifyParamType $atom
276 .srcloc 16:8,16:8;
277 String "J"
278 .srcloc 16:8,16:8;
279 CGetL2 $atom
281 JmpNZ L0
282 Jmp L1
284 .srcloc 19:15,19:18;
285 Int 1664
286 .srcloc 16:8,16:8;
287 RetC
289 .srcloc 16:8,16:8;
290 Vec @A_3
291 .srcloc 16:8,16:8;
292 SetL $trait_classes
293 .srcloc 16:8,16:8;
294 PopC
295 .srcloc 16:8,16:8;
296 CGetL $trait_classes
297 .srcloc 16:8,16:8;
298 IterInit 0 NK V:$trait_class L2
299 .try {
301 .try {
302 .srcloc 16:8,16:8;
303 NewObjD "ReflectionClass"
305 NullUninit
306 NullUninit
307 .srcloc 16:8,16:8;
308 CGetL $trait_class
309 .srcloc 16:8,16:8;
310 FCallCtor <LockWhileUnwinding> 1 1 "0" - "" ""
311 PopC
312 LockObj
313 .srcloc 16:8,16:8;
314 SetL $class
315 .srcloc 16:8,16:8;
316 PopC
317 .srcloc 16:8,16:8;
318 CGetL $class
319 NullUninit
320 NullUninit
321 .srcloc 16:8,16:8;
322 String "pu$E$value"
323 .srcloc 16:8,16:8;
324 FCallObjMethodD <> 1 1 "0" - "" "" NullThrows "getMethod"
325 .srcloc 16:8,16:8;
326 SetL $method
327 .srcloc 16:8,16:8;
328 PopC
329 .srcloc 16:8,16:8;
330 CGetL $method
331 NullUninit
332 NullUninit
333 .srcloc 16:8,16:8;
334 Null
335 .srcloc 16:8,16:8;
336 CGetL $atom
337 .srcloc 16:8,16:8;
338 FCallObjMethodD <> 2 1 "00" - "" "" NullThrows "invoke"
339 .srcloc 16:8,16:8;
340 IterFree 0
341 RetC
342 .srcloc 16:8,16:8;
343 Jmp L3
344 } .catch {
346 InstanceOfD "Exception"
347 JmpZ L4
348 SetL $_
349 PopC
350 .srcloc 16:8,16:8;
351 Jmp L3
353 Throw
356 .srcloc 16:8,16:8;
357 IterNext 0 NK V:$trait_class L5
358 Jmp L2
359 } .catch {
360 IterFree 0
361 Throw
364 .srcloc 16:8,16:8;
365 NewObjD "Exception"
367 NullUninit
368 NullUninit
369 .srcloc 16:8,16:8;
370 String "\\MyTraitA:@E::value unknown atom access: "
371 .srcloc 16:8,16:8;
372 CGetL $atom
373 Concat
374 .srcloc 16:8,16:8;
375 FCallCtor <LockWhileUnwinding> 1 1 "0" - "" ""
376 PopC
377 LockObj
378 .srcloc 16:8,16:8;
379 Throw
380 .srcloc 16:9,16:9;
381 Null
382 RetC
384 .method {}{} [public static "__Memoize"("""y:0:{}""") "__Override"("""y:0:{}""")] (16,16) <"HH\\keyset<HH\\string>" "HH\\keyset" extended_hint> pu$E$Members() {
385 .ismemoizewrapper;
386 .srcloc 16:8,16:8;
387 MemoGet L0 L:0+0
388 RetC
390 NullUninit
391 NullUninit
392 NullUninit
393 FCallClsMethodSD <> 0 1 "" - "" "" Self "pu$E$Members$memoize_impl"
394 MemoSet L:0+0
395 RetC
397 .method {}{} [public static "__Memoize"("""y:0:{}""")] (16,16) <"HH\\mixed" N > pu$E$value(<"HH\\string" "HH\\string" > $atom) {
398 .ismemoizewrapper;
399 .srcloc 16:8,16:8;
400 VerifyParamType $atom
401 GetMemoKeyL $atom
402 SetL _1
403 PopC
404 MemoGet L0 L:1+1
405 RetC
407 NullUninit
408 NullUninit
409 NullUninit
410 CGetL $atom
411 FCallClsMethodSD <> 1 1 "" - "" "" Self "pu$E$value$memoize_impl"
412 MemoSet L:1+1
413 RetC
417 .class {} C (24,35) {
418 .use MyTraitA;
419 .method {}{} [private static "__Memoize"("""y:0:{}""") "__Override"("""y:0:{}""")] (27,27) <"HH\\keyset<HH\\string>" "HH\\keyset" extended_hint> pu$E$Members$memoize_impl() {
420 .numiters 2;
421 .declvars $result $traits_classes $traits_class $class $method $parent_members $p $_;
422 .srcloc 27:8,27:8;
423 Keyset @A_4
424 .srcloc 27:8,27:8;
425 SetL $result
426 .srcloc 27:8,27:8;
427 PopC
428 .srcloc 27:8,27:8;
429 Vec @A_5
430 .srcloc 27:8,27:8;
431 SetL $traits_classes
432 .srcloc 27:8,27:8;
433 PopC
434 .srcloc 27:8,27:8;
435 CGetL $traits_classes
436 .srcloc 27:8,27:8;
437 IterInit 0 NK V:$traits_class L0
438 .try {
440 .try {
441 .srcloc 27:8,27:8;
442 NewObjD "ReflectionClass"
444 NullUninit
445 NullUninit
446 .srcloc 27:8,27:8;
447 CGetL $traits_class
448 .srcloc 27:8,27:8;
449 FCallCtor <LockWhileUnwinding> 1 1 "0" - "" ""
450 PopC
451 LockObj
452 .srcloc 27:8,27:8;
453 SetL $class
454 .srcloc 27:8,27:8;
455 PopC
456 .srcloc 27:8,27:8;
457 CGetL $class
458 NullUninit
459 NullUninit
460 .srcloc 27:8,27:8;
461 String "pu$E$Members"
462 .srcloc 27:8,27:8;
463 FCallObjMethodD <> 1 1 "0" - "" "" NullThrows "getMethod"
464 .srcloc 27:8,27:8;
465 SetL $method
466 .srcloc 27:8,27:8;
467 PopC
468 .srcloc 27:8,27:8;
469 CGetL $method
470 NullUninit
471 NullUninit
472 .srcloc 27:8,27:8;
473 Null
474 .srcloc 27:8,27:8;
475 FCallObjMethodD <> 1 1 "0" - "" "" NullThrows "invoke"
476 .srcloc 27:8,27:8;
477 SetL $parent_members
478 .srcloc 27:8,27:8;
479 PopC
480 .srcloc 27:8,27:8;
481 CGetL $parent_members
482 .srcloc 27:8,27:8;
483 IterInit 1 NK V:$p L1
484 .try {
486 .srcloc 27:8,27:8;
487 CGetL $p
488 .srcloc 27:8,27:8;
489 BaseL $result Define
490 .srcloc 27:8,27:8;
491 SetM 0 W
492 .srcloc 27:8,27:8;
493 PopC
494 .srcloc 27:8,27:8;
495 IterNext 1 NK V:$p L2
496 Jmp L1
497 } .catch {
498 IterFree 1
499 Throw
502 .srcloc 27:8,27:8;
503 Jmp L3
504 } .catch {
506 InstanceOfD "ReflectionException"
507 JmpZ L4
508 SetL $_
509 PopC
510 .srcloc 27:8,27:8;
511 Jmp L3
513 Throw
516 .srcloc 27:8,27:8;
517 IterNext 0 NK V:$traits_class L5
518 Jmp L0
519 } .catch {
520 IterFree 0
521 Throw
524 .srcloc 27:8,27:8;
525 CGetL $result
526 .srcloc 27:8,27:8;
527 Array @A_0
528 VerifyRetTypeTS
529 RetC
531 .method {}{} [private static "__Memoize"("""y:0:{}""")] (27,27) <"HH\\mixed" N > pu$E$value$memoize_impl(<"HH\\string" "HH\\string" > $atom) {
532 .numiters 1;
533 .declvars $trait_classes $trait_class $class $method $_;
534 .srcloc 27:8,27:8;
535 VerifyParamType $atom
536 .srcloc 27:8,27:8;
537 String "K"
538 .srcloc 27:8,27:8;
539 CGetL2 $atom
541 JmpNZ L0
542 Jmp L1
544 .srcloc 32:15,32:18;
545 String "yo"
546 .srcloc 27:8,27:8;
547 RetC
549 .srcloc 27:8,27:8;
550 Vec @A_5
551 .srcloc 27:8,27:8;
552 SetL $trait_classes
553 .srcloc 27:8,27:8;
554 PopC
555 .srcloc 27:8,27:8;
556 CGetL $trait_classes
557 .srcloc 27:8,27:8;
558 IterInit 0 NK V:$trait_class L2
559 .try {
561 .try {
562 .srcloc 27:8,27:8;
563 NewObjD "ReflectionClass"
565 NullUninit
566 NullUninit
567 .srcloc 27:8,27:8;
568 CGetL $trait_class
569 .srcloc 27:8,27:8;
570 FCallCtor <LockWhileUnwinding> 1 1 "0" - "" ""
571 PopC
572 LockObj
573 .srcloc 27:8,27:8;
574 SetL $class
575 .srcloc 27:8,27:8;
576 PopC
577 .srcloc 27:8,27:8;
578 CGetL $class
579 NullUninit
580 NullUninit
581 .srcloc 27:8,27:8;
582 String "pu$E$value"
583 .srcloc 27:8,27:8;
584 FCallObjMethodD <> 1 1 "0" - "" "" NullThrows "getMethod"
585 .srcloc 27:8,27:8;
586 SetL $method
587 .srcloc 27:8,27:8;
588 PopC
589 .srcloc 27:8,27:8;
590 CGetL $method
591 NullUninit
592 NullUninit
593 .srcloc 27:8,27:8;
594 Null
595 .srcloc 27:8,27:8;
596 CGetL $atom
597 .srcloc 27:8,27:8;
598 FCallObjMethodD <> 2 1 "00" - "" "" NullThrows "invoke"
599 .srcloc 27:8,27:8;
600 IterFree 0
601 RetC
602 .srcloc 27:8,27:8;
603 Jmp L3
604 } .catch {
606 InstanceOfD "Exception"
607 JmpZ L4
608 SetL $_
609 PopC
610 .srcloc 27:8,27:8;
611 Jmp L3
613 Throw
616 .srcloc 27:8,27:8;
617 IterNext 0 NK V:$trait_class L5
618 Jmp L2
619 } .catch {
620 IterFree 0
621 Throw
624 .srcloc 27:8,27:8;
625 NewObjD "Exception"
627 NullUninit
628 NullUninit
629 .srcloc 27:8,27:8;
630 String "\\C:@E::value unknown atom access: "
631 .srcloc 27:8,27:8;
632 CGetL $atom
633 Concat
634 .srcloc 27:8,27:8;
635 FCallCtor <LockWhileUnwinding> 1 1 "0" - "" ""
636 PopC
637 LockObj
638 .srcloc 27:8,27:8;
639 Throw
640 .srcloc 27:9,27:9;
641 Null
642 RetC
644 .method {}{} [public static "__Memoize"("""y:0:{}""") "__Override"("""y:0:{}""")] (27,27) <"HH\\keyset<HH\\string>" "HH\\keyset" extended_hint> pu$E$Members() {
645 .ismemoizewrapper;
646 .srcloc 27:8,27:8;
647 MemoGet L0 L:0+0
648 RetC
650 NullUninit
651 NullUninit
652 NullUninit
653 FCallClsMethodD <> 0 1 "" - "" "" "C" "pu$E$Members$memoize_impl"
654 MemoSet L:0+0
655 RetC
657 .method {}{} [public static "__Memoize"("""y:0:{}""")] (27,27) <"HH\\mixed" N > pu$E$value(<"HH\\string" "HH\\string" > $atom) {
658 .ismemoizewrapper;
659 .srcloc 27:8,27:8;
660 VerifyParamType $atom
661 GetMemoKeyL $atom
662 SetL _1
663 PopC
664 MemoGet L0 L:1+1
665 RetC
667 NullUninit
668 NullUninit
669 NullUninit
670 CGetL $atom
671 FCallClsMethodD <> 1 1 "" - "" "" "C" "pu$E$value$memoize_impl"
672 MemoSet L:1+1
673 RetC
677 .class {} D (37,37) extends C {
680 # trait_uses_trait.good.php ends here