1*055d4590SKeyi GuiThis is a smoke test of dex conversion, which checks to see that uses 2*055d4590SKeyi Guiof a known-null in contexts that require a specific type end up getting 3*055d4590SKeyi Guiconverted to the type in question. When executed, this sort of code 4*055d4590SKeyi Guiwill inevitably throw a NullPointerException, but if the opcode weren't 5*055d4590SKeyi Guicorrect, they would instead incorrectly fail verification. 6*055d4590SKeyi Gui 7*055d4590SKeyi GuiIf you inspect the expected output of this test, you will see that 8*055d4590SKeyi Guithere are some surprising instructions in there, such as using 9*055d4590SKeyi Guiaget-byte for what was a boolean[] in the source code. In these cases, 10*055d4590SKeyi Guithe resulting output is still correct (passes verification and will 11*055d4590SKeyi Guithrow a NullPointerException if ever executed). However, it happens 12*055d4590SKeyi Guithat during translation there simply wasn't enough information to 13*055d4590SKeyi Guirecover the "true" original meaning at the level of actual opcode 14*055d4590SKeyi Guiselection. 15*055d4590SKeyi Gui 16*055d4590SKeyi GuiThis test compares emitted code against a known-good (via eyeballing) 17*055d4590SKeyi Guiversion, so it is possible for this test to spuriously fail if other 18*055d4590SKeyi Guiaspects of conversion end up altering the output in innocuous ways. 19