render not inferred return/parameter type of function literals as ???
instead of DONT_CARE / CANT_INFER
This commit is contained in:
+3
-2
@@ -39,6 +39,7 @@ import java.util.List;
|
|||||||
import static org.jetbrains.jet.lang.diagnostics.Errors.*;
|
import static org.jetbrains.jet.lang.diagnostics.Errors.*;
|
||||||
import static org.jetbrains.jet.lang.resolve.BindingContext.*;
|
import static org.jetbrains.jet.lang.resolve.BindingContext.*;
|
||||||
import static org.jetbrains.jet.lang.types.TypeUtils.NO_EXPECTED_TYPE;
|
import static org.jetbrains.jet.lang.types.TypeUtils.NO_EXPECTED_TYPE;
|
||||||
|
import static org.jetbrains.jet.lang.types.expressions.ExpressionTypingUtils.CANNOT_BE_INFERRED;
|
||||||
|
|
||||||
public class ClosureExpressionsTypingVisitor extends ExpressionTypingVisitor {
|
public class ClosureExpressionsTypingVisitor extends ExpressionTypingVisitor {
|
||||||
protected ClosureExpressionsTypingVisitor(@NotNull ExpressionTypingInternals facade) {
|
protected ClosureExpressionsTypingVisitor(@NotNull ExpressionTypingInternals facade) {
|
||||||
@@ -224,7 +225,7 @@ public class ClosureExpressionsTypingVisitor extends ExpressionTypingVisitor {
|
|||||||
type = expectedType;
|
type = expectedType;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
type = ErrorUtils.createErrorType("Cannot be inferred");
|
type = CANNOT_BE_INFERRED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return context.expressionTypingServices.getDescriptorResolver().resolveValueParameterDescriptor(
|
return context.expressionTypingServices.getDescriptorResolver().resolveValueParameterDescriptor(
|
||||||
@@ -255,7 +256,7 @@ public class ClosureExpressionsTypingVisitor extends ExpressionTypingVisitor {
|
|||||||
return KotlinBuiltIns.getInstance().getUnitType();
|
return KotlinBuiltIns.getInstance().getUnitType();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return returnType == null ? ErrorUtils.createErrorType("<return type>") : returnType;
|
return returnType == null ? CANNOT_BE_INFERRED : returnType;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
|||||||
+2
@@ -62,6 +62,8 @@ public class ExpressionTypingUtils {
|
|||||||
private ExpressionTypingUtils() {
|
private ExpressionTypingUtils() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static final JetType CANNOT_BE_INFERRED = ErrorUtils.createErrorType("Cannot be inferred");
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
protected static ExpressionReceiver getExpressionReceiver(@NotNull JetExpression expression, @Nullable JetType type) {
|
protected static ExpressionReceiver getExpressionReceiver(@NotNull JetExpression expression, @Nullable JetType type) {
|
||||||
if (type == null) return null;
|
if (type == null) return null;
|
||||||
|
|||||||
@@ -25,11 +25,11 @@ import org.jetbrains.jet.lang.descriptors.*;
|
|||||||
import org.jetbrains.jet.lang.descriptors.annotations.Annotated;
|
import org.jetbrains.jet.lang.descriptors.annotations.Annotated;
|
||||||
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
|
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
|
||||||
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.CallResolverUtil;
|
|
||||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||||
import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe;
|
import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe;
|
||||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||||
import org.jetbrains.jet.lang.types.*;
|
import org.jetbrains.jet.lang.types.*;
|
||||||
|
import org.jetbrains.jet.lang.types.expressions.ExpressionTypingUtils;
|
||||||
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
||||||
import org.jetbrains.jet.lexer.JetKeywordToken;
|
import org.jetbrains.jet.lexer.JetKeywordToken;
|
||||||
import org.jetbrains.jet.lexer.JetTokens;
|
import org.jetbrains.jet.lexer.JetTokens;
|
||||||
@@ -194,12 +194,9 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private String renderTypeWithoutEscape(@NotNull JetType type) {
|
private String renderTypeWithoutEscape(@NotNull JetType type) {
|
||||||
if (type == CallResolverUtil.DONT_CARE || type == CallResolverUtil.CANT_INFER) {
|
if (type == ExpressionTypingUtils.CANNOT_BE_INFERRED) {
|
||||||
return "???";
|
return "???";
|
||||||
}
|
}
|
||||||
else if (type == CallResolverUtil.PLACEHOLDER_FUNCTION_TYPE) {
|
|
||||||
return "??? " + arrow() + " ???";
|
|
||||||
}
|
|
||||||
else if (ErrorUtils.isErrorType(type)) {
|
else if (ErrorUtils.isErrorType(type)) {
|
||||||
return type.toString();
|
return type.toString();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ cannot be applied to</td>
|
|||||||
<td align="right" style="white-space:nowrap;">
|
<td align="right" style="white-space:nowrap;">
|
||||||
<font color=red>
|
<font color=red>
|
||||||
<b>
|
<b>
|
||||||
??? → ???</b>
|
() → ???</b>
|
||||||
</font>
|
</font>
|
||||||
</td>
|
</td>
|
||||||
<td style="white-space:nowrap;">
|
<td style="white-space:nowrap;">
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ cannot be applied to</td>
|
|||||||
<td align="right" style="white-space:nowrap;">
|
<td align="right" style="white-space:nowrap;">
|
||||||
<font color=red>
|
<font color=red>
|
||||||
<b>
|
<b>
|
||||||
(jet.Int) → ???</b>
|
(jet.Int) → jet.Int</b>
|
||||||
</font>
|
</font>
|
||||||
</td>
|
</td>
|
||||||
<td style="white-space:nowrap;">
|
<td style="white-space:nowrap;">
|
||||||
|
|||||||
Reference in New Issue
Block a user