Return script instance from the evaluation in the basic jvm evaluator

This commit is contained in:
Ilya Chernikov
2018-06-26 17:23:34 +02:00
parent 2ecddc996a
commit befa94689a
@@ -26,13 +26,13 @@ open class BasicJvmScriptEvaluator<ScriptBase : Any>(val environment: ScriptingE
ResultWithDiagnostics.Failure(ScriptDiagnostic("expecting class in this implementation, got ${scriptObject?.javaClass}")) ResultWithDiagnostics.Failure(ScriptDiagnostic("expecting class in this implementation, got ${scriptObject?.javaClass}"))
else { else {
val receivers = scriptEvaluationEnvironment.getOrNull(ScriptEvaluationEnvironmentParams.implicitReceivers) val receivers = scriptEvaluationEnvironment.getOrNull(ScriptEvaluationEnvironmentParams.implicitReceivers)
if (receivers == null) { val instance = if (receivers == null) {
scriptObject.getConstructor().newInstance() scriptObject.getConstructor().newInstance()
} else { } else {
scriptObject.getConstructor(Array<Any>::class.java).newInstance(receivers.toTypedArray()) scriptObject.getConstructor(Array<Any>::class.java).newInstance(receivers.toTypedArray())
} }
ResultWithDiagnostics.Success(EvaluationResult(null, scriptEvaluationEnvironment)) ResultWithDiagnostics.Success(EvaluationResult(instance, scriptEvaluationEnvironment))
} }
} }
} }