Introduce Receiver as a common superclass of QualifierReceiver and ReceiverValue.
QualifierRecevier is no longer a subclass of ReceiverValue.
This commit is contained in:
@@ -128,7 +128,7 @@ private fun TranslationContext.createCallInfo(resolvedCall: ResolvedCall<out Cal
|
||||
return when (receiverKind) {
|
||||
EXTENSION_RECEIVER -> explicitReceivers.extensionOrDispatchReceiver
|
||||
BOTH_RECEIVERS -> explicitReceivers.extensionReceiver
|
||||
else -> this.getDispatchReceiver(receiverValue)
|
||||
else -> this.getDispatchReceiver(receiverValue as ReceiverValue)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -148,7 +148,7 @@ fun computeExplicitReceiversForInvoke(
|
||||
return when (Pair(dispatchReceiver.exists(), extensionReceiver.exists())) {
|
||||
Pair(true, true) -> ExplicitReceivers(dispatchReceiverExpression, explicitReceivers.extensionOrDispatchReceiver)
|
||||
Pair(true, false) -> ExplicitReceivers(dispatchReceiverExpression)
|
||||
Pair(false, true) -> ExplicitReceivers(translateReceiverAsExpression(extensionReceiver))
|
||||
Pair(false, true) -> ExplicitReceivers(translateReceiverAsExpression(extensionReceiver as ReceiverValue))
|
||||
else -> throw AssertionError("'Invoke' resolved call without receivers: $callElement")
|
||||
}
|
||||
}
|
||||
|
||||
+2
-1
@@ -37,6 +37,7 @@ import org.jetbrains.kotlin.psi.KtQualifiedExpression;
|
||||
import org.jetbrains.kotlin.psi.KtReferenceExpression;
|
||||
import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall;
|
||||
import org.jetbrains.kotlin.resolve.scopes.receivers.ExpressionReceiver;
|
||||
import org.jetbrains.kotlin.resolve.scopes.receivers.Receiver;
|
||||
import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue;
|
||||
import org.jetbrains.kotlin.types.KotlinType;
|
||||
|
||||
@@ -115,7 +116,7 @@ public final class TopLevelFIF extends CompositeFIF {
|
||||
@Nullable
|
||||
@Override
|
||||
protected ExpressionReceiver getExpressionReceiver(@NotNull ResolvedCall<?> resolvedCall) {
|
||||
ReceiverValue result = resolvedCall.getExtensionReceiver();
|
||||
Receiver result = resolvedCall.getExtensionReceiver();
|
||||
return result instanceof ExpressionReceiver ? (ExpressionReceiver) result : null;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user