Use operation reference as lookup element to preserve old behaviour
See related changes in fb72726f08
This commit is contained in:
+4
-4
@@ -1116,7 +1116,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor {
|
|||||||
ExpressionTypingContext contextWithDataFlow = context.replaceDataFlowInfo(dataFlowInfo);
|
ExpressionTypingContext contextWithDataFlow = context.replaceDataFlowInfo(dataFlowInfo);
|
||||||
|
|
||||||
ExpressionReceiver receiver = createReceiverForEquals(left, contextWithDataFlow);
|
ExpressionReceiver receiver = createReceiverForEquals(left, contextWithDataFlow);
|
||||||
Collection<FunctionDescriptor> equalsFunctions = findEqualsWithNullableAnyParameter(receiver, left);
|
Collection<FunctionDescriptor> equalsFunctions = findEqualsWithNullableAnyParameter(receiver, expression);
|
||||||
|
|
||||||
Call call = CallMaker.makeCallWithExpressions(
|
Call call = CallMaker.makeCallWithExpressions(
|
||||||
expression,
|
expression,
|
||||||
@@ -1158,13 +1158,13 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor {
|
|||||||
|
|
||||||
private List<FunctionDescriptor> findEqualsWithNullableAnyParameter(
|
private List<FunctionDescriptor> findEqualsWithNullableAnyParameter(
|
||||||
@NotNull ExpressionReceiver receiver,
|
@NotNull ExpressionReceiver receiver,
|
||||||
@NotNull KtExpression left
|
@NotNull KtBinaryExpression expression
|
||||||
) {
|
) {
|
||||||
KotlinType refinedType = KotlinBuiltIns.isNothingOrNullableNothing(receiver.getType()) ?
|
KotlinType refinedType = KotlinBuiltIns.isNothingOrNullableNothing(receiver.getType()) ?
|
||||||
components.builtIns.getNullableAnyType() :
|
components.builtIns.getNullableAnyType() :
|
||||||
receiver.getType();
|
receiver.getType();
|
||||||
Collection<SimpleFunctionDescriptor> equalsMembers =
|
Collection<SimpleFunctionDescriptor> equalsMembers = refinedType.getMemberScope().getContributedFunctions(
|
||||||
refinedType.getMemberScope().getContributedFunctions(OperatorNameConventions.EQUALS, new KotlinLookupLocation(left));
|
OperatorNameConventions.EQUALS, new KotlinLookupLocation(expression.getOperationReference()));
|
||||||
|
|
||||||
return CollectionsKt.filter(equalsMembers, descriptor -> {
|
return CollectionsKt.filter(equalsMembers, descriptor -> {
|
||||||
if (ErrorUtils.isError(descriptor)) return true;
|
if (ErrorUtils.isError(descriptor)) return true;
|
||||||
|
|||||||
Reference in New Issue
Block a user