diff options
author | wpopielarski <wpopielarski@gmail.com> | 2015-11-05 10:31:02 +0100 |
---|---|---|
committer | wpopielarski <wpopielarski@gmail.com> | 2015-11-05 10:31:02 +0100 |
commit | 65b60c8e9ed9c1b9ee343ddd52ef70f89e59889f (patch) | |
tree | c638a307efcfc5f99806b10ceecfb6bc5c6f2cea /src/compiler | |
parent | 153c70b5b64344db5a97a3de23e91e49f57ac337 (diff) | |
download | scala-65b60c8e9ed9c1b9ee343ddd52ef70f89e59889f.tar.gz scala-65b60c8e9ed9c1b9ee343ddd52ef70f89e59889f.tar.bz2 scala-65b60c8e9ed9c1b9ee343ddd52ef70f89e59889f.zip |
Allows to propagate fatal errors when output folder not found.
Diffstat (limited to 'src/compiler')
-rw-r--r-- | src/compiler/scala/tools/nsc/backend/jvm/BCodeHelpers.scala | 28 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/backend/jvm/BytecodeWriters.scala | 3 |
2 files changed, 8 insertions, 23 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/jvm/BCodeHelpers.scala b/src/compiler/scala/tools/nsc/backend/jvm/BCodeHelpers.scala index 813180a8c7..1b97681743 100644 --- a/src/compiler/scala/tools/nsc/backend/jvm/BCodeHelpers.scala +++ b/src/compiler/scala/tools/nsc/backend/jvm/BCodeHelpers.scala @@ -35,26 +35,14 @@ abstract class BCodeHelpers extends BCodeIdiomatic with BytecodeWriters { /* * must-single-thread */ - def getOutFolder(csym: Symbol, cName: String, cunit: CompilationUnit): _root_.scala.tools.nsc.io.AbstractFile = Option { - try { - outputDirectory(csym) - } catch { - case ex: Throwable => - reporter.warning(cunit.body.pos, s"Couldn't find output folder for symbol source ${csym.name}. Dropping to compliation unit source.\n${ex.getMessage}") - null - } - }.orElse { Option { - try { - outputDirectory(cunit.source) - } catch { - case ex: Throwable => - reporter.warning(cunit.body.pos, s"Couldn't find output folder for compilation unit $cName\n${ex.getMessage}") - null - } - }}.orElse { - reporter.error(cunit.body.pos, s"Couldn't create file for class $cName") - None - }.orNull + def getOutFolder(csym: Symbol, cName: String, cunit: CompilationUnit): _root_.scala.tools.nsc.io.AbstractFile = + _root_.scala.util.Try { + outputDirectory(csym) + }.recover { + case ex: Throwable => + reporter.error(cunit.body.pos, s"Couldn't create file for class $cName\n${ex.getMessage}") + null + }.get var pickledBytes = 0 // statistics diff --git a/src/compiler/scala/tools/nsc/backend/jvm/BytecodeWriters.scala b/src/compiler/scala/tools/nsc/backend/jvm/BytecodeWriters.scala index e4fcb729a2..1d29fdee10 100644 --- a/src/compiler/scala/tools/nsc/backend/jvm/BytecodeWriters.scala +++ b/src/compiler/scala/tools/nsc/backend/jvm/BytecodeWriters.scala @@ -25,9 +25,6 @@ trait BytecodeWriters { def outputDirectory(sym: Symbol): AbstractFile = settings.outputDirs outputDirFor enteringFlatten(sym.sourceFile) - def outputDirectory(cunitSource: scala.reflect.internal.util.SourceFile): AbstractFile = - settings.outputDirs outputDirFor cunitSource.file - /** * @param clsName cls.getName */ |