Use operation reference as lookup element to preserve old behaviour

See related changes in fb72726f08
This commit is contained in:
Mikhail Zarechenskiy
2017-08-08 16:16:28 +03:00
parent cf3615d279
commit 46d0ea3eed
@@ -1116,7 +1116,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor {
ExpressionTypingContext contextWithDataFlow = context.replaceDataFlowInfo(dataFlowInfo);
ExpressionReceiver receiver = createReceiverForEquals(left, contextWithDataFlow);
Collection<FunctionDescriptor> equalsFunctions = findEqualsWithNullableAnyParameter(receiver, left);
Collection<FunctionDescriptor> equalsFunctions = findEqualsWithNullableAnyParameter(receiver, expression);
Call call = CallMaker.makeCallWithExpressions(
expression,
@@ -1158,13 +1158,13 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor {
private List<FunctionDescriptor> findEqualsWithNullableAnyParameter(
@NotNull ExpressionReceiver receiver,
@NotNull KtExpression left
@NotNull KtBinaryExpression expression
) {
KotlinType refinedType = KotlinBuiltIns.isNothingOrNullableNothing(receiver.getType()) ?
components.builtIns.getNullableAnyType() :
receiver.getType();
Collection<SimpleFunctionDescriptor> equalsMembers =
refinedType.getMemberScope().getContributedFunctions(OperatorNameConventions.EQUALS, new KotlinLookupLocation(left));
Collection<SimpleFunctionDescriptor> equalsMembers = refinedType.getMemberScope().getContributedFunctions(
OperatorNameConventions.EQUALS, new KotlinLookupLocation(expression.getOperationReference()));
return CollectionsKt.filter(equalsMembers, descriptor -> {
if (ErrorUtils.isError(descriptor)) return true;