@@ -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,26 @@ 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" ))
83+ (" " , name) :: Nil
7684 else if (Files .exists(path)) {
7785 TastyFileUtil .getClassName(path) match {
78- case Some (res) => res
86+ case Some (res) => res:: Nil
7987 case _ =>
8088 ctx0.error(s " Could not load classname from $name. " )
81- (" " , name)
89+ (" " , name) :: Nil
8290 }
8391 } else {
8492 ctx0.error(s " File $name does not exist. " )
85- (" " , name)
93+ (" " , name) :: Nil
8694 }
8795 }.unzip
8896 val ctx1 = ctx0.fresh
0 commit comments