diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/KtPsiUtil.java b/compiler/frontend/src/org/jetbrains/kotlin/psi/KtPsiUtil.java index cdcb56420e0..ec7f4257b3c 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/psi/KtPsiUtil.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/KtPsiUtil.java @@ -874,4 +874,16 @@ public class KtPsiUtil { public static boolean isStatement(@NotNull PsiElement element) { return isStatementContainer(element.getParent()); } + + public static boolean isInOrNotInOperation(@NotNull KtBinaryExpression binaryExpression) { + return isInOperation(binaryExpression) || isNotInOperation(binaryExpression); + } + + public static boolean isNotInOperation(@NotNull KtBinaryExpression binaryExpression) { + return (binaryExpression.getOperationToken() == KtTokens.NOT_IN); + } + + private static boolean isInOperation(@NotNull KtBinaryExpression binaryExpression) { + return (binaryExpression.getOperationToken() == KtTokens.IN_KEYWORD); + } } diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/translate/operation/BinaryOperationTranslator.java b/js/js.translator/src/org/jetbrains/kotlin/js/translate/operation/BinaryOperationTranslator.java index 1cf17d950db..3894d45678d 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/translate/operation/BinaryOperationTranslator.java +++ b/js/js.translator/src/org/jetbrains/kotlin/js/translate/operation/BinaryOperationTranslator.java @@ -34,6 +34,7 @@ import org.jetbrains.kotlin.lexer.KtToken; import org.jetbrains.kotlin.lexer.KtTokens; import org.jetbrains.kotlin.psi.KtBinaryExpression; import org.jetbrains.kotlin.psi.KtExpression; +import org.jetbrains.kotlin.psi.KtPsiUtil; import org.jetbrains.kotlin.resolve.bindingContextUtil.BindingContextUtilsKt; import org.jetbrains.kotlin.resolve.calls.callUtil.CallUtilKt; import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall; @@ -47,7 +48,8 @@ import static org.jetbrains.kotlin.js.translate.operation.AssignmentTranslator.i import static org.jetbrains.kotlin.js.translate.operation.CompareToTranslator.isCompareToCall; import static org.jetbrains.kotlin.js.translate.utils.BindingUtils.getCallableDescriptorForOperationExpression; import static org.jetbrains.kotlin.js.translate.utils.JsAstUtils.not; -import static org.jetbrains.kotlin.js.translate.utils.PsiUtils.*; +import static org.jetbrains.kotlin.js.translate.utils.PsiUtils.getOperationToken; +import static org.jetbrains.kotlin.js.translate.utils.PsiUtils.isNegatedOperation; public final class BinaryOperationTranslator extends AbstractTranslator { @@ -260,7 +262,7 @@ public final class BinaryOperationTranslator extends AbstractTranslator { @NotNull private JsExpression getReceiver() { - if (isInOrNotInOperation(expression)) { + if (KtPsiUtil.isInOrNotInOperation(expression)) { return Translation.translateAsExpression(rightKtExpression, context()); } else { return Translation.translateAsExpression(leftKtExpression, context()); diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/PsiUtils.java b/js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/PsiUtils.java index 516cb11b3dd..475fd443f44 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/PsiUtils.java +++ b/js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/PsiUtils.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2015 JetBrains s.r.o. + * Copyright 2010-2017 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -93,20 +93,8 @@ public final class PsiUtils { return (token == KtTokens.EQ); } - public static boolean isInOrNotInOperation(@NotNull KtBinaryExpression binaryExpression) { - return isInOperation(binaryExpression) || isNotInOperation(binaryExpression); - } - - private static boolean isNotInOperation(@NotNull KtBinaryExpression binaryExpression) { - return (binaryExpression.getOperationToken() == KtTokens.NOT_IN); - } - public static boolean isNegatedOperation(@NotNull KtBinaryExpression binaryExpression) { - return (binaryExpression.getOperationToken() == KtTokens.EXCLEQ) || isNotInOperation(binaryExpression); - } - - private static boolean isInOperation(@NotNull KtBinaryExpression binaryExpression) { - return (binaryExpression.getOperationToken() == KtTokens.IN_KEYWORD); + return (binaryExpression.getOperationToken() == KtTokens.EXCLEQ) || KtPsiUtil.isNotInOperation(binaryExpression); } @NotNull