diff options
author | Paul Phillips <paulp@improving.org> | 2011-05-21 17:45:18 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2011-05-21 17:45:18 +0000 |
commit | b4b884e0f878c2da1f410d51977d36dacfcab536 (patch) | |
tree | d272600247a276ba7b540fec828cb109d6c0a56d /src | |
parent | 9cc4c5f9a30b11461d563d8009dfc9af462aac16 (diff) | |
download | scala-b4b884e0f878c2da1f410d51977d36dacfcab536.tar.gz scala-b4b884e0f878c2da1f410d51977d36dacfcab536.tar.bz2 scala-b4b884e0f878c2da1f410d51977d36dacfcab536.zip |
Created a PlainDirectory subclass of PlainFile ...
Created a PlainDirectory subclass of PlainFile so I can use polymorphism
to optimize. No review.
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/nsc/io/PlainFile.scala | 10 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala | 2 |
2 files changed, 10 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/io/PlainFile.scala b/src/compiler/scala/tools/nsc/io/PlainFile.scala index 21c4d95d7a..83b8cc32c4 100644 --- a/src/compiler/scala/tools/nsc/io/PlainFile.scala +++ b/src/compiler/scala/tools/nsc/io/PlainFile.scala @@ -16,7 +16,15 @@ object PlainFile { * by it. Otherwise, returns null. */ def fromPath(file: Path): PlainFile = - if (file.exists) new PlainFile(file) else null + if (file.isDirectory) new PlainDirectory(file.toDirectory) + else if (file.isFile) new PlainFile(file) + else null +} + +class PlainDirectory(givenPath: Directory) extends PlainFile(givenPath) { + override def isDirectory = true + override def iterator = givenPath.list filter (_.exists) map (x => new PlainFile(x)) + override def delete(): Unit = givenPath.deleteRecursively() } /** This class implements an abstract file backed by a File. diff --git a/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala b/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala index e33491aa29..e03b74d7ab 100644 --- a/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala +++ b/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala @@ -396,7 +396,7 @@ abstract class SpecializeTypes extends InfoTransform with TypingTransformers { case ExistentialType(_, res) => specializedTypeVars(res) case AnnotatedType(_, tp, _) => specializedTypeVars(tp) - case TypeBounds(hi, lo) => specializedTypeVars(hi) ++ specializedTypeVars(lo) // @I: it's (lo, hi) - swap them? + case TypeBounds(lo, hi) => specializedTypeVars(lo) ++ specializedTypeVars(hi) case _ => immutable.ListSet.empty[Symbol] } |