diff options
author | Paul Phillips <paulp@improving.org> | 2011-11-04 14:53:50 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2011-11-04 14:53:50 +0000 |
commit | f4991fcffc0cddcd16e7abccbc577581fbf5bd0f (patch) | |
tree | e3672911455f72dec4eb27c9e1799fe35d3d113f /test/files | |
parent | 8006cc6760b30274676ae5359c27b49e5cbf5670 (diff) | |
download | scala-f4991fcffc0cddcd16e7abccbc577581fbf5bd0f.tar.gz scala-f4991fcffc0cddcd16e7abccbc577581fbf5bd0f.tar.bz2 scala-f4991fcffc0cddcd16e7abccbc577581fbf5bd0f.zip |
More repl work.
Hardened the repl against a bunch of erroneous conditions. Added a
:reset command which causes the repl to forget everything you have told
it. Added classloader tracing when repl tracing is enabled. :reset is
not that useful in its current form but it's the precursor to something
more interesting. No review.
Diffstat (limited to 'test/files')
-rw-r--r-- | test/files/jvm/interpreter.check | 2 | ||||
-rw-r--r-- | test/files/run/repl-reset.check | 57 | ||||
-rw-r--r-- | test/files/run/repl-reset.scala | 18 |
3 files changed, 76 insertions, 1 deletions
diff --git a/test/files/jvm/interpreter.check b/test/files/jvm/interpreter.check index 607e2bcaff..196a769a17 100644 --- a/test/files/jvm/interpreter.check +++ b/test/files/jvm/interpreter.check @@ -369,7 +369,7 @@ scala> scala> plusOne: (x: Int)Int res0: Int = 6 -res1: String = after reset +res0: String = after reset <console>:8: error: not found: value plusOne plusOne(5) // should be undefined now ^ diff --git a/test/files/run/repl-reset.check b/test/files/run/repl-reset.check new file mode 100644 index 0000000000..652948c63b --- /dev/null +++ b/test/files/run/repl-reset.check @@ -0,0 +1,57 @@ +Type in expressions to have them evaluated. +Type :help for more information. + +scala> + +scala> val x1 = 1 +x1: Int = 1 + +scala> val x2 = 2 +x2: Int = 2 + +scala> val x3 = 3 +x3: Int = 3 + +scala> case class BippyBungus() +defined class BippyBungus + +scala> x1 + x2 + x3 +res0: Int = 6 + +scala> :reset +Resetting interpreter state. +Forgetting this session history: + +val x1 = 1 +val x2 = 2 +val x3 = 3 +case class BippyBungus() +x1 + x2 + x3 + +Forgetting all expression results and named terms: BippyBungus, x1, x2, x3 +Forgetting defined types: BippyBungus + +scala> x1 + x2 + x3 +<console>:8: error: not found: value x1 + x1 + x2 + x3 + ^ + +scala> val x1 = 4 +x1: Int = 4 + +scala> new BippyBungus +<console>:8: error: not found: type BippyBungus + new BippyBungus + ^ + +scala> class BippyBungus() { def f = 5 } +defined class BippyBungus + +scala> { new BippyBungus ; x1 } +res2: Int = 4 + +scala> :javap BippyBungus +Compiled from "<console>"public class BippyBungus extends java.lang.Object implements scala.ScalaObject{ public int f(); public BippyBungus();} +scala> + +scala> diff --git a/test/files/run/repl-reset.scala b/test/files/run/repl-reset.scala new file mode 100644 index 0000000000..95cc48b942 --- /dev/null +++ b/test/files/run/repl-reset.scala @@ -0,0 +1,18 @@ +import scala.tools.partest.ReplTest + +object Test extends ReplTest { + def code = """ + |val x1 = 1 + |val x2 = 2 + |val x3 = 3 + |case class BippyBungus() + |x1 + x2 + x3 + |:reset + |x1 + x2 + x3 + |val x1 = 4 + |new BippyBungus + |class BippyBungus() { def f = 5 } + |{ new BippyBungus ; x1 } + |:javap BippyBungus + """.stripMargin +} |