@@ -79,10 +79,8 @@ class InteractiveDriver(val settings: List[String]) extends Driver {
79
79
// Like in `ZipArchiveFileLookup` we assume that zips are immutable
80
80
private val zipClassPathClasses : Seq [TypeName ] = {
81
81
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)
86
84
names
87
85
}
88
86
@@ -110,8 +108,7 @@ class InteractiveDriver(val settings: List[String]) extends Driver {
110
108
if (output.isDirectory) {
111
109
classesFromDir(output.jpath, classNames)
112
110
} else {
113
- val zipFile = new ZipFile (output.file)
114
- classesFromZip(zipFile, classNames)
111
+ classesFromZip(output.file, classNames)
115
112
}
116
113
classNames.flatMap { cls =>
117
114
treesFromClassName(cls, id)
@@ -212,16 +209,22 @@ class InteractiveDriver(val settings: List[String]) extends Driver {
212
209
names
213
210
}
214
211
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)
217
215
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
+ }
223
226
}
224
- finally zipFile.close()
227
+ finally zipFile.close()
225
228
}
226
229
227
230
/** Adds the names of the classes that are defined in `dir` to `buffer`. */
0 commit comments