From ed02c6c39eea77591e9c14777782689fa49bfa57 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Wed, 14 Nov 2012 17:25:58 +0400 Subject: [PATCH] Remove DataFlowInfo.CompositionOperator It was used only in one place, which wouldn't suffer without it --- .../resolve/calls/autocasts/DataFlowInfo.java | 23 ------------------- .../lang/types/expressions/DataFlowUtils.java | 10 ++++---- 2 files changed, 4 insertions(+), 29 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/DataFlowInfo.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/DataFlowInfo.java index 85ec913aa2f..d05e25904ae 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/DataFlowInfo.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/DataFlowInfo.java @@ -26,30 +26,7 @@ import java.util.*; import static org.jetbrains.jet.lang.resolve.calls.autocasts.Nullability.NOT_NULL; -/** - * @author abreslav - */ - public class DataFlowInfo { - - public static abstract class CompositionOperator { - public abstract DataFlowInfo compose(DataFlowInfo a, DataFlowInfo b); - } - - public static final CompositionOperator AND = new CompositionOperator() { - @Override - public DataFlowInfo compose(DataFlowInfo a, DataFlowInfo b) { - return a.and(b); - } - }; - - public static final CompositionOperator OR = new CompositionOperator() { - @Override - public DataFlowInfo compose(DataFlowInfo a, DataFlowInfo b) { - return a.or(b); - } - }; - public static DataFlowInfo EMPTY = new DataFlowInfo( ImmutableMap.of(), Multimaps.newListMultimap(Collections.>emptyMap(), CommonSuppliers.getArrayListSupplier())); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/DataFlowUtils.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/DataFlowUtils.java index f001bc864b3..ac775caaa68 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/DataFlowUtils.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/DataFlowUtils.java @@ -59,19 +59,17 @@ public class DataFlowUtils { public void visitBinaryExpression(JetBinaryExpression expression) { IElementType operationToken = expression.getOperationToken(); if (OperatorConventions.BOOLEAN_OPERATIONS.containsKey(operationToken)) { - DataFlowInfo dataFlowInfo = extractDataFlowInfoFromCondition(expression.getLeft(), conditionValue, context); JetExpression expressionRight = expression.getRight(); if (expressionRight != null) { DataFlowInfo rightInfo = extractDataFlowInfoFromCondition(expressionRight, conditionValue, context); - DataFlowInfo.CompositionOperator operator; - if (operationToken == JetTokens.ANDAND) { - operator = conditionValue ? DataFlowInfo.AND : DataFlowInfo.OR; + boolean and = operationToken == JetTokens.ANDAND; + if (and == conditionValue) { // this means: and && conditionValue || !and && !conditionValue + dataFlowInfo = dataFlowInfo.and(rightInfo); } else { - operator = conditionValue ? DataFlowInfo.OR : DataFlowInfo.AND; + dataFlowInfo = dataFlowInfo.or(rightInfo); } - dataFlowInfo = operator.compose(dataFlowInfo, rightInfo); } result.set(dataFlowInfo); }