1# Copyright (C) 2016 The Android Open Source Project
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#      http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15.class public LMain;
16.super LMyThreadSet;
17
18.method public static ArgumentType_ResolvedClass(Ljava/lang/Thread;)V
19  .registers 1
20  return-void
21.end method
22
23.method public static ArgumentType_ResolvedReferenceArray([Ljava/lang/Thread;)V
24  .registers 1
25  return-void
26.end method
27
28.method public static ArgumentType_ResolvedPrimitiveArray([B)V
29  .registers 1
30  return-void
31.end method
32
33.method public static ArgumentType_UnresolvedClass(LUnresolvedClass;)V
34  .registers 1
35  return-void
36.end method
37
38.method public static ArgumentType_UnresolvedSuper(LMySetWithUnresolvedSuper;)V
39  .registers 1
40  return-void
41.end method
42
43.method public static ReturnType_Reference(Ljava/lang/IllegalStateException;)Ljava/lang/Throwable;
44  .registers 1
45  return-object p0
46.end method
47
48.method public static ReturnType_Array([Ljava/lang/IllegalStateException;)[Ljava/lang/Integer;
49  .registers 1
50  return-object p0
51.end method
52
53.method public static InvokeArgumentType(Ljava/text/SimpleDateFormat;Ljava/util/SimpleTimeZone;)V
54  .registers 2
55  invoke-virtual {p0, p1}, Ljava/text/SimpleDateFormat;->setTimeZone(Ljava/util/TimeZone;)V
56  return-void
57.end method
58
59.method public static MergeTypes_RegisterLines(Z)Ljava/lang/Object;
60  .registers 2
61  if-eqz p0, :else
62
63  new-instance v0, LMySocketTimeoutException;
64  invoke-direct {v0}, LMySocketTimeoutException;-><init>()V
65  goto :merge
66
67  :else
68  new-instance v0, Ljava/util/concurrent/TimeoutException;
69  invoke-direct {v0}, Ljava/util/concurrent/TimeoutException;-><init>()V
70  goto :merge
71
72  :merge
73  return-object v0
74.end method
75
76.method public static MergeTypes_IfInstanceOf(Ljava/net/SocketTimeoutException;)V
77  .registers 2
78  instance-of v0, p0, Ljava/util/concurrent/TimeoutException;
79  if-eqz v0, :else
80  return-void
81  :else
82  return-void
83.end method
84
85.method public static MergeTypes_Unresolved(ZZLUnresolvedClassA;)Ljava/lang/Object;
86  .registers 5
87  if-eqz p0, :else1
88
89  move-object v0, p2
90  goto :merge
91
92  :else1
93  if-eqz p1, :else2
94
95  new-instance v0, Ljava/util/concurrent/TimeoutException;
96  invoke-direct {v0}, Ljava/util/concurrent/TimeoutException;-><init>()V
97  goto :merge
98
99  :else2
100  new-instance v0, Ljava/net/SocketTimeoutException;
101  invoke-direct {v0}, Ljava/net/SocketTimeoutException;-><init>()V
102  goto :merge
103
104  :merge
105  return-object v0
106.end method
107
108.method public static ConstClass_Resolved()V
109  .registers 1
110  const-class v0, Ljava/lang/IllegalStateException;
111  return-void
112.end method
113
114.method public static ConstClass_Unresolved()V
115  .registers 1
116  const-class v0, LUnresolvedClass;
117  return-void
118.end method
119
120.method public static CheckCast_Resolved(Ljava/lang/Object;)V
121  .registers 1
122  check-cast p0, Ljava/lang/IllegalStateException;
123  return-void
124.end method
125
126.method public static CheckCast_Unresolved(Ljava/lang/Object;)V
127  .registers 1
128  check-cast p0, LUnresolvedClass;
129  return-void
130.end method
131
132.method public static InstanceOf_Resolved(Ljava/lang/Object;)Z
133  .registers 1
134  instance-of p0, p0, Ljava/lang/IllegalStateException;
135  return p0
136.end method
137
138.method public static InstanceOf_Unresolved(Ljava/lang/Object;)Z
139  .registers 1
140  instance-of p0, p0, LUnresolvedClass;
141  return p0
142.end method
143
144.method public static NewInstance_Resolved()V
145  .registers 1
146  new-instance v0, Ljava/lang/IllegalStateException;
147  return-void
148.end method
149
150.method public static NewInstance_Unresolved()V
151  .registers 1
152  new-instance v0, LUnresolvedClass;
153  return-void
154.end method
155
156.method public static NewArray_Resolved()V
157  .registers 1
158  const/4 v0, 0x1
159  new-array v0, v0, [Ljava/lang/IllegalStateException;
160  return-void
161.end method
162
163.method public static NewArray_Unresolved()V
164  .registers 2
165  const/4 v0, 0x1
166  new-array v0, v0, [LUnresolvedClass;
167  return-void
168.end method
169
170.method public static Throw(Ljava/lang/IllegalStateException;)V
171  .registers 2
172  throw p0
173.end method
174
175.method public static MoveException_Resolved()Ljava/lang/Object;
176  .registers 1
177  :try_start
178  invoke-static {}, Ljava/lang/System;->nanoTime()J
179  :try_end
180  .catch Ljava/net/SocketTimeoutException; {:try_start .. :try_end} :catch_block
181  .catch Ljava/io/InterruptedIOException; {:try_start .. :try_end} :catch_block
182  .catch Ljava/util/zip/ZipException; {:try_start .. :try_end} :catch_block
183  const/4 v0, 0x0
184  return-object v0
185
186  :catch_block
187  move-exception v0
188  return-object v0
189.end method
190
191.method public static MoveException_Unresolved()Ljava/lang/Object;
192  .registers 1
193  :try_start
194  invoke-static {}, Ljava/lang/System;->nanoTime()J
195  :try_end
196  .catch LUnresolvedException; {:try_start .. :try_end} :catch_block
197  const/4 v0, 0x0
198  return-object v0
199
200  :catch_block
201  move-exception v0
202  return-object v0
203.end method
204
205.method public static StaticField_Resolved_DeclaredInReferenced()V
206  .registers 1
207  sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
208  return-void
209.end method
210
211.method public static StaticField_Resolved_DeclaredInSuperclass1()V
212  .registers 1
213  sget v0, Ljava/util/SimpleTimeZone;->LONG:I
214  return-void
215.end method
216
217.method public static StaticField_Resolved_DeclaredInSuperclass2()V
218  .registers 1
219  sget v0, LMySimpleTimeZone;->SHORT:I
220  return-void
221.end method
222
223.method public static StaticField_Resolved_DeclaredInInterface1()V
224  .registers 1
225  # Case 1: DOMResult implements Result
226  sget-object v0, Ljavax/xml/transform/dom/DOMResult;->PI_ENABLE_OUTPUT_ESCAPING:Ljava/lang/String;
227  return-void
228.end method
229
230.method public static StaticField_Resolved_DeclaredInInterface2()V
231  .registers 1
232  # Case 2: MyDOMResult extends DOMResult, DOMResult implements Result
233  sget-object v0, LMyDOMResult;->PI_ENABLE_OUTPUT_ESCAPING:Ljava/lang/String;
234  return-void
235.end method
236
237.method public static StaticField_Resolved_DeclaredInInterface3()V
238  .registers 1
239  # Case 3: MyResult implements Result
240  sget-object v0, LMyResult;->PI_ENABLE_OUTPUT_ESCAPING:Ljava/lang/String;
241  return-void
242.end method
243
244.method public static StaticField_Resolved_DeclaredInInterface4()V
245  .registers 1
246  # Case 4: MyDocument implements Document, Document extends Node
247  sget-short v0, LMyDocument;->ELEMENT_NODE:S
248  return-void
249.end method
250
251.method public static StaticField_Unresolved_ReferrerInBoot()V
252  .registers 1
253  sget v0, Ljava/util/TimeZone;->x:I
254  return-void
255.end method
256
257.method public static StaticField_Unresolved_ReferrerInDex()V
258  .registers 1
259  sget v0, LMyThreadSet;->x:I
260  return-void
261.end method
262
263.method public static InstanceField_Resolved_DeclaredInReferenced(LMySocketTimeoutException;)V
264  .registers 1
265  iget v0, p0, Ljava/io/InterruptedIOException;->bytesTransferred:I
266  return-void
267.end method
268
269.method public static InstanceField_Resolved_DeclaredInSuperclass1(LMySocketTimeoutException;)V
270  .registers 1
271  iget v0, p0, Ljava/net/SocketTimeoutException;->bytesTransferred:I
272  return-void
273.end method
274
275.method public static InstanceField_Resolved_DeclaredInSuperclass2(LMySocketTimeoutException;)V
276  .registers 1
277  iget v0, p0, LMySocketTimeoutException;->bytesTransferred:I
278  return-void
279.end method
280
281.method public static InstanceField_Unresolved_ReferrerInBoot(LMySocketTimeoutException;)V
282  .registers 1
283  iget v0, p0, Ljava/io/InterruptedIOException;->x:I
284  return-void
285.end method
286
287.method public static InstanceField_Unresolved_ReferrerInDex(LMyThreadSet;)V
288  .registers 1
289  iget v0, p0, LMyThreadSet;->x:I
290  return-void
291.end method
292
293.method public static InvokeStatic_Resolved_DeclaredInReferenced()V
294  .registers 1
295  const v0, 0x0
296  invoke-static {v0}, Ljava/net/Socket;->setSocketImplFactory(Ljava/net/SocketImplFactory;)V
297  return-void
298.end method
299
300.method public static InvokeStatic_Resolved_DeclaredInSuperclass1()V
301  .registers 1
302  const v0, 0x0
303  invoke-static {v0}, Ljavax/net/ssl/SSLSocket;->setSocketImplFactory(Ljava/net/SocketImplFactory;)V
304  return-void
305.end method
306
307.method public static InvokeStatic_Resolved_DeclaredInSuperclass2()V
308  .registers 1
309  const v0, 0x0
310  invoke-static {v0}, LMySSLSocket;->setSocketImplFactory(Ljava/net/SocketImplFactory;)V
311  return-void
312.end method
313
314.method public static InvokeStatic_DeclaredInInterface1()V
315  .registers 1
316  invoke-static {}, Ljava/util/Map$Entry;->comparingByKey()Ljava/util/Comparator;
317  return-void
318.end method
319
320.method public static InvokeStatic_DeclaredInInterface2()V
321  .registers 1
322  # AbstractMap$SimpleEntry implements Map$Entry
323  # INVOKE_STATIC does not resolve to methods in superinterfaces. This will
324  # therefore result in an unresolved method.
325  invoke-static {}, Ljava/util/AbstractMap$SimpleEntry;->comparingByKey()Ljava/util/Comparator;
326  return-void
327.end method
328
329.method public static InvokeStatic_Unresolved1()V
330  .registers 1
331  invoke-static {}, Ljavax/net/ssl/SSLSocket;->x()V
332  return-void
333.end method
334
335.method public static InvokeStatic_Unresolved2()V
336  .registers 1
337  invoke-static {}, LMySSLSocket;->x()V
338  return-void
339.end method
340
341.method public static InvokeDirect_Resolved_DeclaredInReferenced()V
342  .registers 1
343  new-instance v0, Ljava/net/Socket;
344  invoke-direct {v0}, Ljava/net/Socket;-><init>()V
345  return-void
346.end method
347
348.method public static InvokeDirect_Resolved_DeclaredInSuperclass1(LMySSLSocket;)V
349  .registers 1
350  invoke-direct {p0}, Ljavax/net/ssl/SSLSocket;->checkOldImpl()V
351  return-void
352.end method
353
354.method public static InvokeDirect_Resolved_DeclaredInSuperclass2(LMySSLSocket;)V
355  .registers 1
356  invoke-direct {p0}, LMySSLSocket;->checkOldImpl()V
357  return-void
358.end method
359
360.method public static InvokeDirect_Unresolved1(LMySSLSocket;)V
361  .registers 1
362  invoke-direct {p0}, Ljavax/net/ssl/SSLSocket;->x()V
363  return-void
364.end method
365
366.method public static InvokeDirect_Unresolved2(LMySSLSocket;)V
367  .registers 1
368  invoke-direct {p0}, LMySSLSocket;->x()V
369  return-void
370.end method
371
372.method public static InvokeVirtual_Resolved_DeclaredInReferenced(LMySocketTimeoutException;)V
373  .registers 1
374  invoke-virtual {p0}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
375  return-void
376.end method
377
378.method public static InvokeVirtual_Resolved_DeclaredInSuperclass1(LMySocketTimeoutException;)V
379  .registers 1
380  invoke-virtual {p0}, Ljava/io/InterruptedIOException;->getMessage()Ljava/lang/String;
381  return-void
382.end method
383
384.method public static InvokeVirtual_Resolved_DeclaredInSuperclass2(LMySocketTimeoutException;)V
385  .registers 1
386  invoke-virtual {p0}, LMySocketTimeoutException;->getMessage()Ljava/lang/String;
387  return-void
388.end method
389
390.method public static InvokeVirtual_Resolved_DeclaredInSuperinterface(LMyThreadSet;)V
391  .registers 1
392  invoke-virtual {p0}, LMyThreadSet;->size()I
393  return-void
394.end method
395
396.method public static InvokeVirtual_Unresolved1(LMySocketTimeoutException;)V
397  .registers 1
398  invoke-virtual {p0}, Ljava/io/InterruptedIOException;->x()V
399  return-void
400.end method
401
402.method public static InvokeVirtual_Unresolved2(LMySocketTimeoutException;)V
403  .registers 1
404  invoke-virtual {p0}, LMySocketTimeoutException;->x()V
405  return-void
406.end method
407
408.method public static InvokeInterface_Resolved_DeclaredInReferenced(LMyThread;)V
409  .registers 1
410  invoke-interface {p0}, Ljava/lang/Runnable;->run()V
411  return-void
412.end method
413
414.method public static InvokeInterface_Resolved_DeclaredInSuperclass(LMyThread;)V
415  .registers 1
416  # Method join() is declared in the superclass of MyThread. As such, it should
417  # be called with invoke-virtual. However, the lookup type does not depend
418  # on the invoke type, so it shall be resolved here anyway.
419  # TODO: Maybe we should not record dependency if the invoke type does not match the lookup type.
420  invoke-interface {p0}, LMyThread;->join()V
421  return-void
422.end method
423
424.method public static InvokeInterface_Resolved_DeclaredInSuperinterface1(LMyThreadSet;)V
425  .registers 1
426  # Verification will fail because the referring class is not an interface.
427  # However, the lookup type does not depend on the invoke type, so it shall be resolved here anyway.
428  # TODO: Maybe we should not record dependency if the invoke type does not match the lookup type.
429  invoke-interface {p0}, LMyThreadSet;->run()V
430  return-void
431.end method
432
433.method public static InvokeInterface_Resolved_DeclaredInSuperinterface2(LMyThreadSet;)V
434  .registers 1
435  # Verification will fail because the referring class is not an interface.
436  invoke-interface {p0}, LMyThreadSet;->isEmpty()Z
437  return-void
438.end method
439
440.method public static InvokeInterface_Unresolved1(LMyThread;)V
441  .registers 1
442  invoke-interface {p0}, Ljava/lang/Runnable;->x()V
443  return-void
444.end method
445
446.method public static InvokeInterface_Unresolved2(LMyThread;)V
447  .registers 1
448  invoke-interface {p0}, LMyThreadSet;->x()V
449  return-void
450.end method
451
452.method public static InvokeSuper_ThisAssignable(Ljava/lang/Thread;)V
453  .registers 1
454  invoke-super {p0}, Ljava/lang/Runnable;->run()V
455  return-void
456.end method
457
458.method public static InvokeSuper_ThisNotAssignable(Ljava/lang/Integer;)V
459  .registers 1
460  invoke-super {p0}, Ljava/lang/Integer;->intValue()I
461  return-void
462.end method
463