diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/binding/CodegenAnnotatingVisitor.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/binding/CodegenAnnotatingVisitor.java index b11ddf1694e..f030af62da3 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/binding/CodegenAnnotatingVisitor.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/binding/CodegenAnnotatingVisitor.java @@ -821,20 +821,17 @@ class CodegenAnnotatingVisitor extends KtVisitorVoid { Map arguments = newResolvedCall.getValueArguments(); for (ValueParameterDescriptor valueParameter : arguments.keySet()) { - SamType samType = SamType.createByValueParameter(valueParameter); - if (samType == null) continue; - ResolvedValueArgument argument = arguments.get(valueParameter); if (argument instanceof ExpressionValueArgument) { ValueArgument valueArgument = ((ExpressionValueArgument) argument).getValueArgument(); if (valueArgument != null && newResolvedCall.getExpectedTypeForSamConvertedArgument(valueArgument) != null) { - recordSamTypeOnArgumentExpression(samType, valueArgument); + recordSamTypeOnArgumentExpression(valueParameter, valueArgument); } } else if (argument instanceof VarargValueArgument) { VarargValueArgument varargValueArgument = (VarargValueArgument) argument; for (ValueArgument valueArgument : varargValueArgument.getArguments()) { if (valueArgument != null && newResolvedCall.getExpectedTypeForSamConvertedArgument(valueArgument) != null) { - recordSamTypeOnArgumentExpression(samType, valueArgument); + recordSamTypeOnArgumentExpression(valueParameter, valueArgument); } } } @@ -872,6 +869,13 @@ class CodegenAnnotatingVisitor extends KtVisitorVoid { } } + private void recordSamTypeOnArgumentExpression(ValueParameterDescriptor valueParameter, ValueArgument valueArgument) { + SamType samType = SamType.createByValueParameter(valueParameter); + if (samType == null) return; + + recordSamTypeOnArgumentExpression(samType, valueArgument); + } + private void recordSamTypeOnArgumentExpression(SamType samType, ValueArgument valueArgument) { KtExpression argumentExpression = valueArgument.getArgumentExpression(); assert argumentExpression != null : valueArgument.asElement().getText();