diff options
author | Martin Odersky <odersky@gmail.com> | 2016-03-17 16:57:10 +0100 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2016-03-18 12:25:48 +0100 |
commit | d8a7a59ef96127ca64f27e0cc2529d775b1fa9c9 (patch) | |
tree | d4e3a55d78195f82f750d3cac99ab59f2d6309e1 /test/test/TestREPL.scala | |
parent | e1fb19412c5dcc722e7df24e543aadf03a463c9a (diff) | |
download | dotty-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.scala | 29 |
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) |