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 InvokeVirtual_ActuallyDirect(LMyThread;)V 409 .registers 1 410 invoke-virtual {p0}, LMyThread;->activeCount()I 411 return-void 412 .end method 413 414 .method public static InvokeInterface_Resolved_DeclaredInReferenced(LMyThread;)V 415 .registers 1 416 invoke-interface {p0}, Ljava/lang/Runnable;->run()V 417 return-void 418 .end method 419 420 .method public static InvokeInterface_Resolved_DeclaredInSuperclass(LMyThread;)V 421 .registers 1 422 # Method join() is declared in the superclass of MyThread. As such, it should 423 # be called with invoke-virtual and will not be resolved here. 424 invoke-interface {p0}, LMyThread;->join()V 425 return-void 426 .end method 427 428 .method public static InvokeInterface_Resolved_DeclaredInSuperinterface1(LMyThreadSet;)V 429 .registers 1 430 # Verification will fail because the referring class is not an interface. 431 invoke-interface {p0}, LMyThreadSet;->run()V 432 return-void 433 .end method 434 435 .method public static InvokeInterface_Resolved_DeclaredInSuperinterface2(LMyThreadSet;)V 436 .registers 1 437 # Verification will fail because the referring class is not an interface. 438 invoke-interface {p0}, LMyThreadSet;->isEmpty()Z 439 return-void 440 .end method 441 442 .method public static InvokeInterface_Unresolved1(LMyThread;)V 443 .registers 1 444 invoke-interface {p0}, Ljava/lang/Runnable;->x()V 445 return-void 446 .end method 447 448 .method public static InvokeInterface_Unresolved2(LMyThread;)V 449 .registers 1 450 invoke-interface {p0}, LMyThreadSet;->x()V 451 return-void 452 .end method 453 454 .method public static InvokeSuper_ThisAssignable(Ljava/lang/Thread;)V 455 .registers 1 456 invoke-super {p0}, Ljava/lang/Runnable;->run()V 457 return-void 458 .end method 459 460 .method public static InvokeSuper_ThisNotAssignable(Ljava/lang/Integer;)V 461 .registers 1 462 invoke-super {p0}, Ljava/lang/Integer;->intValue()I 463 return-void 464 .end method 465