Replaced ReceiverValue.NO_RECEIVER to null.
This commit is contained in:
@@ -102,7 +102,6 @@ fun TranslationContext.getCallInfo(resolvedCall: ResolvedCall<out FunctionDescri
|
||||
}
|
||||
|
||||
private fun TranslationContext.getDispatchReceiver(receiverValue: ReceiverValue): JsExpression {
|
||||
assert(receiverValue.exists()) { "receiverValue must be exist here" }
|
||||
return getDispatchReceiver(getReceiverParameterForReceiver(receiverValue))
|
||||
}
|
||||
|
||||
@@ -110,10 +109,7 @@ private fun TranslationContext.createCallInfo(resolvedCall: ResolvedCall<out Cal
|
||||
val receiverKind = resolvedCall.getExplicitReceiverKind()
|
||||
|
||||
fun getDispatchReceiver(): JsExpression? {
|
||||
val receiverValue = resolvedCall.getDispatchReceiver()
|
||||
if (!receiverValue.exists()) {
|
||||
return null
|
||||
}
|
||||
val receiverValue = resolvedCall.getDispatchReceiver() ?: return null
|
||||
return when (receiverKind) {
|
||||
DISPATCH_RECEIVER, BOTH_RECEIVERS -> explicitReceivers.extensionOrDispatchReceiver
|
||||
else -> this.getDispatchReceiver(receiverValue)
|
||||
@@ -121,10 +117,7 @@ private fun TranslationContext.createCallInfo(resolvedCall: ResolvedCall<out Cal
|
||||
}
|
||||
|
||||
fun getExtensionReceiver(): JsExpression? {
|
||||
val receiverValue = resolvedCall.getExtensionReceiver()
|
||||
if (!receiverValue.exists()) {
|
||||
return null
|
||||
}
|
||||
val receiverValue = resolvedCall.getExtensionReceiver() ?: return null
|
||||
return when (receiverKind) {
|
||||
EXTENSION_RECEIVER -> explicitReceivers.extensionOrDispatchReceiver
|
||||
BOTH_RECEIVERS -> explicitReceivers.extensionReceiver
|
||||
|
||||
+3
-3
@@ -124,13 +124,13 @@ fun computeExplicitReceiversForInvoke(
|
||||
val callElement = resolvedCall.getCall().getCallElement()
|
||||
assert(explicitReceivers.extensionReceiver == null) { "'Invoke' call must have one receiver: $callElement" }
|
||||
|
||||
fun translateReceiverAsExpression(receiver: ReceiverValue): JsExpression? =
|
||||
fun translateReceiverAsExpression(receiver: ReceiverValue?): JsExpression? =
|
||||
(receiver as? ExpressionReceiver)?.let { Translation.translateAsExpression(it.expression, context) }
|
||||
|
||||
val dispatchReceiver = resolvedCall.getDispatchReceiver()
|
||||
val extensionReceiver = resolvedCall.getExtensionReceiver()
|
||||
|
||||
if (dispatchReceiver.exists() && extensionReceiver.exists() && resolvedCall.getExplicitReceiverKind() == ExplicitReceiverKind.BOTH_RECEIVERS) {
|
||||
if (dispatchReceiver != null && extensionReceiver != null && resolvedCall.getExplicitReceiverKind() == ExplicitReceiverKind.BOTH_RECEIVERS) {
|
||||
assert(explicitReceivers.extensionOrDispatchReceiver != null) {
|
||||
"No explicit receiver for 'invoke' resolved call with both receivers: $callElement, text: ${callElement.getText()}" +
|
||||
"Dispatch receiver: $dispatchReceiver Extension receiver: $extensionReceiver"
|
||||
@@ -145,7 +145,7 @@ fun computeExplicitReceiversForInvoke(
|
||||
}
|
||||
|
||||
val dispatchReceiverExpression = translateReceiverAsExpression(dispatchReceiver)
|
||||
return when (Pair(dispatchReceiver.exists(), extensionReceiver.exists())) {
|
||||
return when (Pair(dispatchReceiver != null, extensionReceiver != null)) {
|
||||
Pair(true, true) -> ExplicitReceivers(dispatchReceiverExpression, explicitReceivers.extensionOrDispatchReceiver)
|
||||
Pair(true, false) -> ExplicitReceivers(dispatchReceiverExpression)
|
||||
Pair(false, true) -> ExplicitReceivers(translateReceiverAsExpression(extensionReceiver as ReceiverValue))
|
||||
|
||||
+1
-1
@@ -62,7 +62,7 @@ object EqualsBOIF : BinaryOperationIntrinsicFactory {
|
||||
val appliedToDynamic =
|
||||
resolvedCall != null &&
|
||||
with(resolvedCall.getDispatchReceiver()) {
|
||||
if (exists()) getType().isDynamic() else false
|
||||
if (this != null) getType().isDynamic() else false
|
||||
}
|
||||
|
||||
if (appliedToDynamic) {
|
||||
|
||||
Reference in New Issue
Block a user