summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/repl/scala/tools/nsc/interpreter/IMain.scala2
-rwxr-xr-xtest/files/run/repl-paste-parse.check6
-rw-r--r--test/files/run/repl-paste-parse.scala27
-rw-r--r--test/files/run/repl-paste-parse.script1
4 files changed, 35 insertions, 1 deletions
diff --git a/src/repl/scala/tools/nsc/interpreter/IMain.scala b/src/repl/scala/tools/nsc/interpreter/IMain.scala
index 1e7a9cefed..dc8b6204c0 100644
--- a/src/repl/scala/tools/nsc/interpreter/IMain.scala
+++ b/src/repl/scala/tools/nsc/interpreter/IMain.scala
@@ -1191,7 +1191,7 @@ class IMain(@BeanProperty val factory: ScriptEngineFactory, initialSettings: Set
var isIncomplete = false
def parse = {
reporter.reset()
- val trees = newUnitParser(line).parseStats()
+ val trees = newUnitParser(line, label).parseStats()
if (reporter.hasErrors) Error(trees)
else if (isIncomplete) Incomplete(trees)
else Success(trees)
diff --git a/test/files/run/repl-paste-parse.check b/test/files/run/repl-paste-parse.check
new file mode 100755
index 0000000000..7b2148dc74
--- /dev/null
+++ b/test/files/run/repl-paste-parse.check
@@ -0,0 +1,6 @@
+Type in expressions for evaluation. Or try :help.
+
+scala> repl-paste-parse.script:1: error: illegal start of simple pattern
+val case = 9
+ ^
+:quit
diff --git a/test/files/run/repl-paste-parse.scala b/test/files/run/repl-paste-parse.scala
new file mode 100644
index 0000000000..e93ad4d02b
--- /dev/null
+++ b/test/files/run/repl-paste-parse.scala
@@ -0,0 +1,27 @@
+
+import java.io.{ BufferedReader, StringReader, StringWriter, PrintWriter }
+
+import scala.tools.partest.DirectTest
+import scala.tools.nsc.interpreter.ILoop
+import scala.tools.nsc.GenericRunnerSettings
+
+object Test extends DirectTest {
+ override def extraSettings = s"-usejavacp -i $scriptPath"
+ def scriptPath = testPath.changeExtension("script")
+ override def newSettings(args: List[String]) = {
+ val ss = new GenericRunnerSettings(Console.println)
+ ss.processArguments(args, true)
+ ss
+ }
+ def code = ""
+ def show() = {
+ val r = new BufferedReader(new StringReader(""))
+ val w = new StringWriter
+ val p = new PrintWriter(w, true)
+ new ILoop(r, p).process(settings)
+ w.toString.lines foreach { s =>
+ if (!s.startsWith("Welcome to Scala")) println(s)
+ }
+ }
+}
+
diff --git a/test/files/run/repl-paste-parse.script b/test/files/run/repl-paste-parse.script
new file mode 100644
index 0000000000..903f6e7b0c
--- /dev/null
+++ b/test/files/run/repl-paste-parse.script
@@ -0,0 +1 @@
+val case = 9