diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/constants/evaluate/ConstantExpressionEvaluator.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/constants/evaluate/ConstantExpressionEvaluator.kt index 984d53c688b..80b58569f89 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/constants/evaluate/ConstantExpressionEvaluator.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/constants/evaluate/ConstantExpressionEvaluator.kt @@ -422,7 +422,10 @@ private class ConstantExpressionEvaluatorVisitor( if (languageVersionSettings.supportsFeature(LanguageFeature.ProhibitSimplificationOfNonTrivialConstBooleanExpressions)) { return true } else { - val parent = expression.parent + var parent = expression.parent + while (parent is KtParenthesizedExpression) { + parent = parent.parent + } if ( parent is KtWhenConditionWithExpression || parent is KtContainerNode && (parent.parent is KtWhileExpression || parent.parent is KtDoWhileExpression) diff --git a/compiler/testData/diagnostics/tests/when/exhaustiveBooleanWhenWithUntrivialConst_warning.fir.kt b/compiler/testData/diagnostics/tests/when/exhaustiveBooleanWhenWithUntrivialConst_warning.fir.kt index bfe1fc465a1..398de182f0d 100644 --- a/compiler/testData/diagnostics/tests/when/exhaustiveBooleanWhenWithUntrivialConst_warning.fir.kt +++ b/compiler/testData/diagnostics/tests/when/exhaustiveBooleanWhenWithUntrivialConst_warning.fir.kt @@ -9,8 +9,8 @@ fun test_0(b: Boolean): String = when (b) { // Deprecated fun test_1(b: Boolean): String = when (b) { - 1 == 1 -> "true" - "" != "" -> "false" + (1 == 1) -> "true" + ("" != "") -> "false" } const val TRUE = true @@ -27,5 +27,5 @@ const val s2 = "s2" // Already not working fun test_3(b: Boolean): String = when(b) { true -> "true" - s1 == s2 -> "false" + (s1 == s2) -> "false" }