Add expression type string to the REPL API

PR-1131
This commit is contained in:
vitaly.khudobakhshov
2017-06-09 15:21:55 +02:00
committed by Ilya Chernikov
parent 8783f7a94e
commit d165ea9ea7
4 changed files with 25 additions and 8 deletions
@@ -110,7 +110,7 @@ open class GenericReplEvaluator(val baseClasspath: Iterable<File>,
val resultField = scriptClass.getDeclaredField(SCRIPT_RESULT_FIELD_NAME).apply { isAccessible = true }
val resultValue: Any? = resultField.get(scriptInstance)
return if (compileResult.hasResult) ReplEvalResult.ValueResult(resultValue)
return if (compileResult.hasResult) ReplEvalResult.ValueResult(resultValue, compileResult.type)
else ReplEvalResult.UnitResult()
}
}
@@ -83,7 +83,8 @@ sealed class ReplCompileResult : Serializable {
val mainClassName: String,
val classes: List<CompiledClassData>,
val hasResult: Boolean,
val classpathAddendum: List<File>) : ReplCompileResult()
val classpathAddendum: List<File>,
val type: String?) : ReplCompileResult()
class Incomplete : ReplCompileResult()
@@ -110,8 +111,8 @@ interface ReplEvalAction {
}
sealed class ReplEvalResult : Serializable {
class ValueResult(val value: Any?) : ReplEvalResult() {
override fun toString(): String = "Result: $value"
class ValueResult(val value: Any?, val type: String?) : ReplEvalResult() {
override fun toString(): String = "$value : $type"
}
class UnitResult : ReplEvalResult()