Resolve fake call for 'equals(Any?)' with actual right expression instead of fake one
This commit is contained in:
+8
-2
@@ -878,8 +878,14 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor {
|
||||
dataFlowInfo = leftTypeInfo.getDataFlowInfo();
|
||||
ExpressionTypingContext contextWithDataFlow = context.replaceDataFlowInfo(dataFlowInfo);
|
||||
|
||||
OverloadResolutionResults<FunctionDescriptor> resolutionResults = resolveFakeCall(
|
||||
contextWithDataFlow, receiver, OperatorConventions.EQUALS, KotlinBuiltIns.getInstance().getNullableAnyType());
|
||||
TemporaryBindingTrace traceInterpretingRightAsNullableAny = TemporaryBindingTrace.create(
|
||||
context.trace, "trace to resolve 'equals(Any?)' interpreting as of type Any? an expression:" + right);
|
||||
traceInterpretingRightAsNullableAny.record(EXPRESSION_TYPE, right, KotlinBuiltIns.getInstance().getNullableAnyType());
|
||||
traceInterpretingRightAsNullableAny.record(PROCESSED, right);
|
||||
|
||||
OverloadResolutionResults<FunctionDescriptor> resolutionResults =
|
||||
resolveFakeCall(receiver, context.replaceBindingTrace(traceInterpretingRightAsNullableAny),
|
||||
Collections.singletonList(right), OperatorConventions.EQUALS);
|
||||
|
||||
dataFlowInfo = facade.getTypeInfo(right, contextWithDataFlow).getDataFlowInfo();
|
||||
|
||||
|
||||
+11
-1
@@ -362,7 +362,17 @@ public class ExpressionTypingUtils {
|
||||
@NotNull ReceiverValue receiver,
|
||||
@NotNull Name name
|
||||
) {
|
||||
return makeAndResolveFakeCall(receiver, context, Collections.<JetExpression>emptyList(), name).getSecond();
|
||||
return resolveFakeCall(receiver, context, Collections.<JetExpression>emptyList(), name);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static OverloadResolutionResults<FunctionDescriptor> resolveFakeCall(
|
||||
@NotNull ReceiverValue receiver,
|
||||
@NotNull ExpressionTypingContext context,
|
||||
@NotNull List<JetExpression> valueArguments,
|
||||
@NotNull Name name
|
||||
) {
|
||||
return makeAndResolveFakeCall(receiver, context, valueArguments, name).getSecond();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
Reference in New Issue
Block a user