Showing receiver types in the IDE errors for NONE_APPLICABLE/AMBIGUITY
#KT-1997 fixed
This commit is contained in:
@@ -36,6 +36,7 @@ import org.jetbrains.jet.lang.resolve.FqNameUnsafe;
|
|||||||
import org.jetbrains.jet.lang.resolve.calls.ResolvedCall;
|
import org.jetbrains.jet.lang.resolve.calls.ResolvedCall;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.ResolvedCallImpl;
|
import org.jetbrains.jet.lang.resolve.calls.ResolvedCallImpl;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.ResolvedValueArgument;
|
import org.jetbrains.jet.lang.resolve.calls.ResolvedValueArgument;
|
||||||
|
import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor;
|
||||||
import org.jetbrains.jet.lang.types.JetType;
|
import org.jetbrains.jet.lang.types.JetType;
|
||||||
import org.jetbrains.jet.resolve.DescriptorRenderer;
|
import org.jetbrains.jet.resolve.DescriptorRenderer;
|
||||||
|
|
||||||
@@ -190,9 +191,12 @@ public class IdeErrorMessages {
|
|||||||
CallableDescriptor funDescriptor = call.getResultingDescriptor();
|
CallableDescriptor funDescriptor = call.getResultingDescriptor();
|
||||||
Set<ValueParameterDescriptor> parametersToHighlight = getParametersToHighlight(call);
|
Set<ValueParameterDescriptor> parametersToHighlight = getParametersToHighlight(call);
|
||||||
|
|
||||||
|
DescriptorRenderer htmlRenderer = DescriptorRenderer.HTML;
|
||||||
|
if (funDescriptor.getReceiverParameter() != ReceiverDescriptor.NO_RECEIVER) {
|
||||||
|
stringBuilder.append(htmlRenderer.renderType(funDescriptor.getReceiverParameter().getType())).append(".");
|
||||||
|
}
|
||||||
stringBuilder.append(funDescriptor.getName()).append("(");
|
stringBuilder.append(funDescriptor.getName()).append("(");
|
||||||
boolean first = true;
|
boolean first = true;
|
||||||
DescriptorRenderer htmlRend = DescriptorRenderer.HTML;
|
|
||||||
for (ValueParameterDescriptor parameter : funDescriptor.getValueParameters()) {
|
for (ValueParameterDescriptor parameter : funDescriptor.getValueParameters()) {
|
||||||
if (!first) {
|
if (!first) {
|
||||||
stringBuilder.append(", ");
|
stringBuilder.append(", ");
|
||||||
@@ -202,7 +206,7 @@ public class IdeErrorMessages {
|
|||||||
if (varargElementType != null) {
|
if (varargElementType != null) {
|
||||||
type = varargElementType;
|
type = varargElementType;
|
||||||
}
|
}
|
||||||
String paramString = (varargElementType != null ? "<b>vararg</b> " : "") + htmlRend.renderType(type);
|
String paramString = (varargElementType != null ? "<b>vararg</b> " : "") + htmlRenderer.renderType(type);
|
||||||
if (parameter.hasDefaultValue()) {
|
if (parameter.hasDefaultValue()) {
|
||||||
paramString += " = ...";
|
paramString += " = ...";
|
||||||
}
|
}
|
||||||
@@ -214,7 +218,7 @@ public class IdeErrorMessages {
|
|||||||
first = false;
|
first = false;
|
||||||
}
|
}
|
||||||
stringBuilder.append(parametersToHighlight.contains(null) ? String.format(RED_TEMPLATE, ")") : ")");
|
stringBuilder.append(parametersToHighlight.contains(null) ? String.format(RED_TEMPLATE, ")") : ")");
|
||||||
stringBuilder.append(" ").append(htmlRend.renderMessage("defined in")).append(" ");
|
stringBuilder.append(" ").append(htmlRenderer.renderMessage("defined in")).append(" ");
|
||||||
DeclarationDescriptor containingDeclaration = funDescriptor.getContainingDeclaration();
|
DeclarationDescriptor containingDeclaration = funDescriptor.getContainingDeclaration();
|
||||||
if (containingDeclaration != null) {
|
if (containingDeclaration != null) {
|
||||||
FqNameUnsafe fqName = DescriptorUtils.getFQName(containingDeclaration);
|
FqNameUnsafe fqName = DescriptorUtils.getFQName(containingDeclaration);
|
||||||
|
|||||||
Reference in New Issue
Block a user