JS: fix callable reference with implicit extension receiver (KT-22638 fixed)

This commit is contained in:
Anton Bannykh
2018-02-01 17:41:11 +03:00
parent f4e2102787
commit 3ead464671
4 changed files with 50 additions and 13 deletions
@@ -57,8 +57,8 @@ object CallableReferenceTranslator {
val receiver = (dispatchReceiver ?: extensionReceiver)?.let {
when (it) {
is TransientReceiver -> null
is ImplicitClassReceiver -> context.getDispatchReceiver(JsDescriptorUtils.getReceiverParameterForReceiver(it))
is ExtensionReceiver -> JsThisRef()
is ImplicitClassReceiver, is ExtensionReceiver ->
context.getDispatchReceiver(JsDescriptorUtils.getReceiverParameterForReceiver(it))
is ExpressionReceiver -> Translation.translateAsExpression(it.expression, context)
else -> throw UnsupportedOperationException("Unsupported receiver value: " + it)
}