| This is a smoke test of dex conversion, which checks to see that uses |
| of a known-null in contexts that require a specific type end up getting |
| converted to the type in question. When executed, this sort of code |
| will inevitably throw a NullPointerException, but if the opcode weren't |
| correct, they would instead incorrectly fail verification. |
| |
| If you inspect the expected output of this test, you will see that |
| there are some surprising instructions in there, such as using |
| aget-byte for what was a boolean[] in the source code. In these cases, |
| the resulting output is still correct (passes verification and will |
| throw a NullPointerException if ever executed). However, it happens |
| that during translation there simply wasn't enough information to |
| recover the "true" original meaning at the level of actual opcode |
| selection. |
| |
| This test compares emitted code against a known-good (via eyeballing) |
| version, so it is possible for this test to spuriously fail if other |
| aspects of conversion end up altering the output in innocuous ways. |