From c339df65a9a88dec28be8f920b66e76dfa990a08 Mon Sep 17 00:00:00 2001 From: Svetlana Isakova Date: Wed, 8 Oct 2014 14:23:36 +0400 Subject: [PATCH] Small refactoring in CandidateResolver --- .../lang/resolve/calls/CandidateResolver.java | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CandidateResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CandidateResolver.java index 36b730f217f..86788fec7af 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CandidateResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CandidateResolver.java @@ -106,8 +106,6 @@ public class CandidateResolver { if (!argumentMappingStatus.isSuccess()) { if (argumentMappingStatus == ValueArgumentsToParametersMapper.Status.STRONG_ERROR) { candidateCall.addStatus(RECEIVER_PRESENCE_ERROR); - checkAllValueArguments(context, SHAPE_FUNCTION_ARGUMENTS); - return; } else { candidateCall.addStatus(OTHER_ERROR); @@ -119,16 +117,7 @@ public class CandidateResolver { } List jetTypeArguments = context.call.getTypeArguments(); - if (jetTypeArguments.isEmpty()) { - if (!candidate.getTypeParameters().isEmpty()) { - ResolutionStatus status = inferTypeArguments(context); - candidateCall.addStatus(status); - } - else { - candidateCall.addStatus(checkAllValueArguments(context, SHAPE_FUNCTION_ARGUMENTS).status); - } - } - else { + if (!jetTypeArguments.isEmpty()) { // Explicit type arguments passed List typeArguments = new ArrayList(); @@ -157,7 +146,12 @@ public class CandidateResolver { } candidateCall.setResultingSubstitutor(substitutor); + } + if (jetTypeArguments.isEmpty() && !candidate.getTypeParameters().isEmpty()) { + candidateCall.addStatus(inferTypeArguments(context)); + } + else { candidateCall.addStatus(checkAllValueArguments(context, SHAPE_FUNCTION_ARGUMENTS).status); }