summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/util/ClassPath.scala
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2011-01-27 20:25:55 +0000
committerPaul Phillips <paulp@improving.org>2011-01-27 20:25:55 +0000
commit1c537ba1b3b68007e613a6c90d27cdae3f262c77 (patch)
tree9b80f6f3488cb9f50639f467dcf8fc88a9c2772c /src/compiler/scala/tools/nsc/util/ClassPath.scala
parentba82b29b929f47ae345dbd32e5b6200bf68c231e (diff)
downloadscala-1c537ba1b3b68007e613a6c90d27cdae3f262c77.tar.gz
scala-1c537ba1b3b68007e613a6c90d27cdae3f262c77.tar.bz2
scala-1c537ba1b3b68007e613a6c90d27cdae3f262c77.zip
Changing some code to not use collect on top of...
Changing some code to not use collect on top of a possibly changing filesystem. Anonymous partial functions used with collect risk match errors if guard results ever change, due to the guard being run twice (isDefinedAt and then apply). No review.
Diffstat (limited to 'src/compiler/scala/tools/nsc/util/ClassPath.scala')
-rw-r--r--src/compiler/scala/tools/nsc/util/ClassPath.scala24
1 files changed, 13 insertions, 11 deletions
diff --git a/src/compiler/scala/tools/nsc/util/ClassPath.scala b/src/compiler/scala/tools/nsc/util/ClassPath.scala
index f0f3716782..0a8c54f297 100644
--- a/src/compiler/scala/tools/nsc/util/ClassPath.scala
+++ b/src/compiler/scala/tools/nsc/util/ClassPath.scala
@@ -8,8 +8,7 @@ package scala.tools.nsc
package util
import java.net.URL
-import scala.collection.{ mutable, immutable }
-import mutable.ListBuffer
+import scala.collection.mutable.ListBuffer
import io.{ File, Directory, Path, AbstractFile }
import scala.tools.util.StringOps.splitWhere
import Path.isJarOrZip
@@ -289,15 +288,16 @@ class SourcePath[T](dir: AbstractFile, val context: ClassPathContext[T]) extends
def asClasspathString = dir.path
val sourcepaths: List[AbstractFile] = List(dir)
- lazy val classes: List[ClassRep] = dir collect {
- case f if !f.isDirectory && validSourceFile(f.name) => ClassRep(None, Some(f))
+ lazy val classes: List[ClassRep] = dir flatMap { f =>
+ if (f.isDirectory || !validSourceFile(f.name)) Nil
+ else List(ClassRep(None, Some(f)))
} toList
- lazy val packages: List[SourcePath[T]] = dir collect {
- case f if f.isDirectory && validPackage(f.name) => new SourcePath[T](f, context)
+ lazy val packages: List[SourcePath[T]] = dir flatMap { f =>
+ if (f.isDirectory && validPackage(f.name)) List(new SourcePath[T](f, context))
+ else Nil
} toList
-
override def toString() = "sourcepath: "+ dir.toString()
}
@@ -311,12 +311,14 @@ class DirectoryClassPath(val dir: AbstractFile, val context: ClassPathContext[Ab
def asClasspathString = dir.path
val sourcepaths: List[AbstractFile] = Nil
- lazy val classes: List[ClassRep] = dir collect {
- case f if !f.isDirectory && validClassFile(f.name) => ClassRep(Some(f), None)
+ lazy val classes: List[ClassRep] = dir flatMap { f =>
+ if (f.isDirectory || !validClassFile(f.name)) Nil
+ else List(ClassRep(Some(f), None))
} toList
- lazy val packages: List[DirectoryClassPath] = dir collect {
- case f if f.isDirectory && validPackage(f.name) => new DirectoryClassPath(f, context)
+ lazy val packages: List[DirectoryClassPath] = dir flatMap { f =>
+ if (f.isDirectory && validPackage(f.name)) List(new DirectoryClassPath(f, context))
+ else Nil
} toList
override def toString() = "directory classpath: "+ dir