diff --git a/idea/idea-jvm/src/com/intellij/debugger/streams/kotlin/psi/KotlinPsiUtil.kt b/idea/idea-jvm/src/com/intellij/debugger/streams/kotlin/psi/KotlinPsiUtil.kt index 557185b1504..cf7b9f19e02 100644 --- a/idea/idea-jvm/src/com/intellij/debugger/streams/kotlin/psi/KotlinPsiUtil.kt +++ b/idea/idea-jvm/src/com/intellij/debugger/streams/kotlin/psi/KotlinPsiUtil.kt @@ -5,6 +5,7 @@ import org.jetbrains.kotlin.idea.caches.resolve.analyze import org.jetbrains.kotlin.psi.KtCallExpression import org.jetbrains.kotlin.psi.KtDotQualifiedExpression import org.jetbrains.kotlin.psi.KtExpression +import org.jetbrains.kotlin.renderer.DescriptorRenderer import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue import org.jetbrains.kotlin.types.KotlinType @@ -13,6 +14,11 @@ import org.jetbrains.kotlin.types.KotlinType * @author Vitaliy.Bibaev */ +object KotlinPsiUtil { + fun getTypeName(type: KotlinType): String = DescriptorRenderer.FQ_NAMES_IN_TYPES.renderType(type) + +} + fun KtExpression.resolveType(): KotlinType = this.analyze().getType(this)!! @@ -31,4 +37,4 @@ fun KtCallExpression.previousCall(): KtCallExpression? { return null } -fun KtCallExpression.receiverType(): KotlinType? = receiver()?.type \ No newline at end of file +fun KtCallExpression.receiverType(): KotlinType? = receiver()?.type diff --git a/idea/idea-jvm/src/com/intellij/debugger/streams/kotlin/psi/impl/KotlinChainTransformerImpl.kt b/idea/idea-jvm/src/com/intellij/debugger/streams/kotlin/psi/impl/KotlinChainTransformerImpl.kt index 4830668dcbf..153a08126bc 100644 --- a/idea/idea-jvm/src/com/intellij/debugger/streams/kotlin/psi/impl/KotlinChainTransformerImpl.kt +++ b/idea/idea-jvm/src/com/intellij/debugger/streams/kotlin/psi/impl/KotlinChainTransformerImpl.kt @@ -2,6 +2,7 @@ package com.intellij.debugger.streams.kotlin.psi.impl import com.intellij.debugger.streams.kotlin.psi.CallTypeExtractor +import com.intellij.debugger.streams.kotlin.psi.KotlinPsiUtil import com.intellij.debugger.streams.kotlin.psi.callName import com.intellij.debugger.streams.kotlin.psi.resolveType import com.intellij.debugger.streams.psi.ChainTransformer @@ -15,10 +16,8 @@ import org.jetbrains.kotlin.idea.caches.resolve.analyzeFully import org.jetbrains.kotlin.psi.KtCallExpression import org.jetbrains.kotlin.psi.KtDotQualifiedExpression import org.jetbrains.kotlin.psi.KtValueArgument -import org.jetbrains.kotlin.renderer.DescriptorRenderer import org.jetbrains.kotlin.resolve.calls.callUtil.getParameterForArgument import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall -import org.jetbrains.kotlin.types.KotlinType /** * @author Vitaliy.Bibaev @@ -54,14 +53,12 @@ class KotlinChainTransformerImpl(private val typeExtractor: CallTypeExtractor) : private fun createCallArgument(callExpression: KtCallExpression, arg: KtValueArgument): CallArgument { fun KtValueArgument.toCallArgument(): CallArgument { val argExpression = getArgumentExpression()!! - return CallArgumentImpl(renderType(argExpression.resolveType()), this.text) + return CallArgumentImpl(KotlinPsiUtil.getTypeName(argExpression.resolveType()), this.text) } val bindingContext = callExpression.analyzeFully() val resolvedCall = callExpression.getResolvedCall(bindingContext) ?: return arg.toCallArgument() val parameter = resolvedCall.getParameterForArgument(arg) ?: return arg.toCallArgument() - return CallArgumentImpl(renderType(parameter.type), arg.text) + return CallArgumentImpl(KotlinPsiUtil.getTypeName(parameter.type), arg.text) } - - private fun renderType(type: KotlinType): String = DescriptorRenderer.FQ_NAMES_IN_TYPES.renderType(type) }