From cd0c644654a4de70ddf50e0a3ba25531544fdd55 Mon Sep 17 00:00:00 2001 From: Simon Ogorodnik Date: Fri, 17 Jul 2020 23:02:34 +0300 Subject: [PATCH] J2K: Fix incorrect early detaching of elements in for conversion --- .../org/jetbrains/kotlin/nj2k/conversions/ForConversion.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ForConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ForConversion.kt index c3a83cfd3bb..ae0c57a00b9 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ForConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ForConversion.kt @@ -118,10 +118,8 @@ class ForConversion(context: NewJ2kConverterContext) : RecursiveApplicableConver && !loopVarPsi.hasWriteAccesses(referenceSearcher, loopStatement.condition.psi()) ) { val left = condition.left as? JKFieldAccessExpression ?: return null - val right = condition::right.detached() - if (right.psi()?.type in listOf(PsiType.DOUBLE, PsiType.FLOAT, PsiType.CHAR)) return null + if (condition.right.psi()?.type in listOf(PsiType.DOUBLE, PsiType.FLOAT, PsiType.CHAR)) return null if (left.identifier.target != loopVar) return null - val start = loopVar::initializer.detached() val operationType = (loopStatement.updaters.singleOrNull() as? JKExpressionStatement)?.expression?.isVariableIncrementOrDecrement(loopVar) val reversed = when (operationType?.token?.text) { @@ -139,6 +137,8 @@ class ForConversion(context: NewJ2kConverterContext) : RecursiveApplicableConver KtTokens.EXCLEQ -> false else -> return null } + val start = loopVar::initializer.detached() + val right = condition::right.detached() val range = forIterationRange(start, right, reversed, inclusive) val explicitType = if (context.converter.settings.specifyLocalVariableTypeByDefault)