1Processing 'const-method-handle.dex'...
2Opened 'const-method-handle.dex', DEX version '039'
3DEX file header:
4magic               : 'dex\n039\0'
5checksum            : 16656a27
6signature           : 1953...5aa5
7file_size           : 2524
8header_size         : 112
9link_size           : 0
10link_off            : 0 (0x000000)
11string_ids_size     : 57
12string_ids_off      : 112 (0x000070)
13type_ids_size       : 26
14type_ids_off        : 340 (0x000154)
15proto_ids_size      : 18
16proto_ids_off       : 444 (0x0001bc)
17field_ids_size      : 2
18field_ids_off       : 660 (0x000294)
19method_ids_size     : 23
20method_ids_off      : 676 (0x0002a4)
21class_defs_size     : 2
22class_defs_off      : 860 (0x00035c)
23data_size           : 1588
24data_off            : 936 (0x0003a8)
25
26Class #0 header:
27class_idx           : 5
28access_flags        : 1 (0x0001)
29superclass_idx      : 11
30interfaces_off      : 0 (0x000000)
31source_file_idx     : 29
32annotations_off     : 1336 (0x000538)
33class_data_off      : 2270 (0x0008de)
34static_fields_size  : 0
35instance_fields_size: 0
36direct_methods_size : 2
37virtual_methods_size: 0
38
39Class #0 annotations:
40Annotations on method #1 'main'
41  VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
42
43Class #0            -
44  Class descriptor  : 'LMain;'
45  Access flags      : 0x0001 (PUBLIC)
46  Superclass        : 'Ljava/lang/Object;'
47  Interfaces        -
48  Static fields     -
49  Instance fields   -
50  Direct methods    -
51    #0              : (in LMain;)
52      name          : '<init>'
53      type          : '()V'
54      access        : 0x10001 (PUBLIC CONSTRUCTOR)
55      method_idx    : 0
56      code          -
57      registers     : 1
58      ins           : 1
59      outs          : 1
60      insns size    : 4 16-bit code units
610003b0:                                        |[0003b0] Main.<init>:()V
620003c0: 7010 0a00 0000                         |0000: invoke-direct {v0}, Ljava/lang/Object;.<init>:()V // method@000a
630003c6: 0e00                                   |0003: return-void
64      catches       : (none)
65      positions     :
66        0x0000 line=22
67      locals        :
68        0x0000 - 0x0004 reg=0 this LMain;
69
70    #1              : (in LMain;)
71      name          : 'main'
72      type          : '([Ljava/lang/String;)V'
73      access        : 0x0009 (PUBLIC STATIC)
74      method_idx    : 1
75      code          -
76      registers     : 6
77      ins           : 1
78      outs          : 4
79      insns size    : 25 16-bit code units
800003c8:                                        |[0003c8] Main.main:([Ljava/lang/String;)V
810003d8: 7100 1500 0000                         |0000: invoke-static {}, Ljava/lang/invoke/MethodHandles;.lookup:()Ljava/lang/invoke/MethodHandles$Lookup; // method@0015
820003de: 0c00                                   |0003: move-result-object v0
830003e0: 1c01 0600                              |0004: const-class v1, Lconstmethodhandle/ConstTest; // type@0006
840003e4: 1a02 3000                              |0006: const-string v2, "main" // string@0030
850003e8: 6203 0100                              |0008: sget-object v3, Ljava/lang/Void;.TYPE:Ljava/lang/Class; // field@0001
860003ec: 1c04 1900                              |000a: const-class v4, [Ljava/lang/String; // type@0019
870003f0: 7120 1600 4300                         |000c: invoke-static {v3, v4}, Ljava/lang/invoke/MethodType;.methodType:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MethodType; // method@0016
880003f6: 0c03                                   |000f: move-result-object v3
890003f8: 6e40 1400 1032                         |0010: invoke-virtual {v0, v1, v2, v3}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@0014
900003fe: 0c00                                   |0013: move-result-object v0
91000400: fa20 1200 5000 1000                    |0014: invoke-polymorphic {v0, v5}, Ljava/lang/invoke/MethodHandle;.invokeExact:([Ljava/lang/Object;)Ljava/lang/Object;, ([Ljava/lang/String;)V // method@0012, proto@0010
92000408: 0e00                                   |0018: return-void
93      catches       : (none)
94      positions     :
95        0x0000 line=26
96        0x000c line=27
97        0x0014 line=28
98        0x0018 line=29
99      locals        :
100        0x0000 - 0x0019 reg=5 (null) [Ljava/lang/String;
101
102  Virtual methods   -
103  source_file_idx   : 29 (Main.java)
104
105Class #1 header:
106class_idx           : 6
107access_flags        : 1 (0x0001)
108superclass_idx      : 11
109interfaces_off      : 0 (0x000000)
110source_file_idx     : 3
111annotations_off     : 1360 (0x000550)
112class_data_off      : 2284 (0x0008ec)
113static_fields_size  : 0
114instance_fields_size: 0
115direct_methods_size : 6
116virtual_methods_size: 0
117
118Class #1 annotations:
119Annotations on method #3 'displayMethodHandle'
120  VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
121
122Class #1            -
123  Class descriptor  : 'Lconstmethodhandle/ConstTest;'
124  Access flags      : 0x0001 (PUBLIC)
125  Superclass        : 'Ljava/lang/Object;'
126  Interfaces        -
127  Static fields     -
128  Instance fields   -
129  Direct methods    -
130    #0              : (in Lconstmethodhandle/ConstTest;)
131      name          : '<init>'
132      type          : '()V'
133      access        : 0x10001 (PUBLIC CONSTRUCTOR)
134      method_idx    : 2
135      code          -
136      registers     : 1
137      ins           : 1
138      outs          : 1
139      insns size    : 4 16-bit code units
14000040c:                                        |[00040c] constmethodhandle.ConstTest.<init>:()V
14100041c: 7010 0a00 0000                         |0000: invoke-direct {v0}, Ljava/lang/Object;.<init>:()V // method@000a
142000422: 0e00                                   |0003: return-void
143      catches       : (none)
144      positions     :
145        0x0000 line=22
146      locals        :
147        0x0000 - 0x0004 reg=0 this Lconstmethodhandle/ConstTest;
148
149    #1              : (in Lconstmethodhandle/ConstTest;)
150      name          : 'displayMethodHandle'
151      type          : '(Ljava/lang/invoke/MethodHandle;)V'
152      access        : 0x000a (PRIVATE STATIC)
153      method_idx    : 3
154      code          -
155      registers     : 4
156      ins           : 1
157      outs          : 2
158      insns size    : 47 16-bit code units
159000424:                                        |[000424] constmethodhandle.ConstTest.displayMethodHandle:(Ljava/lang/invoke/MethodHandle;)V
160000434: 6200 0000                              |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0000
161000438: 2201 0d00                              |0002: new-instance v1, Ljava/lang/StringBuilder; // type@000d
16200043c: 7010 0c00 0100                         |0004: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@000c
163000442: 1a02 1e00                              |0007: const-string v2, "MethodHandle " // string@001e
164000446: 6e20 0e00 2100                         |0009: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@000e
16500044c: 0c01                                   |000c: move-result-object v1
16600044e: 6e20 0d00 3100                         |000d: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@000d
167000454: 0c01                                   |0010: move-result-object v1
168000456: 1a02 0000                              |0011: const-string v2, " => " // string@0000
16900045a: 6e20 0e00 2100                         |0013: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@000e
170000460: 0c01                                   |0016: move-result-object v1
171000462: 1402 0030 4046                         |0017: const v2, #float 12300 // #46403000
172000468: 7110 0900 0200                         |001a: invoke-static {v2}, Ljava/lang/Float;.valueOf:(F)Ljava/lang/Float; // method@0009
17300046e: 0c02                                   |001d: move-result-object v2
174000470: fa20 1100 2300 0100                    |001e: invoke-polymorphic {v3, v2}, Ljava/lang/invoke/MethodHandle;.invoke:([Ljava/lang/Object;)Ljava/lang/Object;, (Ljava/lang/Object;)Ljava/lang/Class; // method@0011, proto@0001
175000478: 0c02                                   |0022: move-result-object v2
17600047a: 6e20 0d00 2100                         |0023: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@000d
177000480: 0c01                                   |0026: move-result-object v1
178000482: 6e10 0f00 0100                         |0027: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@000f
179000488: 0c01                                   |002a: move-result-object v1
18000048a: 6e20 0800 1000                         |002b: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@0008
181000490: 0e00                                   |002e: return-void
182      catches       : (none)
183      positions     :
184        0x0000 line=24
185        0x001a line=25
186        0x002b line=24
187        0x002e line=26
188      locals        :
189        0x0000 - 0x002f reg=3 (null) Ljava/lang/invoke/MethodHandle;
190
191    #2              : (in Lconstmethodhandle/ConstTest;)
192      name          : 'displayMethodType'
193      type          : '(Ljava/lang/invoke/MethodType;)V'
194      access        : 0x000a (PRIVATE STATIC)
195      method_idx    : 4
196      code          -
197      registers     : 4
198      ins           : 1
199      outs          : 2
200      insns size    : 25 16-bit code units
201000494:                                        |[000494] constmethodhandle.ConstTest.displayMethodType:(Ljava/lang/invoke/MethodType;)V
2020004a4: 6200 0000                              |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0000
2030004a8: 2201 0d00                              |0002: new-instance v1, Ljava/lang/StringBuilder; // type@000d
2040004ac: 7010 0c00 0100                         |0004: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@000c
2050004b2: 1a02 1f00                              |0007: const-string v2, "MethodType " // string@001f
2060004b6: 6e20 0e00 2100                         |0009: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@000e
2070004bc: 0c01                                   |000c: move-result-object v1
2080004be: 6e20 0d00 3100                         |000d: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@000d
2090004c4: 0c01                                   |0010: move-result-object v1
2100004c6: 6e10 0f00 0100                         |0011: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@000f
2110004cc: 0c01                                   |0014: move-result-object v1
2120004ce: 6e20 0800 1000                         |0015: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@0008
2130004d4: 0e00                                   |0018: return-void
214      catches       : (none)
215      positions     :
216        0x0000 line=29
217        0x0018 line=30
218      locals        :
219        0x0000 - 0x0019 reg=3 (null) Ljava/lang/invoke/MethodType;
220
221    #3              : (in Lconstmethodhandle/ConstTest;)
222      name          : 'main'
223      type          : '([Ljava/lang/String;)V'
224      access        : 0x0009 (PUBLIC STATIC)
225      method_idx    : 5
226      code          -
227      registers     : 2
228      ins           : 1
229      outs          : 1
230      insns size    : 15 16-bit code units
2310004d8:                                        |[0004d8] constmethodhandle.ConstTest.main:([Ljava/lang/String;)V
2320004e8: 7100 0600 0000                         |0000: invoke-static {}, Lconstmethodhandle/ConstTest;.test1:()Ljava/lang/invoke/MethodHandle; // method@0006
2330004ee: 0c00                                   |0003: move-result-object v0
2340004f0: 7110 0300 0000                         |0004: invoke-static {v0}, Lconstmethodhandle/ConstTest;.displayMethodHandle:(Ljava/lang/invoke/MethodHandle;)V // method@0003
2350004f6: 7100 0700 0000                         |0007: invoke-static {}, Lconstmethodhandle/ConstTest;.test2:()Ljava/lang/invoke/MethodType; // method@0007
2360004fc: 0c00                                   |000a: move-result-object v0
2370004fe: 7110 0400 0000                         |000b: invoke-static {v0}, Lconstmethodhandle/ConstTest;.displayMethodType:(Ljava/lang/invoke/MethodType;)V // method@0004
238000504: 0e00                                   |000e: return-void
239      catches       : (none)
240      positions     :
241      locals        :
242
243    #4              : (in Lconstmethodhandle/ConstTest;)
244      name          : 'test1'
245      type          : '()Ljava/lang/invoke/MethodHandle;'
246      access        : 0x0009 (PUBLIC STATIC)
247      method_idx    : 6
248      code          -
249      registers     : 1
250      ins           : 0
251      outs          : 0
252      insns size    : 3 16-bit code units
253000508:                                        |[000508] constmethodhandle.ConstTest.test1:()Ljava/lang/invoke/MethodHandle;
254000518: fe00 0000                              |0000: const-method-handle v0, method_handle@0000
25500051c: 1100                                   |0002: return-object v0
256      catches       : (none)
257      positions     :
258      locals        :
259
260    #5              : (in Lconstmethodhandle/ConstTest;)
261      name          : 'test2'
262      type          : '()Ljava/lang/invoke/MethodType;'
263      access        : 0x0009 (PUBLIC STATIC)
264      method_idx    : 7
265      code          -
266      registers     : 1
267      ins           : 0
268      outs          : 0
269      insns size    : 3 16-bit code units
270000520:                                        |[000520] constmethodhandle.ConstTest.test2:()Ljava/lang/invoke/MethodType;
271000530: ff00 1100                              |0000: const-method-type v0, (CSIJFDLjava/lang/Object;)Z // proto@0011
272000534: 1100                                   |0002: return-object v0
273      catches       : (none)
274      positions     :
275      locals        :
276
277  Virtual methods   -
278  source_file_idx   : 3 (ConstTest.java)
279
280Method handle #0:
281  type        : invoke-instance
282  target      : Ljava/lang/Object; getClass
283  target_type : (Ljava/lang/Object;)Ljava/lang/Class;
284