Expanded frames result in incorrect types for primitive arrays of more than seven dimensions.
The R8 compiler is currently using the expanded frames format when emitting classfiles. We have hit a corner case where a primitive array with more than 7 dimensions causes the result to reference an incorrect type from the stack map table.
We have a reproduction at: https://r8.googlesource.com/r8/+/master/src/test/java/com/android/tools/r8/debug/ArrayDimensionGreaterThanSevenTestDump.java
The source of that dump is at: https://r8.googlesource.com/r8/+/master/src/test/java/com/android/tools/r8/debug/ArrayDimensionGreaterThanSevenTest.java
The dump file is modified to use the expanded frames instead of the compressed frames computed with ASMify. The compressed frames do not have the issue.
Dumping the classfile and running Java will result in the error: java.lang.NoClassDefFoundError: F
We are currently using ASM 6.2.1