summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2011-03-15 02:56:58 +0000
committerPaul Phillips <paulp@improving.org>2011-03-15 02:56:58 +0000
commite96dba0c9a2467c6cf396c70a48ef0750503c26e (patch)
treeb31f7e00f5d3257dc38b1316ccd71c94e0d1fe9e /test
parent7a29fc7de3465a064ffc6e0422d5df4bf39b36a3 (diff)
downloadscala-e96dba0c9a2467c6cf396c70a48ef0750503c26e.tar.gz
scala-e96dba0c9a2467c6cf396c70a48ef0750503c26e.tar.bz2
scala-e96dba0c9a2467c6cf396c70a48ef0750503c26e.zip
Various chronic annoyances with the repl addres...
Various chronic annoyances with the repl addressed. Much improved transcript pasting. Now goes back in time to fix the transcript if it contains self-referential "res0, res1" etc. so that it works as it originally did. Shows which commands it is running, and places the commands with their result in a manner suitable for framing. Also, a new :paste command which accepts input up to ctrl-D, so you can enter companions without gyrations, or code from people who write in a repl unfriendly fashion by putting their curly braces on the next line (I'm looking at you mark harrah) or you name it, it's not picky. No review.
Diffstat (limited to 'test')
-rw-r--r--test/files/run/repl-paste-2.check31
-rw-r--r--test/files/run/repl-paste-2.scala28
-rw-r--r--test/files/run/repl-paste.check13
-rw-r--r--test/files/run/repl-paste.scala19
-rw-r--r--test/files/run/repl-transcript.check23
-rw-r--r--test/files/run/repl-transcript.scala20
6 files changed, 134 insertions, 0 deletions
diff --git a/test/files/run/repl-paste-2.check b/test/files/run/repl-paste-2.check
new file mode 100644
index 0000000000..fb7a818f1a
--- /dev/null
+++ b/test/files/run/repl-paste-2.check
@@ -0,0 +1,31 @@
+Type in expressions to have them evaluated.
+Type :help for more information.
+
+scala>
+scala> // Replaying 7 commands from transcript.
+
+val res0 = { 123 }
+res0: Int = 123
+
+val res1 = { 567 }
+res1: Int = 567
+
+val res2 = { res0 + res1 }
+res2: Int = 690
+
+val x = dingus
+<console>:7: error: not found: value dingus
+ val x = dingus
+ ^
+
+val x = "dingus"
+x: java.lang.String = dingus
+
+val res3 = { x.length }
+res3: Int = 6
+
+val res4 = { x.length + res3 }
+res4: Int = 12
+
+
+scala>
diff --git a/test/files/run/repl-paste-2.scala b/test/files/run/repl-paste-2.scala
new file mode 100644
index 0000000000..802c627701
--- /dev/null
+++ b/test/files/run/repl-paste-2.scala
@@ -0,0 +1,28 @@
+import scala.tools.partest.ReplTest
+
+object Test extends ReplTest {
+ def code = """
+scala> 123
+res0: Int = 123
+
+scala> 567
+res1: Int = 567
+
+scala> res0 + res1
+res2: Int = 690
+
+scala> val x = dingus
+<console>:7: error: not found: value dingus
+ val x = dingus
+ ^
+
+scala> val x = "dingus"
+x: java.lang.String = dingus
+
+scala> x.length
+res3: Int = 6
+
+scala> x.length + res3
+res4: Int = 12
+ """
+} \ No newline at end of file
diff --git a/test/files/run/repl-paste.check b/test/files/run/repl-paste.check
new file mode 100644
index 0000000000..4c9de85e67
--- /dev/null
+++ b/test/files/run/repl-paste.check
@@ -0,0 +1,13 @@
+Type in expressions to have them evaluated.
+Type :help for more information.
+
+scala> // Entering paste mode (ctrl-D to finish)
+
+
+// Exiting paste mode, now interpreting.
+
+defined class Dingus
+defined module Dingus
+x: Int = 110
+
+scala>
diff --git a/test/files/run/repl-paste.scala b/test/files/run/repl-paste.scala
new file mode 100644
index 0000000000..e2ebab1e45
--- /dev/null
+++ b/test/files/run/repl-paste.scala
@@ -0,0 +1,19 @@
+import scala.tools.partest.ReplTest
+
+object Test extends ReplTest {
+ def code = ":paste\n" + (
+ """
+ class Dingus
+ {
+ private val x = 5
+ def y = Dingus.x * 2
+ }
+ object Dingus
+ {
+ private val x = 55
+ }
+
+ val x = (new Dingus).y
+ """
+ )
+} \ No newline at end of file
diff --git a/test/files/run/repl-transcript.check b/test/files/run/repl-transcript.check
new file mode 100644
index 0000000000..b2a8d2e156
--- /dev/null
+++ b/test/files/run/repl-transcript.check
@@ -0,0 +1,23 @@
+Type in expressions to have them evaluated.
+Type :help for more information.
+
+scala>
+scala> // Replaying 5 commands from transcript.
+
+class Bippity
+defined class Bippity
+
+def f = new Bippity
+f: Bippity
+
+val res5 = { 123 }
+res5: Int = 123
+
+val res6 = { 1 to 100 map (_ + 1) }
+res6: scala.collection.immutable.IndexedSeq[Int] = Vector(2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101)
+
+res6.sum + res5
+res0: Int = 5273
+
+
+scala>
diff --git a/test/files/run/repl-transcript.scala b/test/files/run/repl-transcript.scala
new file mode 100644
index 0000000000..b39279aea3
--- /dev/null
+++ b/test/files/run/repl-transcript.scala
@@ -0,0 +1,20 @@
+import scala.tools.partest.ReplTest
+
+object Test extends ReplTest {
+ def code = """
+scala> class Bippity
+defined class Bippity
+
+scala> def f = new Bippity
+f: Bippity
+
+scala> 123
+res5: Int = 123
+
+scala> 1 to 100 map (_ + 1)
+res6: scala.collection.immutable.IndexedSeq[Int] = Vector(2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101)
+
+scala> res6.sum + res5
+ """
+}
+