Display function value properly

This commit is contained in:
vitaly.khudobakhshov
2018-12-03 14:56:14 +01:00
committed by Ilya Chernikov
parent c901d6cebc
commit 396ba6cdd5
3 changed files with 6 additions and 3 deletions
@@ -110,7 +110,7 @@ open class GenericReplEvaluator(
val resultFieldName = scriptResultFieldName(compileResult.lineId.no)
val resultField = scriptClass.getDeclaredField(resultFieldName).apply { isAccessible = true }
val resultValue: Any? = resultField.get(scriptInstance)
val resultValue: Any? = if (!compileResult.isFunctionType) resultField.get(scriptInstance) else "<function>"
return if (compileResult.hasResult) ReplEvalResult.ValueResult(resultFieldName, resultValue, compileResult.type)
else ReplEvalResult.UnitResult()
@@ -89,7 +89,8 @@ sealed class ReplCompileResult : Serializable {
val classes: List<CompiledClassData>,
val hasResult: Boolean,
val classpathAddendum: List<File>,
val type: String?) : ReplCompileResult() {
val type: String?,
val isFunctionType: Boolean) : ReplCompileResult() {
companion object { private val serialVersionUID: Long = 2L }
}
@@ -18,6 +18,7 @@ package org.jetbrains.kotlin.cli.jvm.repl
import com.intellij.openapi.Disposable
import com.intellij.openapi.util.Disposer
import org.jetbrains.kotlin.builtins.isFunctionType
import org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
import org.jetbrains.kotlin.cli.common.repl.*
@@ -124,7 +125,8 @@ open class GenericReplCompiler(
classpathAddendum ?: emptyList(),
generationState.replSpecific.resultType?.let {
DescriptorRenderer.FQ_NAMES_IN_TYPES.renderType(it)
}
},
type?.isFunctionType ?: false
)
}
}