From 679d4590d96b896d24c7ae75ef1afdab02c78c31 Mon Sep 17 00:00:00 2001 From: Hubert Plociniczak Date: Thu, 5 Nov 2009 16:51:35 +0000 Subject: BuildManagerTest no longer throws npe when some... BuildManagerTest no longer throws npe when some of the files do not exist --- src/compiler/scala/tools/nsc/interactive/BuildManager.scala | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/compiler/scala/tools/nsc/interactive/BuildManager.scala b/src/compiler/scala/tools/nsc/interactive/BuildManager.scala index c269c0eace..e56bfec433 100644 --- a/src/compiler/scala/tools/nsc/interactive/BuildManager.scala +++ b/src/compiler/scala/tools/nsc/interactive/BuildManager.scala @@ -56,8 +56,16 @@ object BuildManagerTest extends EvalLoop { } def main(args: Array[String]) { - implicit def filesToSet(fs: List[String]): Set[AbstractFile] = - Set.empty ++ (fs map AbstractFile.getFile) + implicit def filesToSet(fs: List[String]): Set[AbstractFile] = { + def partition(s: String, r: Tuple2[List[AbstractFile], List[String]])= { + val v = AbstractFile.getFile(s) + if (v == null) (r._1, s::r._2) else (v::r._1, r._2) + } + val result = fs.foldRight((List[AbstractFile](), List[String]()))(partition) + if (!result._2.isEmpty) + println("No such file(s): " + result._2.mkString(",")) + Set.empty ++ result._1 + } val settings = new Settings(error) val command = new CompilerCommand(args.toList, settings, error, false) -- cgit v1.2.3