mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
StreamToLoop: fixed comparator parentheses wrapping; ParenthesesUtils changes reverted (unnecessary)
This commit is contained in:
@@ -709,7 +709,8 @@ abstract class TerminalOperation extends Operation {
|
||||
if(myComparator != null) {
|
||||
myComparator.transform(context, inVar.getName(), best);
|
||||
PsiExpression expression = myComparator.getExpression();
|
||||
String text = ParenthesesUtils.areParenthesesNeeded(JavaTokenType.GT, expression) ? "("+expression.getText()+")" : expression.getText();
|
||||
int expressionPrecedence = ParenthesesUtils.getPrecedence(expression);
|
||||
String text = expressionPrecedence >= ParenthesesUtils.EQUALITY_PRECEDENCE ? "("+expression.getText()+")" : expression.getText();
|
||||
comparePredicate = myTemplate.replace("{comparator}", text);
|
||||
} else {
|
||||
comparePredicate = myTemplate.replace("{best}", best).replace("{item}", inVar.getName());
|
||||
|
||||
+2
-2
@@ -3,11 +3,11 @@
|
||||
import java.util.*;
|
||||
|
||||
public class Main {
|
||||
private static Optional<String> max(Map<String, List<String>> dependencies, String fruits, Map<String, String> weights) {
|
||||
private static Optional<String> max(Map<String, List<String>> dependencies, String fruits, Map<String, Integer> weights) {
|
||||
boolean seen = false;
|
||||
String best = null;
|
||||
for (String s : dependencies.get(fruits)) {
|
||||
if (!seen || weights.get(s).compareTo(weights.get(best)) > 0) {
|
||||
if (!seen || weights.get(s) - weights.get(best) > 0) {
|
||||
seen = true;
|
||||
best = s;
|
||||
}
|
||||
|
||||
+2
-2
@@ -3,7 +3,7 @@
|
||||
import java.util.*;
|
||||
|
||||
public class Main {
|
||||
private static Optional<String> max(Map<String, List<String>> dependencies, String fruits, Map<String, String> weights) {
|
||||
return dependencies.get(fruits).stream().m<caret>ax((o1, o2) -> weights.get(o1).compareTo(weights.get(o2)));
|
||||
private static Optional<String> max(Map<String, List<String>> dependencies, String fruits, Map<String, Integer> weights) {
|
||||
return dependencies.get(fruits).stream().m<caret>ax((o1, o2) -> weights.get(o1)-weights.get(o2));
|
||||
}
|
||||
}
|
||||
|
||||
+2
-8
@@ -18,7 +18,6 @@ package com.siyeh.ig.psiutils;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import org.jetbrains.annotations.Contract;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -67,7 +66,7 @@ public class ParenthesesUtils {
|
||||
tokenMap.put(JavaTokenType.GTGTEQ, JavaTokenType.GTGT);
|
||||
tokenMap.put(JavaTokenType.GTGTGTEQ, JavaTokenType.GTGTGT);
|
||||
}
|
||||
|
||||
|
||||
static {
|
||||
s_binaryOperatorPrecedence.put(JavaTokenType.PLUS, ADDITIVE_PRECEDENCE);
|
||||
s_binaryOperatorPrecedence.put(JavaTokenType.MINUS, ADDITIVE_PRECEDENCE);
|
||||
@@ -555,16 +554,11 @@ public class ParenthesesUtils {
|
||||
return parentPrecedence < childPrecedence;
|
||||
}
|
||||
|
||||
@Contract("_, null -> false")
|
||||
public static boolean areParenthesesNeeded(PsiJavaToken sign, PsiExpression rhs) {
|
||||
return areParenthesesNeeded(sign.getTokenType(), rhs);
|
||||
}
|
||||
|
||||
@Contract("_, null -> false")
|
||||
public static boolean areParenthesesNeeded(IElementType signTokenType, PsiExpression rhs) {
|
||||
if (rhs instanceof PsiPolyadicExpression) {
|
||||
final PsiPolyadicExpression binaryExpression = (PsiPolyadicExpression)rhs;
|
||||
final int precedence1 = getPrecedenceForOperator(binaryExpression.getOperationTokenType());
|
||||
final IElementType signTokenType = sign.getTokenType();
|
||||
final IElementType newOperatorToken = tokenMap.get(signTokenType);
|
||||
final int precedence2 = getPrecedenceForOperator(newOperatorToken);
|
||||
return precedence1 >= precedence2 || !isCommutativeOperator(newOperatorToken);
|
||||
|
||||
Reference in New Issue
Block a user