@@ -8,6 +8,7 @@ import core.Comments.{ContextDoc, ContextDocstrings}
88import core .Contexts .{Context , ContextBase }
99import core .{MacroClassLoader , Mode , TypeError }
1010import dotty .tools .dotc .ast .Positioned
11+ import dotty .tools .io .File
1112import reporting ._
1213
1314import scala .util .control .NonFatal
@@ -70,19 +71,25 @@ class Driver {
7071 protected def fromTastySetup (fileNames0 : List [String ], ctx0 : Context ): (List [String ], Context ) = {
7172 if (ctx0.settings.fromTasty.value(ctx0)) {
7273 // Resolve classpath and class names of tasty files
73- val (classPaths, classNames) = fileNames0.map { name =>
74+ val (classPaths, classNames) = fileNames0.flatMap { name =>
7475 val path = Paths .get(name)
75- if (! name.endsWith(" .tasty" )) (" " , name)
76+ if (name.endsWith(" .jar" )) {
77+ new dotty.tools.io.Jar (File (name)).iterator.collect {
78+ case e if e.getName.endsWith(" .tasty" ) =>
79+ (name, e.getName.stripSuffix(" .tasty" ).replace(" /" , " ." ))
80+ }.toList
81+ }
82+ else if (! name.endsWith(" .tasty" )) (" " , name) :: Nil
7683 else if (Files .exists(path)) {
7784 TastyFileUtil .getClassName(path) match {
78- case Some (res) => res
85+ case Some (res) => res:: Nil
7986 case _ =>
8087 ctx0.error(s " Could not load classname from $name. " )
81- (" " , name)
88+ (" " , name) :: Nil
8289 }
8390 } else {
8491 ctx0.error(s " File $name does not exist. " )
85- (" " , name)
92+ (" " , name):: Nil
8693 }
8794 }.unzip
8895 val ctx1 = ctx0.fresh
0 commit comments