Minor refactoring of getQualifiedExpressionTypeInfo

This commit is contained in:
Mikhail Glukhikh
2016-01-11 14:13:34 +03:00
parent bb68aacee4
commit 5ceb973ee9
@@ -399,7 +399,6 @@ public class CallExpressionResolver {
boolean unconditional = true; boolean unconditional = true;
DataFlowInfo unconditionalDataFlowInfo = receiverDataFlowInfo; DataFlowInfo unconditionalDataFlowInfo = receiverDataFlowInfo;
ExpressionTypingContext contextForSelector = currentContext;
for (CallExpressionElement element : elementChain) { for (CallExpressionElement element : elementChain) {
if (receiverType == null) { if (receiverType == null) {
@@ -413,14 +412,14 @@ public class CallExpressionResolver {
boolean lastStage = element.getQualified() == expression; boolean lastStage = element.getQualified() == expression;
// Drop NO_EXPECTED_TYPE / INDEPENDENT at last stage // Drop NO_EXPECTED_TYPE / INDEPENDENT at last stage
ExpressionTypingContext baseContext = lastStage ? context : currentContext; ExpressionTypingContext contextForSelector = lastStage ? context : currentContext;
if (TypeUtils.isNullableType(receiverType) && !element.getSafe()) { if (TypeUtils.isNullableType(receiverType) && !element.getSafe()) {
// Call with nullable receiver: take unconditional data flow info // Call with nullable receiver: take unconditional data flow info
contextForSelector = baseContext.replaceDataFlowInfo(unconditionalDataFlowInfo); contextForSelector = contextForSelector.replaceDataFlowInfo(unconditionalDataFlowInfo);
} }
else { else {
// Take data flow info from the current receiver // Take data flow info from the current receiver
contextForSelector = baseContext.replaceDataFlowInfo(receiverDataFlowInfo); contextForSelector = contextForSelector.replaceDataFlowInfo(receiverDataFlowInfo);
} }
if (receiver instanceof ReceiverValue) { if (receiver instanceof ReceiverValue) {