don't use data flow info while checking for receiver

receiver with smart cast is checked separately
This commit is contained in:
Svetlana Isakova
2013-12-03 14:26:18 +04:00
parent 46b77f4472
commit ab1d27dd6b
3 changed files with 16 additions and 2 deletions
@@ -891,8 +891,7 @@ public class CandidateResolver {
BindingContext bindingContext = trace.getBindingContext();
boolean safeAccess = isExplicitReceiver && !implicitInvokeCheck && candidateCall.isSafeCall();
AutoCastServiceImpl autoCastService = new AutoCastServiceImpl(context.dataFlowInfo, bindingContext);
if (!safeAccess && !receiverParameter.getType().isNullable() && !autoCastService.isNotNull(receiverArgument)) {
if (!safeAccess && !receiverParameter.getType().isNullable() && receiverArgument.getType().isNullable()) {
context.tracing.unsafeCall(trace, receiverArgumentType, implicitInvokeCheck);
return UNSAFE_CALL_ERROR;