Refactoring: move several utils from js module to frontend

This commit is contained in:
Mikhail Zarechenskiy
2017-06-19 03:31:27 +03:00
parent dbfea9b787
commit d17f31c8b0
3 changed files with 18 additions and 16 deletions
@@ -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);
}
}
@@ -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());
@@ -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