From b430cfa9530fed0750bc28b43e15cb42b5c18d92 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Mon, 8 Apr 2019 18:37:32 +0300 Subject: [PATCH] New J2K: fix priority in PolyadicExpressionConversion --- .../kotlin/nj2k/conversions/PolyadicExpressionConversion.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/PolyadicExpressionConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/PolyadicExpressionConversion.kt index ab99b1edcf4..27e78c76e62 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/PolyadicExpressionConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/PolyadicExpressionConversion.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.nj2k.conversions +import org.jetbrains.kotlin.nj2k.parenthesizeIfBinaryExpression import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.tree.impl.JKBinaryExpressionImpl import org.jetbrains.kotlin.nj2k.tree.impl.JKParenthesizedExpressionImpl @@ -14,7 +15,8 @@ class PolyadicExpressionConversion : RecursiveApplicableConversionBase() { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKJavaPolyadicExpression) return recurse(element) val needParenthesis = element.operands.any { it.containsNewLine() } - val polyadic = convertPolyadic(element.operands.also { element.operands = emptyList() }, element.tokens) + val parenthesisedOperands = element::operands.detached().map { it.parenthesizeIfBinaryExpression() } + val polyadic = convertPolyadic(parenthesisedOperands, element.tokens) return recurse( if (needParenthesis) JKParenthesizedExpressionImpl(polyadic)