diff options
author | Som Snytt <som.snytt@gmail.com> | 2013-03-15 08:54:58 -0700 |
---|---|---|
committer | Som Snytt <som.snytt@gmail.com> | 2013-03-22 14:41:56 -0700 |
commit | cc485a9c4f5764753a7d2d64815c2de84268d5ec (patch) | |
tree | b2c80c2ee288313a0c47ec15a897fbae55ce80f4 /test/files | |
parent | 482bef8079e2a2fecc2b8f77eb7c6da648125e3c (diff) | |
download | scala-cc485a9c4f5764753a7d2d64815c2de84268d5ec.tar.gz scala-cc485a9c4f5764753a7d2d64815c2de84268d5ec.tar.bz2 scala-cc485a9c4f5764753a7d2d64815c2de84268d5ec.zip |
SI-5717 error when bytecode cannot be written
If there's an existing file foo when emitting a class file for foo.Bar,
then emit an error at foo.Bar, similar to what javac does.
The error message looks something like:
foo.scala:4: error: error writing object Foo: ./mypkg/Foo.class: ./mypkg is not a directory
Diffstat (limited to 'test/files')
-rwxr-xr-x | test/files/run/t5717.scala | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/test/files/run/t5717.scala b/test/files/run/t5717.scala new file mode 100755 index 0000000000..a0997f5a49 --- /dev/null +++ b/test/files/run/t5717.scala @@ -0,0 +1,21 @@ +import scala.tools.partest._ +import java.io.File + +object Test extends StoreReporterDirectTest { + def code = ??? + + def compileCode(code: String) = { + val classpath = List(sys.props("partest.lib"), testOutput.path) mkString sys.props("path.separator") + compileString(newCompiler("-cp", classpath, "-d", testOutput.path))(code) + } + // TODO + // Don't assume output is on physical disk + // Let the compiler tell us output dir + // val sc = newCompiler("-cp", classpath, "-d", testOutput.path) + // val out = sc.settings.outputDirs.getSingleOutput.get + def show(): Unit = { + // Don't crash when we find a file 'a' where package 'a' should go. + scala.reflect.io.File(testOutput.path + "/a").writeAll("a") + compileCode("package a { class B }") + } +} |