@@ -79,10 +79,8 @@ class InteractiveDriver(val settings: List[String]) extends Driver {
7979 // Like in `ZipArchiveFileLookup` we assume that zips are immutable
8080 private val zipClassPathClasses : Seq [TypeName ] = {
8181 val names = new mutable.ListBuffer [TypeName ]
82- zipClassPaths.foreach { zipCp =>
83- val zipFile = new ZipFile (zipCp.zipFile)
84- classesFromZip(zipFile, names)
85- }
82+ for (cp <- zipClassPaths)
83+ classesFromZip(cp.zipFile, names)
8684 names
8785 }
8886
@@ -110,8 +108,7 @@ class InteractiveDriver(val settings: List[String]) extends Driver {
110108 if (output.isDirectory) {
111109 classesFromDir(output.jpath, classNames)
112110 } else {
113- val zipFile = new ZipFile (output.file)
114- classesFromZip(zipFile, classNames)
111+ classesFromZip(output.file, classNames)
115112 }
116113 classNames.flatMap { cls =>
117114 treesFromClassName(cls, id)
@@ -212,16 +209,22 @@ class InteractiveDriver(val settings: List[String]) extends Driver {
212209 names
213210 }
214211
215- /** Adds the names of the classes that are defined in `zipFile` to `buffer`. */
216- private def classesFromZip (zipFile : ZipFile , buffer : mutable.ListBuffer [TypeName ]): Unit = {
212+ /** Adds the names of the classes that are defined in `file` to `buffer`. */
213+ private def classesFromZip (file : File , buffer : mutable.ListBuffer [TypeName ]): Unit = {
214+ val zipFile = new ZipFile (file)
217215 try {
218- for {
219- entry <- zipFile.stream.toArray((size : Int ) => new Array [ZipEntry ](size))
220- name = entry.getName
221- tastySuffix <- tastySuffixes.find(name.endsWith)
222- } buffer += name.replace(" /" , " ." ).stripSuffix(tastySuffix).toTypeName
216+ val entries = zipFile.entries()
217+ while (entries.hasMoreElements) {
218+ val entry = entries.nextElement()
219+ val name = entry.getName
220+ tastySuffixes.find(name.endsWith) match {
221+ case Some (tastySuffix) =>
222+ buffer += name.replace(" /" , " ." ).stripSuffix(tastySuffix).toTypeName
223+ case _ =>
224+ }
225+ }
223226 }
224- finally zipFile.close()
227+ finally zipFile.close()
225228 }
226229
227230 /** Adds the names of the classes that are defined in `dir` to `buffer`. */
0 commit comments