Support rendering receiver parameters

Otherwise generated coroutine implementation class could not be rendered since one of its members corresponds to receiver parameter descriptor.
This commit is contained in:
Ilya Gorbunov
2017-04-27 02:34:23 +03:00
parent 5f09e18394
commit 99504eb753
4 changed files with 39 additions and 3 deletions
@@ -36,7 +36,6 @@ import org.jetbrains.kotlin.serialization.deserialization.NotFoundClasses
import org.jetbrains.kotlin.types.*
import org.jetbrains.kotlin.types.ErrorUtils.UninferredParameterTypeConstructor
import org.jetbrains.kotlin.types.TypeUtils.CANT_INFER_FUNCTION_PARAM_TYPE
import java.lang.UnsupportedOperationException
import java.util.*
internal class DescriptorRendererImpl(
@@ -1048,8 +1047,8 @@ internal class DescriptorRendererImpl(
renderFunction(descriptor, builder)
}
override fun visitReceiverParameterDescriptor(descriptor: ReceiverParameterDescriptor, data: StringBuilder) {
throw UnsupportedOperationException("Don't render receiver parameters")
override fun visitReceiverParameterDescriptor(descriptor: ReceiverParameterDescriptor, builder: StringBuilder) {
builder.append(descriptor.name) // renders <this>
}
override fun visitConstructorDescriptor(constructorDescriptor: ConstructorDescriptor, builder: StringBuilder) {