Remove FPass[CV]Nop opcodes
[hiphop-php.git] / hphp / hack / test / semdiff / fpassl_01.1.hhas
blobb5b7c94b5a8fd5c7afb09b1e9ca254b1920faec3
1 .adata A_0 = """D:0:{}""";
3 .main {
4   Int 1
5   RetC
8 .function <"HH\\Awaitable<HH\\dict<Tk, Tv>>" "HH\\dict" hh_type extended_hint > HH\Lib\Dict\gen_filter_with_key(<"HH\\KeyedContainer<Tk, Tv>" "HH\\KeyedContainer" hh_type > $traversable, <"(function (Tk, Tv): HH\\Awaitable<HH\\bool>)" N  > $predicate) isAsync {
9   .numiters 1;
10   .declvars $tests $result $k $v;
11   VerifyParamType $traversable
12   CGetL $traversable
13   SetL _6
14   PopC
15   .try_fault F4 {
16     FPushFuncU 2 "HH\\Lib\\Dict\\map_with_key" "map_with_key"
17     CGetL _6
18 # the line above is the tricky one
19     CUGetL $predicate
20     CreateCl 1 0
21 # and the two above construct the parameter inline
22 # so needed the extension to the fpassl special-case
23 # semdiff pattern
24     FCall 2
25     UnboxR
26   }
27   UnsetL _6
28   SetL _6
29   PopC
30   .try_fault F5 {
31     FPushFuncU 1 "HH\\Lib\\Dict\\gen" "gen"
32     CGetL _6
33     FCall 1
34     UnboxR
35   }
36   UnsetL _6
37   Dup
38   IsTypeC Null
39   JmpNZ L0
40   Await
41 L0:
42   SetL _6
43   PopC
44   PushL _6
45   SetL $tests
46   PopC
47   Dict @A_0
48   SetL $result
49   PopC
50   CGetL $tests
51   IterInitK 0 L1 $v $k
52   .try_fault F6 {
53   L3:
54     CGetL $v
55     JmpZ L2
56     BaseL $traversable Warn
57     QueryM 0 CGet EL:$k
58     BaseL $result Define
59     SetM 0 EL:$k
60     PopC
61   L2:
62     IterNextK 0 L3 $v $k
63   }
64 L1:
65   CGetL $result
66   VerifyRetTypeC
67   RetC
68 F4:
69   UnsetL _6
70   Unwind
71 F5:
72   UnsetL _6
73   Unwind
74 F6:
75   IterFree 0
76   Unwind
81 .class [no_override unique nontop] Closure$HH\Lib\Dict\gen_filter_with_key;0 extends Closure {
82   .property [private] <"" N  > predicate =
83     uninit;
84   .method [public static] <"" N  > __invoke($k, $v) isClosureBody {
85     .declvars $0Closure $predicate;
86     CGetL $predicate
87     FPushFunc 2
88     CGetL $k
89     CGetL $v
90     FThrowOnRefMismatch "00"
91     FCall 2
92     UnboxR
93     RetC
94   }