Display function value properly
This commit is contained in:
committed by
Ilya Chernikov
parent
c901d6cebc
commit
396ba6cdd5
+1
-1
@@ -110,7 +110,7 @@ open class GenericReplEvaluator(
|
|||||||
|
|
||||||
val resultFieldName = scriptResultFieldName(compileResult.lineId.no)
|
val resultFieldName = scriptResultFieldName(compileResult.lineId.no)
|
||||||
val resultField = scriptClass.getDeclaredField(resultFieldName).apply { isAccessible = true }
|
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)
|
return if (compileResult.hasResult) ReplEvalResult.ValueResult(resultFieldName, resultValue, compileResult.type)
|
||||||
else ReplEvalResult.UnitResult()
|
else ReplEvalResult.UnitResult()
|
||||||
|
|||||||
@@ -89,7 +89,8 @@ sealed class ReplCompileResult : Serializable {
|
|||||||
val classes: List<CompiledClassData>,
|
val classes: List<CompiledClassData>,
|
||||||
val hasResult: Boolean,
|
val hasResult: Boolean,
|
||||||
val classpathAddendum: List<File>,
|
val classpathAddendum: List<File>,
|
||||||
val type: String?) : ReplCompileResult() {
|
val type: String?,
|
||||||
|
val isFunctionType: Boolean) : ReplCompileResult() {
|
||||||
companion object { private val serialVersionUID: Long = 2L }
|
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.Disposable
|
||||||
import com.intellij.openapi.util.Disposer
|
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.AnalyzerWithCompilerReport
|
||||||
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
||||||
import org.jetbrains.kotlin.cli.common.repl.*
|
import org.jetbrains.kotlin.cli.common.repl.*
|
||||||
@@ -124,7 +125,8 @@ open class GenericReplCompiler(
|
|||||||
classpathAddendum ?: emptyList(),
|
classpathAddendum ?: emptyList(),
|
||||||
generationState.replSpecific.resultType?.let {
|
generationState.replSpecific.resultType?.let {
|
||||||
DescriptorRenderer.FQ_NAMES_IN_TYPES.renderType(it)
|
DescriptorRenderer.FQ_NAMES_IN_TYPES.renderType(it)
|
||||||
}
|
},
|
||||||
|
type?.isFunctionType ?: false
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user