diff options
Diffstat (limited to 'src/compiler')
-rw-r--r-- | src/compiler/scala/tools/nsc/io/ZipArchive.scala | 17 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/symtab/SymbolLoaders.scala | 12 |
2 files changed, 14 insertions, 15 deletions
diff --git a/src/compiler/scala/tools/nsc/io/ZipArchive.scala b/src/compiler/scala/tools/nsc/io/ZipArchive.scala index 6843c7ec49..5f708b3c82 100644 --- a/src/compiler/scala/tools/nsc/io/ZipArchive.scala +++ b/src/compiler/scala/tools/nsc/io/ZipArchive.scala @@ -209,7 +209,7 @@ final class ZipArchive(file: File, val archive: ZipFile) extends PlainFile(file) protected lazy val root = new ZipRootCreator(_.parent)() protected def DirEntryConstructor = new DirEntry(_, _, _) protected def FileEntryConstructor = new FileEntry(_, _, _, _) - protected def ZipTravConstructor = zipTraversableFromZipFile _ + protected def ZipTravConstructor = new ZipFileIterable(_) abstract class Entry( override val container: AbstractFile, @@ -247,15 +247,14 @@ final class ZipArchive(file: File, val archive: ZipFile) extends PlainFile(file) override def input = archive getInputStream entry } - private def zipTraversableFromZipFile(z: ZipFile): ZipTrav = - new Iterable[ZipEntry] with ZipTrav { - def zis: () => ZipInputStream = null // not valid for this type - def iterator = new Iterator[ZipEntry] { - val enum = z.entries() - def hasNext = enum.hasMoreElements - def next = enum.nextElement - } + class ZipFileIterable(z: ZipFile) extends Iterable[ZipEntry] with ZipTrav { + def zis: () => ZipInputStream = null // not valid for this type + def iterator = new Iterator[ZipEntry] { + val enum = z.entries() + def hasNext = enum.hasMoreElements + def next = enum.nextElement } + } } /** diff --git a/src/compiler/scala/tools/nsc/symtab/SymbolLoaders.scala b/src/compiler/scala/tools/nsc/symtab/SymbolLoaders.scala index 9a4a9c31b4..7f5f4cc1b1 100644 --- a/src/compiler/scala/tools/nsc/symtab/SymbolLoaders.scala +++ b/src/compiler/scala/tools/nsc/symtab/SymbolLoaders.scala @@ -159,15 +159,15 @@ abstract class SymbolLoaders { root.setInfo(new PackageClassInfoType(new Scope(), root)) val sourcepaths = classpath.sourcepaths - for (classRep <- classpath.classes if doLoad(classRep)) { - ((classRep.binary, classRep.source) : @unchecked) match { - case (Some(bin), Some(src)) if needCompile(bin, src) => + for (classRep <- classpath.classes ; if doLoad(classRep)) { + ((classRep.binary, classRep.source) : @unchecked) match { + case (Some(bin), Some(src)) if needCompile(bin, src) => enterToplevelsFromSource(root, classRep.name, src) - case (None, Some(src)) => + case (None, Some(src)) => enterToplevelsFromSource(root, classRep.name, src) - case (Some(bin), _) => + case (Some(bin), _) => enterClassAndModule(root, classRep.name, newClassLoader(bin)) - } + } } for (pkg <- classpath.packages) { |