diff --git a/src/main/scala/leon/frontends/scalac/ExtractionPhase.scala b/src/main/scala/leon/frontends/scalac/ExtractionPhase.scala index f4aa4fa63abeb458398bae4f59862710873a8759..7e1f75dfd59ee391481019b654af3c8569b89334 100644 --- a/src/main/scala/leon/frontends/scalac/ExtractionPhase.scala +++ b/src/main/scala/leon/frontends/scalac/ExtractionPhase.scala @@ -23,17 +23,18 @@ object ExtractionPhase extends LeonPhase[List[String], Program] { val settings = new NSCSettings - val scalaLib = Option( - scala.Predef.getClass.getProtectionDomain.getCodeSource() - ) map { _.getLocation.getPath } getOrElse { + val scalaLib = Option(scala.Predef.getClass.getProtectionDomain.getCodeSource()).map{ + _.getLocation.getPath + }.orElse( for { // We are in Eclipse. Look in Eclipse plugins to find scala lib - val eclipsePlugins = System.getenv("ECLIPSE_HOME") + "/plugins" - new File(eclipsePlugins).listFiles().map{ _.getAbsolutePath }.find{ _ contains "scala-library"}. - getOrElse(ctx.reporter.fatalError("No Scala library found. " + - "If you are working in Eclipse, make sure to set the ECLIPSE_HOME environment variable." - ) - ) - } + eclipseHome <- Option(System.getenv("ECLIPSE_HOME")) + pluginsHome = eclipseHome + "/plugins" + plugins <- scala.util.Try(new File(pluginsHome).listFiles().map{ _.getAbsolutePath }).toOption + path <- plugins.find{ _ contains "scala-library"} + } yield path).getOrElse( ctx.reporter.fatalError( + "No Scala library found. If you are working in Eclipse, " + + "make sure to set the ECLIPSE_HOME environment variable to your Eclipse installation home directory" + )) settings.classpath.value = scalaLib settings.usejavacp.value = false