diff --git a/idea/src/org/jetbrains/jet/JetNodeTypes.java b/idea/src/org/jetbrains/jet/JetNodeTypes.java index 5e3993fd528..9656239e4a2 100644 --- a/idea/src/org/jetbrains/jet/JetNodeTypes.java +++ b/idea/src/org/jetbrains/jet/JetNodeTypes.java @@ -44,7 +44,7 @@ public interface JetNodeTypes { JetNodeType TYPE_ARGUMENT_LIST = new JetNodeType("TYPE_ARGUMENT_LIST", JetTypeArgumentList.class); JetNodeType VALUE_ARGUMENT_LIST = new JetNodeType("VALUE_ARGUMENT_LIST", JetValueArgumentList.class); JetNodeType VALUE_ARGUMENT = new JetNodeType("VALUE_ARGUMENT", JetValueArgument.class); - JetNodeType VALUE_ARGUMENT_NAME = new JetNodeType("VALUE_ARGUMENT_LIST", JetValueArgumentName.class); + JetNodeType VALUE_ARGUMENT_NAME = new JetNodeType("VALUE_ARGUMENT_NAME", JetValueArgumentName.class); JetNodeType TYPE_REFERENCE = new JetNodeType("TYPE_REFERENCE", JetTypeReference.class); JetNodeType LABELED_TUPLE_ENTRY = new JetNodeType("LABELED_TUPLE_ENTRY"); JetNodeType LABELED_TUPLE_TYPE_ENTRY = new JetNodeType("LABELED_TUPLE_TYPE_ENTRY"); diff --git a/idea/src/org/jetbrains/jet/lang/types/CallResolver.java b/idea/src/org/jetbrains/jet/lang/types/CallResolver.java index 8d5548feb54..221615905a2 100644 --- a/idea/src/org/jetbrains/jet/lang/types/CallResolver.java +++ b/idea/src/org/jetbrains/jet/lang/types/CallResolver.java @@ -352,8 +352,8 @@ public class CallResolver { error = true; } else { - ValueParameterDescriptor valueParameterDescriptor = parameterByName.get(valueArgument.getArgumentName().getName()); - if (usedParameters.add(valueParameterDescriptor)) { + ValueParameterDescriptor valueParameterDescriptor = parameterByName.get(valueArgument.getArgumentName().getReferenceExpression().getReferencedName()); + if (!usedParameters.add(valueParameterDescriptor)) { temporaryTrace.getErrorHandler().genericError(nameNode, "An argument is already passed for this parameter"); } if (valueParameterDescriptor == null) { @@ -467,7 +467,10 @@ public class CallResolver { Map argumentsToParameters = Maps.newHashMap(); boolean error = mapValueArgumentsToParameters(task, tracing, candidate, temporaryTrace, argumentsToParameters); - if (error) continue; + if (error) { + failedCandidates.add(candidate); + continue; + } if (task.getTypeArguments().isEmpty()) { if (candidate.getTypeParameters().isEmpty()) {