aboutsummaryrefslogtreecommitdiff
path: root/test/test/TestREPL.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2016-03-17 16:57:10 +0100
committerMartin Odersky <odersky@gmail.com>2016-03-18 12:25:48 +0100
commitd8a7a59ef96127ca64f27e0cc2529d775b1fa9c9 (patch)
treed4e3a55d78195f82f750d3cac99ab59f2d6309e1 /test/test/TestREPL.scala
parente1fb19412c5dcc722e7df24e543aadf03a463c9a (diff)
downloaddotty-d8a7a59ef96127ca64f27e0cc2529d775b1fa9c9.tar.gz
dotty-d8a7a59ef96127ca64f27e0cc2529d775b1fa9c9.tar.bz2
dotty-d8a7a59ef96127ca64f27e0cc2529d775b1fa9c9.zip
Move all overridable bits into Config class
Central config class replaces mixture of parameters and fields. The fields were in part in the wrong class, where they could not easily be overridden.
Diffstat (limited to 'test/test/TestREPL.scala')
-rw-r--r--test/test/TestREPL.scala29
1 files changed, 14 insertions, 15 deletions
diff --git a/test/test/TestREPL.scala b/test/test/TestREPL.scala
index a9978cdde..30dad2b64 100644
--- a/test/test/TestREPL.scala
+++ b/test/test/TestREPL.scala
@@ -5,32 +5,31 @@ import dotty.tools.dotc.core.Contexts.Context
import collection.mutable
import java.io.StringWriter
-
class TestREPL(script: String) extends REPL {
- private val prompt = "scala> "
- private val continuationPrompt = " | "
-
private val out = new StringWriter()
- override val output = new NewLinePrintWriter(out)
- override def input(implicit ctx: Context) = new InteractiveReader {
- val lines = script.lines
- def readLine(prompt: String): String = {
- val line = lines.next
- if (line.startsWith(prompt) || line.startsWith(continuationPrompt)) {
- output.println(line)
- line.drop(prompt.length)
+ override lazy val config = new REPL.Config {
+ override val output = new NewLinePrintWriter(out)
+
+ override def input(implicit ctx: Context) = new InteractiveReader {
+ val lines = script.lines
+ def readLine(prompt: String): String = {
+ val line = lines.next
+ if (line.startsWith(prompt) || line.startsWith(continuationPrompt)) {
+ output.println(line)
+ line.drop(prompt.length)
+ }
+ else readLine(prompt)
}
- else readLine(prompt)
+ val interactive = false
}
- val interactive = false
}
def check() = {
out.close()
val printed = out.toString
- val transcript = printed.drop(printed.indexOf(prompt))
+ val transcript = printed.drop(printed.indexOf(config.prompt))
if (transcript.toString != script) {
println("input differs from transcript:")
println(transcript)