xref: /aosp_15_r20/tools/dexter/testdata/expected/invoke-polymorphic.compact_cfg (revision f0dffb02cdb5c647d21204e89a92a1ffae2dad87)
1
2method Main.getHandleForStatic(java.lang.Class, java.lang.String, java.lang.invoke.MethodType):java.lang.invoke.MethodHandle
3{
4............................. begin block 1 .............................
5	    0| invoke-static {}, java.lang.invoke.MethodHandles.publicLookup():java.lang.invoke.MethodHandles$Lookup
6	    3| move-result-object v0
7	    4| invoke-virtual {v0,v2,v3,v4}, java.lang.invoke.MethodHandles$Lookup.findStatic(java.lang.Class, java.lang.String, java.lang.invoke.MethodType):java.lang.invoke.MethodHandle
8	    7| move-result-object v1
9	    8| return-object v1
10.............................. end block 1 ..............................
11}
12
13method Main.getHandleForVirtual(java.lang.Class, java.lang.String, java.lang.invoke.MethodType):java.lang.invoke.MethodHandle
14{
15............................. begin block 1 .............................
16	    0| invoke-static {}, java.lang.invoke.MethodHandles.publicLookup():java.lang.invoke.MethodHandles$Lookup
17	    3| move-result-object v0
18	    4| invoke-virtual {v0,v2,v3,v4}, java.lang.invoke.MethodHandles$Lookup.findVirtual(java.lang.Class, java.lang.String, java.lang.invoke.MethodType):java.lang.invoke.MethodHandle
19	    7| move-result-object v1
20	    8| return-object v1
21.............................. end block 1 ..............................
22}
23
24method Main.getLongCompareToHandle():java.lang.invoke.MethodHandle
25{
26............................. begin block 1 .............................
27	    0| new-instance v0, java.lang.Long
28	    2| const-wide v1:v2, #+0 (0x0000000000000000 | 0.00000)
29	    7| invoke-direct {v0,v1,v2}, java.lang.Long.<init>(long):void
30	   10| invoke-virtual {v0}, java.lang.Object.getClass():java.lang.Class
31	   13| move-result-object v0
32	   14| sget-object v1, java.lang.Integer.TYPE
33	   16| invoke-static {v1,v0}, java.lang.invoke.MethodType.methodType(java.lang.Class, java.lang.Class):java.lang.invoke.MethodType
34	   19| move-result-object v2
35	   20| const-string v3, "compareTo"
36	   22| invoke-static {v0,v3,v2}, Main.getHandleForVirtual(java.lang.Class, java.lang.String, java.lang.invoke.MethodType):java.lang.invoke.MethodHandle
37	   25| move-result-object v0
38	   26| return-object v0
39.............................. end block 1 ..............................
40}
41
42method Main.getStringConcatHandle():java.lang.invoke.MethodHandle
43{
44............................. begin block 1 .............................
45	    0| const-string v0, "concat"
46	    2| invoke-virtual {v0}, java.lang.Object.getClass():java.lang.Class
47	    5| move-result-object v1
48	    6| invoke-static {v1,v1}, java.lang.invoke.MethodType.methodType(java.lang.Class, java.lang.Class):java.lang.invoke.MethodType
49	    9| move-result-object v2
50	   10| invoke-static {v1,v0,v2}, Main.getHandleForVirtual(java.lang.Class, java.lang.String, java.lang.invoke.MethodType):java.lang.invoke.MethodHandle
51	   13| move-result-object v0
52	   14| return-object v0
53.............................. end block 1 ..............................
54}
55
56method Main.getStringValueOfLongHandle():java.lang.invoke.MethodHandle
57{
58............................. begin block 1 .............................
59	    0| sget-object v0, java.lang.Long.TYPE
60	    2| const-string v1, "valueOf"
61	    4| invoke-virtual {v1}, java.lang.Object.getClass():java.lang.Class
62	    7| move-result-object v2
63	    8| invoke-static {v2,v0}, java.lang.invoke.MethodType.methodType(java.lang.Class, java.lang.Class):java.lang.invoke.MethodType
64	   11| move-result-object v3
65	   12| invoke-static {v2,v1,v3}, Main.getHandleForStatic(java.lang.Class, java.lang.String, java.lang.invoke.MethodType):java.lang.invoke.MethodHandle
66	   15| move-result-object v0
67	   16| return-object v0
68.............................. end block 1 ..............................
69}
70
71method Main.getStringValueOfObjectHandle():java.lang.invoke.MethodHandle
72{
73............................. begin block 1 .............................
74	    0| new-instance v0, java.lang.Object
75	    2| invoke-direct {v0}, java.lang.Object.<init>():void
76	    5| invoke-virtual {v0}, java.lang.Object.getClass():java.lang.Class
77	    8| move-result-object v0
78	    9| const-string v1, "valueOf"
79	   11| invoke-virtual {v1}, java.lang.Object.getClass():java.lang.Class
80	   14| move-result-object v2
81	   15| invoke-static {v2,v0}, java.lang.invoke.MethodType.methodType(java.lang.Class, java.lang.Class):java.lang.invoke.MethodType
82	   18| move-result-object v3
83	   19| invoke-static {v2,v1,v3}, Main.getHandleForStatic(java.lang.Class, java.lang.String, java.lang.invoke.MethodType):java.lang.invoke.MethodHandle
84	   22| move-result-object v0
85	   23| return-object v0
86.............................. end block 1 ..............................
87}
88
89method Main.main(java.lang.String[]):void
90{
91............................. begin block 1 .............................
92	    0| invoke-static {}, Main.getStringConcatHandle():java.lang.invoke.MethodHandle
93	    3| move-result-object v0
94	    4| const-string v1, "[String1]"
95	    6| const-string v2, "+[String2]"
96	    8| invoke-polymorphic {v0,v1,v2}, java.lang.invoke.MethodHandle.invokeExact(java.lang.Object[]):java.lang.Object, (java.lang.String, java.lang.String):java.lang.String
97	   12| move-result-object v3
98	   13| sget-object v4, java.lang.System.out
99	   15| invoke-virtual {v4,v3}, java.io.PrintStream.println(java.lang.String):void
100	   18| invoke-static {}, Main.getStringValueOfObjectHandle():java.lang.invoke.MethodHandle
101	   21| move-result-object v0
102	   22| const-string v1, "[String1]"
103	   24| invoke-polymorphic {v0,v1}, java.lang.invoke.MethodHandle.invokeExact(java.lang.Object[]):java.lang.Object, (java.lang.Object):java.lang.String
104	   28| move-result-object v3
105	   29| sget-object v4, java.lang.System.out
106	   31| invoke-virtual {v4,v3}, java.io.PrintStream.println(java.lang.String):void
107	   34| invoke-static {}, Main.getStringConcatHandle():java.lang.invoke.MethodHandle
108	   37| move-result-object v0
109	   38| const-string v1, "[String1]"
110	   40| const-string v2, "+[String2]"
111	   42| invoke-polymorphic {v0,v1,v2}, java.lang.invoke.MethodHandle.invoke(java.lang.Object[]):java.lang.Object, (java.lang.Object, java.lang.Object):java.lang.String
112	   46| move-result-object v3
113	   47| sget-object v4, java.lang.System.out
114	   49| invoke-virtual {v4,v3}, java.io.PrintStream.println(java.lang.String):void
115	   52| invoke-static {}, Main.getStringValueOfLongHandle():java.lang.invoke.MethodHandle
116	   55| move-result-object v0
117	   56| const-wide v1:v2, #+42 (0x000000000000002a | 2.07508e-322)
118	   61| invoke-polymorphic {v0,v1,v2}, java.lang.invoke.MethodHandle.invokeExact(java.lang.Object[]):java.lang.Object, (long):java.lang.String
119	   65| move-result-object v3
120	   66| sget-object v4, java.lang.System.out
121	   68| invoke-virtual {v4,v3}, java.io.PrintStream.println(java.lang.String):void
122	   71| const v1, #+40 (0x00000028 | 5.60519e-44)
123	   74| invoke-polymorphic {v0,v1}, java.lang.invoke.MethodHandle.invoke(java.lang.Object[]):java.lang.Object, (int):java.lang.String
124	   78| move-result-object v3
125	   79| sget-object v4, java.lang.System.out
126	   81| invoke-virtual {v4,v3}, java.io.PrintStream.println(java.lang.String):void
127	   84| new-instance v1, java.lang.Long
128	   86| const-wide v2:v3, #+43 (0x000000000000002b | 2.12448e-322)
129	   91| invoke-direct {v1,v2,v3}, java.lang.Long.<init>(long):void
130	   94| invoke-polymorphic {v0,v1}, java.lang.invoke.MethodHandle.invoke(java.lang.Object[]):java.lang.Object, (java.lang.Long):java.lang.String
131	   98| move-result-object v3
132	   99| sget-object v4, java.lang.System.out
133	  101| invoke-virtual {v4,v3}, java.io.PrintStream.println(java.lang.String):void
134	  104| new-instance v1, java.lang.Integer
135	  106| const v2, #+44 (0x0000002c | 6.16571e-44)
136	  109| invoke-direct {v1,v2}, java.lang.Integer.<init>(int):void
137	  112| invoke-polymorphic {v0,v1}, java.lang.invoke.MethodHandle.invoke(java.lang.Object[]):java.lang.Object, (java.lang.Integer):java.lang.String
138	  116| move-result-object v3
139	  117| sget-object v4, java.lang.System.out
140	  119| invoke-virtual {v4,v3}, java.io.PrintStream.println(java.lang.String):void
141	  122| invoke-static {}, Main.getLongCompareToHandle():java.lang.invoke.MethodHandle
142	  125| move-result-object v0
143	  126| new-instance v1, java.lang.Long
144	  128| const-wide v2:v3, #+43 (0x000000000000002b | 2.12448e-322)
145	  133| invoke-direct {v1,v2,v3}, java.lang.Long.<init>(long):void
146	  136| invoke-polymorphic {v0,v1,v1}, java.lang.invoke.MethodHandle.invoke(java.lang.Object[]):java.lang.Object, (java.lang.Long, java.lang.Long):int
147	  140| move-result v3
148	  141| sget-object v4, java.lang.System.out
149	  143| invoke-virtual {v4,v3}, java.io.PrintStream.println(int):void
150	  146| const-wide v2:v3, #+44 (0x000000000000002c | 2.17389e-322)
151	  151| invoke-polymorphic {v0,v1,v2,v3}, java.lang.invoke.MethodHandle.invoke(java.lang.Object[]):java.lang.Object, (java.lang.Long, long):int
152	  155| move-result v3
153	  156| sget-object v4, java.lang.System.out
154	  158| invoke-virtual {v4,v3}, java.io.PrintStream.println(int):void
155	  161| invoke-polymorphic/range {v7..v12}, java.lang.invoke.MethodHandle.invoke(java.lang.Object[]):java.lang.Object, (java.lang.Long, long):int
156	  165| invoke-polymorphic/range {v3..v43}, java.lang.invoke.MethodHandle.invoke(java.lang.Object[]):java.lang.Object, (java.lang.Long, long):int
157	  169| return-void
158.............................. end block 1 ..............................
159}
160