diff --git a/idea/src/org/jetbrains/jet/plugin/highlighter/IdeErrorMessages.java b/idea/src/org/jetbrains/jet/plugin/highlighter/IdeErrorMessages.java
index 48b3c5538f9..9e04c861bd9 100644
--- a/idea/src/org/jetbrains/jet/plugin/highlighter/IdeErrorMessages.java
+++ b/idea/src/org/jetbrains/jet/plugin/highlighter/IdeErrorMessages.java
@@ -91,12 +91,12 @@ public class IdeErrorMessages {
MAP.put(OVERLOAD_RESOLUTION_AMBIGUITY, "Overload resolution ambiguity. All these functions match.
", HTML_AMBIGUOUS_CALLS);
MAP.put(NONE_APPLICABLE, "None of the following functions can be called with the arguments supplied. ",
- new NoneApplicableCallsRenderer());
+ HTML_NONE_APPLICABLE_CALLS);
MAP.put(CANNOT_COMPLETE_RESOLVE, "Cannot choose among the following candidates without completing type inference: ", HTML_AMBIGUOUS_CALLS);
MAP.put(DELEGATE_SPECIAL_FUNCTION_AMBIGUITY, "Overload resolution ambiguity on method ''{0}''. All these functions match. ", TO_STRING, HTML_AMBIGUOUS_CALLS);
MAP.put(DELEGATE_SPECIAL_FUNCTION_NONE_APPLICABLE, "Property delegate must have a ''{0}'' method. None of the following functions is suitable. ",
- TO_STRING, new NoneApplicableCallsRenderer());
+ TO_STRING, HTML_NONE_APPLICABLE_CALLS);
MAP.setImmutable();
}
diff --git a/idea/src/org/jetbrains/jet/plugin/highlighter/IdeRenderers.java b/idea/src/org/jetbrains/jet/plugin/highlighter/IdeRenderers.java
index 385f09f429d..6f45895de6a 100644
--- a/idea/src/org/jetbrains/jet/plugin/highlighter/IdeRenderers.java
+++ b/idea/src/org/jetbrains/jet/plugin/highlighter/IdeRenderers.java
@@ -84,95 +84,95 @@ public class IdeRenderers {
}
};
-
- public static class NoneApplicableCallsRenderer implements Renderer>> {
- @Nullable
- private static ValueParameterDescriptor findParameterByArgumentExpression(
- ResolvedCall extends CallableDescriptor> call,
- JetValueArgument argument) {
- for (Map.Entry entry : call.getValueArguments().entrySet()) {
- for (ValueArgument va : entry.getValue().getArguments()) {
- if (va == argument) {
- return entry.getKey();
- }
- }
- }
- return null;
- }
-
- private static Set getParametersToHighlight(ResolvedCall extends CallableDescriptor> call) {
- Set parameters = new HashSet();
- if (call instanceof ResolvedCallImpl) {
- Collection diagnostics = ((ResolvedCallImpl)call).getTrace().getBindingContext().getDiagnostics();
- for (Diagnostic diagnostic : diagnostics) {
- if (diagnostic.getFactory() == Errors.TOO_MANY_ARGUMENTS) {
- parameters.add(null);
- } else if (diagnostic.getFactory() == Errors.NO_VALUE_FOR_PARAMETER) {
- ValueParameterDescriptor parameter =
- ((DiagnosticWithParameters1)diagnostic).getA();
- parameters.add(parameter);
- } else {
- JetValueArgument argument = PsiTreeUtil.getParentOfType(diagnostic.getPsiElement(), JetValueArgument.class, false);
- if (argument != null) {
- ValueParameterDescriptor parameter = findParameterByArgumentExpression(call, argument);
- if (parameter != null) {
- parameters.add(parameter);
+ public static final Renderer>> HTML_NONE_APPLICABLE_CALLS =
+ new Renderer>>() {
+ @Nullable
+ private ValueParameterDescriptor findParameterByArgumentExpression(
+ ResolvedCall extends CallableDescriptor> call,
+ JetValueArgument argument) {
+ for (Map.Entry entry : call.getValueArguments().entrySet()) {
+ for (ValueArgument va : entry.getValue().getArguments()) {
+ if (va == argument) {
+ return entry.getKey();
}
}
}
+ return null;
}
- }
- return parameters;
- }
- @NotNull
- @Override
- public String render(@NotNull Collection extends ResolvedCall extends CallableDescriptor>> calls) {
- StringBuilder stringBuilder = new StringBuilder("");
- for (ResolvedCall extends CallableDescriptor> call : calls) {
- stringBuilder.append("");
- CallableDescriptor funDescriptor = call.getResultingDescriptor();
- Set parametersToHighlight = getParametersToHighlight(call);
+ private Set getParametersToHighlight(ResolvedCall extends CallableDescriptor> call) {
+ Set parameters = new HashSet();
+ if (call instanceof ResolvedCallImpl) {
+ Collection diagnostics = ((ResolvedCallImpl)call).getTrace().getBindingContext().getDiagnostics();
+ for (Diagnostic diagnostic : diagnostics) {
+ if (diagnostic.getFactory() == Errors.TOO_MANY_ARGUMENTS) {
+ parameters.add(null);
+ } else if (diagnostic.getFactory() == Errors.NO_VALUE_FOR_PARAMETER) {
+ ValueParameterDescriptor parameter =
+ ((DiagnosticWithParameters1)diagnostic).getA();
+ parameters.add(parameter);
+ } else {
+ JetValueArgument argument = PsiTreeUtil.getParentOfType(diagnostic.getPsiElement(), JetValueArgument.class, false);
+ if (argument != null) {
+ ValueParameterDescriptor parameter = findParameterByArgumentExpression(call, argument);
+ if (parameter != null) {
+ parameters.add(parameter);
+ }
+ }
+ }
+ }
+ }
+ return parameters;
+ }
- DescriptorRenderer htmlRenderer = DescriptorRenderer.HTML;
- ReceiverParameterDescriptor receiverParameter = funDescriptor.getReceiverParameter();
- if (receiverParameter != null) {
- stringBuilder.append(htmlRenderer.renderType(receiverParameter.getType())).append(".");
- }
- stringBuilder.append(funDescriptor.getName()).append("(");
- boolean first = true;
- for (ValueParameterDescriptor parameter : funDescriptor.getValueParameters()) {
- if (!first) {
- stringBuilder.append(", ");
- }
- JetType type = parameter.getType();
- JetType varargElementType = parameter.getVarargElementType();
- if (varargElementType != null) {
- type = varargElementType;
- }
- String paramString = (varargElementType != null ? "vararg " : "") + htmlRenderer.renderType(type);
- if (parameter.hasDefaultValue()) {
- paramString += " = ...";
- }
- if (parametersToHighlight.contains(parameter)) {
- paramString = String.format(RED_TEMPLATE, paramString);
- }
- stringBuilder.append(paramString);
+ @NotNull
+ @Override
+ public String render(@NotNull Collection extends ResolvedCall extends CallableDescriptor>> calls) {
+ StringBuilder stringBuilder = new StringBuilder("");
+ for (ResolvedCall extends CallableDescriptor> call : calls) {
+ stringBuilder.append("");
+ CallableDescriptor funDescriptor = call.getResultingDescriptor();
+ Set parametersToHighlight = getParametersToHighlight(call);
- first = false;
+ DescriptorRenderer htmlRenderer = DescriptorRenderer.HTML;
+ ReceiverParameterDescriptor receiverParameter = funDescriptor.getReceiverParameter();
+ if (receiverParameter != null) {
+ stringBuilder.append(htmlRenderer.renderType(receiverParameter.getType())).append(".");
+ }
+ stringBuilder.append(funDescriptor.getName()).append("(");
+ boolean first = true;
+ for (ValueParameterDescriptor parameter : funDescriptor.getValueParameters()) {
+ if (!first) {
+ stringBuilder.append(", ");
+ }
+ JetType type = parameter.getType();
+ JetType varargElementType = parameter.getVarargElementType();
+ if (varargElementType != null) {
+ type = varargElementType;
+ }
+ String paramString = (varargElementType != null ? "vararg " : "") + htmlRenderer.renderType(type);
+ if (parameter.hasDefaultValue()) {
+ paramString += " = ...";
+ }
+ if (parametersToHighlight.contains(parameter)) {
+ paramString = String.format(RED_TEMPLATE, paramString);
+ }
+ stringBuilder.append(paramString);
+
+ first = false;
+ }
+ stringBuilder.append(parametersToHighlight.contains(null) ? String.format(RED_TEMPLATE, ")") : ")");
+ stringBuilder.append(" defined in ");
+ DeclarationDescriptor containingDeclaration = funDescriptor.getContainingDeclaration();
+ if (containingDeclaration != null) {
+ FqNameUnsafe fqName = DescriptorUtils.getFQName(containingDeclaration);
+ stringBuilder.append(FqName.ROOT.equalsTo(fqName) ? "root package" : fqName.getFqName());
+ }
+ stringBuilder.append("");
+ }
+ return stringBuilder.toString();
}
- stringBuilder.append(parametersToHighlight.contains(null) ? String.format(RED_TEMPLATE, ")") : ")");
- stringBuilder.append(" defined in ");
- DeclarationDescriptor containingDeclaration = funDescriptor.getContainingDeclaration();
- if (containingDeclaration != null) {
- FqNameUnsafe fqName = DescriptorUtils.getFQName(containingDeclaration);
- stringBuilder.append(FqName.ROOT.equalsTo(fqName) ? "root package" : fqName.getFqName());
- }
- stringBuilder.append("");
- }
- return stringBuilder.toString();
- }
- }
+ };
public static final Renderer HTML_TYPE_INFERENCE_CONFLICTING_SUBSTITUTIONS_RENDERER =
new Renderer() {