diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java index 675358a5d90..8ba0bd83dc1 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java @@ -504,7 +504,7 @@ public class FunctionCodegen { if (destructuringVariables == null) continue; for (VariableDescriptor entry : destructuringVariables) { - Type type = typeMapper.mapType(parameter.getType()); + Type type = typeMapper.mapType(entry.getType()); mv.visitLocalVariable(entry.getName().asString(), type.getDescriptor(), null, methodBegin, methodEnd, shift); shift += type.getSize(); } diff --git a/compiler/testData/checkLocalVariablesTable/destructuringInLambdas.kt b/compiler/testData/checkLocalVariablesTable/destructuringInLambdas.kt index 779e4e522ca..51d840b3f1b 100644 --- a/compiler/testData/checkLocalVariablesTable/destructuringInLambdas.kt +++ b/compiler/testData/checkLocalVariablesTable/destructuringInLambdas.kt @@ -1,13 +1,13 @@ -data class A(val x: String, val y: String) +data class A(val x: String, val y: Int) fun foo(a: A, block: (A) -> String): String = block(a) fun box() { - foo(A("O", "K")) { (x, y) -> x + y } + foo(A("O", 123)) { (x, y) -> x + y } } // METHOD : DestructuringInLambdasKt$box$1.invoke(LA;)Ljava/lang/String; // VARIABLE : NAME=this TYPE=LDestructuringInLambdasKt$box$1; INDEX=0 // VARIABLE : NAME=$x_y TYPE=LA; INDEX=1 -// VARIABLE : NAME=x TYPE=LA; INDEX=2 -// VARIABLE : NAME=y TYPE=LA; INDEX=3 +// VARIABLE : NAME=x TYPE=Ljava/lang/String; INDEX=2 +// VARIABLE : NAME=y TYPE=I INDEX=3 diff --git a/idea/testData/debugger/tinyApp/outs/destructuringParam.out b/idea/testData/debugger/tinyApp/outs/destructuringParam.out index c67aad5679a..4cd711ee8b7 100644 --- a/idea/testData/debugger/tinyApp/outs/destructuringParam.out +++ b/idea/testData/debugger/tinyApp/outs/destructuringParam.out @@ -38,11 +38,11 @@ fun main(args: Array) { field = value: char[] = {char[1]@uniqueID} (sp = String.!EXT!) element = 0 = 'K' 75 field = hash: int = 0 (sp = String.!EXT!) - local = x: destructuringParam.A = O (sp = destructuringParam.kt, 12) + local = x: java.lang.String = O (sp = destructuringParam.kt, 12) field = value: char[] = {char[1]@uniqueID} (sp = String.!EXT!) element = 0 = 'O' 79 field = hash: int = 0 (sp = String.!EXT!) - local = y: destructuringParam.A = K (sp = destructuringParam.kt, 12) + local = y: java.lang.String = K (sp = destructuringParam.kt, 12) field = value: char[] = {char[1]@uniqueID} (sp = String.!EXT!) element = 0 = 'K' 75 field = hash: int = 0 (sp = String.!EXT!)