diff options
author | Geoffrey Washburn <geoffrey.washburn@epfl.ch> | 2008-06-10 07:18:47 +0000 |
---|---|---|
committer | Geoffrey Washburn <geoffrey.washburn@epfl.ch> | 2008-06-10 07:18:47 +0000 |
commit | 18da40ae4bbcdde226e8ba2ba13a56b32eb80bf2 (patch) | |
tree | a0946689907ba6a694961c6250702ee5444af02b | |
parent | 9ba40ca89095dfc6713e09b4e788410a61d78d81 (diff) | |
download | scala-18da40ae4bbcdde226e8ba2ba13a56b32eb80bf2.tar.gz scala-18da40ae4bbcdde226e8ba2ba13a56b32eb80bf2.tar.bz2 scala-18da40ae4bbcdde226e8ba2ba13a56b32eb80bf2.zip |
Fixing #1015 and #1017 when run inside of a scr...
Fixing #1015 and #1017 when run inside of a script.
#1015 still won't work in the interpreter.
#1017 still won't work in the interperter or methods.
-rw-r--r-- | src/compiler/scala/tools/nsc/ScriptRunner.scala | 7 | ||||
-rwxr-xr-x | test/files/script/t1015.scala | 26 | ||||
-rwxr-xr-x | test/files/script/t1017.scala | 29 |
3 files changed, 59 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/nsc/ScriptRunner.scala b/src/compiler/scala/tools/nsc/ScriptRunner.scala index d8ea282122..36b8dde168 100644 --- a/src/compiler/scala/tools/nsc/ScriptRunner.scala +++ b/src/compiler/scala/tools/nsc/ScriptRunner.scala @@ -165,13 +165,14 @@ object ScriptRunner { (packageDecl + "object " + objName + " {\n" + " def main(argv: Array[String]): Unit = {\n" + - " val args = argv;\n") + " val args = argv;\n" + + " new AnyRef {\n") } /** Code that is added to the end of a script file to make * it a complete Scala compilation unit. */ - val endCode = "\n} }\n" + val endCode = "\n} \n} }\n" /** Wrap a script file into a runnable object named @@ -195,7 +196,7 @@ object ScriptRunner { bsf.length) // f.length.asInstanceOf[Int]) } - val end = new BatchSourceFile("<script trailer>", "\n} }\n".toCharArray) + val end = new BatchSourceFile("<script trailer>", endCode.toCharArray) new CompoundSourceFile(preamble, middle, end) } diff --git a/test/files/script/t1015.scala b/test/files/script/t1015.scala new file mode 100755 index 0000000000..52d67bd6cc --- /dev/null +++ b/test/files/script/t1015.scala @@ -0,0 +1,26 @@ +#!/bin/sh +# fact - A simple Scala script that prints out the factorial of +# the argument specified on the command line. + +cygwin=false; +case "`uname`" in + CYGWIN*) cygwin=true ;; +esac + +SOURCE="$0"; +if $cygwin; then + if [ "$OS" = "Windows_NT" ] && cygpath -m .>/dev/null 2>/dev/null ; then + format=mixed + else + format=windows + fi + SOURCE=`cygpath --$format "$SOURCE"`; +fi + +exec scala -nocompdaemon "$SOURCE" "$@" +!# + +case class Test(one : Int, two : Int) +object Test{ + def apply(one : Int): Test = Test(one, 2); +} diff --git a/test/files/script/t1017.scala b/test/files/script/t1017.scala new file mode 100755 index 0000000000..d1b43ea923 --- /dev/null +++ b/test/files/script/t1017.scala @@ -0,0 +1,29 @@ +#!/bin/sh +# fact - A simple Scala script that prints out the factorial of +# the argument specified on the command line. + +cygwin=false; +case "`uname`" in + CYGWIN*) cygwin=true ;; +esac + +SOURCE="$0"; +if $cygwin; then + if [ "$OS" = "Windows_NT" ] && cygpath -m .>/dev/null 2>/dev/null ; then + format=mixed + else + format=windows + fi + SOURCE=`cygpath --$format "$SOURCE"`; +fi + +exec scala -nocompdaemon "$SOURCE" "$@" +!# + +def foo = { + bar +} + +var x = 1 + +def bar = 1 |