Use correctElementType to determine array element type for withIndex

Rather unkind "gotcha" in ASM API.

 #KT-23900 Fixed Target versions 1.2.50
This commit is contained in:
Dmitry Petrov
2018-04-23 11:37:52 +03:00
parent 5817a7fdac
commit 1eca402332
8 changed files with 73 additions and 11 deletions
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.codegen.range.forLoop
import org.jetbrains.kotlin.codegen.AsmUtil
import org.jetbrains.kotlin.codegen.ExpressionCodegen
import org.jetbrains.kotlin.codegen.StackValue
import org.jetbrains.kotlin.codegen.generateCallReceiver
@@ -24,7 +25,7 @@ class ArrayWithIndexForLoopGenerator(
) : AbstractWithIndexForLoopGenerator(codegen, forExpression, loopParameter, rangeCall) {
private val arrayType = codegen.asmType(ExpressionCodegen.getExpectedReceiverType(rangeCall))
private val arrayElementType = arrayType.elementType
private val arrayElementType = AsmUtil.correctElementType(arrayType)
private var arrayVar = -1
private var arrayLengthVar = -1