summaryrefslogtreecommitdiff
path: root/test/files/run/t7933.scala
diff options
context:
space:
mode:
authorRaphael Jolly <rjolly@users.sourceforge.net>2014-01-30 13:29:02 +0100
committerRaphael Jolly <rjolly@users.sourceforge.net>2014-01-31 10:06:36 +0100
commit9dfac45e808017982e04fb20567c70b76dee3ede (patch)
tree4be4bf4202d87973b8f852e7c45a811720ff5923 /test/files/run/t7933.scala
parent8f6f4032b5c026fd9301cebe28dde5bb7c8e264c (diff)
downloadscala-9dfac45e808017982e04fb20567c70b76dee3ede.tar.gz
scala-9dfac45e808017982e04fb20567c70b76dee3ede.tar.bz2
scala-9dfac45e808017982e04fb20567c70b76dee3ede.zip
SI-7933 REPL javax.script eval is cached result
The problem is that the repl underneath the script engine evaluates input to val res0..resN, so it is a one shot operation. To allow repetition, compile(script) now returns a CompiledScript object whose eval method can be called any number of times.
Diffstat (limited to 'test/files/run/t7933.scala')
-rw-r--r--test/files/run/t7933.scala11
1 files changed, 11 insertions, 0 deletions
diff --git a/test/files/run/t7933.scala b/test/files/run/t7933.scala
new file mode 100644
index 0000000000..b06dffcd80
--- /dev/null
+++ b/test/files/run/t7933.scala
@@ -0,0 +1,11 @@
+import scala.tools.nsc.interpreter.IMain
+
+object Test extends App {
+ val engine = new IMain.Factory getScriptEngine()
+ engine.asInstanceOf[IMain].settings.usejavacp.value = true
+ val res2 = engine.asInstanceOf[javax.script.Compilable]
+ res2 compile "8" eval()
+ val res5 = res2 compile """println("hello") ; 8"""
+ res5 eval()
+ res5 eval()
+}