From 2c7e44f41e6047de2043ea778dc9f9ccb1cd1928 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Mon, 3 Dec 2018 23:25:43 +0300 Subject: [PATCH] New J2K: Add checking for receiver type in `for` conversion's indicesByCollectionSize --- .../jetbrains/kotlin/j2k/conversions/ForConversion.kt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/conversions/ForConversion.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/conversions/ForConversion.kt index 24fad3519dc..7c7dbf9330b 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/conversions/ForConversion.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/conversions/ForConversion.kt @@ -237,10 +237,11 @@ class ForConversion(private val context: ConversionContext) : RecursiveApplicabl private fun indicesByCollectionSize(javaSizeCall: JKQualifiedExpression): JKQualifiedExpression? { val methodCall = javaSizeCall.selector as? JKMethodCallExpression ?: return null - val receiverType = javaSizeCall.receiver.type(context) as? JKClassType ?: return null - - //TODO check if receiver type is Collection - if (methodCall.identifier.name == "size" && methodCall.arguments.expressions.isEmpty()) { + val receiverType = javaSizeCall.receiver.type(context) ?: return null + if (methodCall.identifier.name == "size" + && methodCall.arguments.expressions.isEmpty() + && receiverType.isCollectionType(context.symbolProvider) + ) { return toIndicesCall(javaSizeCall) } return null