From baf3ab2aa530f9dfe7958b6165924c84b0479c71 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Mon, 18 Jun 2012 22:23:35 +0400 Subject: [PATCH] pass DataFlowInfo in checkBinaryWithTypeRHSExpression --- .../types/expressions/BasicExpressionTypingVisitor.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java index 8609e3c5047..4eea9a8c2c5 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java @@ -193,6 +193,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { public JetTypeInfo visitBinaryWithTypeRHSExpression(JetBinaryExpressionWithTypeRHS expression, ExpressionTypingContext context) { JetTypeReference right = expression.getRight(); JetType result = null; + DataFlowInfo dataFlowInfo = context.dataFlowInfo; if (right != null) { JetType targetType = context.expressionTypingServices.getTypeResolver().resolveType(context.scope, right, context.trace, true); @@ -203,6 +204,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { JetTypeInfo typeInfo = facade.getTypeInfo(expression.getLeft(), contextWithTemporaryTrace); if (typeInfo.getType() != null && checkBinaryWithTypeRHS(expression, contextWithTemporaryTrace, targetType, typeInfo.getType())) { temporaryTraceWithExpectedType.commit(); + dataFlowInfo = typeInfo.getDataFlowInfo(); tryWithNoExpectedType = false; } } @@ -212,6 +214,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { JetTypeInfo typeInfo = facade.getTypeInfo(expression.getLeft(), contextWithNoExpectedType); if (typeInfo.getType() != null) { checkBinaryWithTypeRHS(expression, contextWithNoExpectedType, targetType, typeInfo.getType()); + dataFlowInfo = typeInfo.getDataFlowInfo(); } } @@ -219,9 +222,9 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { result = operationType == JetTokens.AS_SAFE ? TypeUtils.makeNullable(targetType) : targetType; } else { - facade.getTypeInfo(expression.getLeft(), context.replaceExpectedType(NO_EXPECTED_TYPE)); + dataFlowInfo = facade.getTypeInfo(expression.getLeft(), context.replaceExpectedType(NO_EXPECTED_TYPE)).getDataFlowInfo(); } - return DataFlowUtils.checkType(result, expression, context, context.dataFlowInfo); + return DataFlowUtils.checkType(result, expression, context, dataFlowInfo); } private boolean checkBinaryWithTypeRHS(JetBinaryExpressionWithTypeRHS expression, ExpressionTypingContext context, @NotNull JetType targetType, JetType actualType) {