diff options
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/src/dotty/tools/dotc/core/classfile/ClassfileParser.scala | 2 | ||||
-rw-r--r-- | compiler/src/dotty/tools/io/ClassPath.scala | 13 |
2 files changed, 4 insertions, 11 deletions
diff --git a/compiler/src/dotty/tools/dotc/core/classfile/ClassfileParser.scala b/compiler/src/dotty/tools/dotc/core/classfile/ClassfileParser.scala index bc140c26b..e0b233ce8 100644 --- a/compiler/src/dotty/tools/dotc/core/classfile/ClassfileParser.scala +++ b/compiler/src/dotty/tools/dotc/core/classfile/ClassfileParser.scala @@ -661,7 +661,7 @@ class ClassfileParser( for (entry <- innerClasses.values) { // create a new class member for immediate inner classes if (entry.outerName == currentClassName) { - val file = ctx.platform.classPath.findSourceFile(entry.externalName.toString) getOrElse { + val file = ctx.platform.classPath.findBinaryFile(entry.externalName.toString) getOrElse { throw new AssertionError(entry.externalName) } enterClassAndModule(entry, file, entry.jflags) diff --git a/compiler/src/dotty/tools/io/ClassPath.scala b/compiler/src/dotty/tools/io/ClassPath.scala index 413d095c4..5e77c1b61 100644 --- a/compiler/src/dotty/tools/io/ClassPath.scala +++ b/compiler/src/dotty/tools/io/ClassPath.scala @@ -240,20 +240,13 @@ abstract class ClassPath { def findClass(name: String): Option[AnyClassRep] = name.splitWhere(_ == '.', doDropIndex = true) match { case Some((pkg, rest)) => - val rep = packages find (_.name == pkg) flatMap (_ findClass rest) - rep map { - case x: AnyClassRep => x - case x => throw new FatalError("Unexpected ClassRep '%s' found searching for name '%s'".format(x, name)) - } + packages find (_.name == pkg) flatMap (_ findClass rest) case _ => classes find (_.name == name) } - def findSourceFile(name: String): Option[AbstractFile] = - findClass(name) match { - case Some(ClassRep(Some(x: AbstractFile), _)) => Some(x) - case _ => None - } + def findBinaryFile(name: String): Option[AbstractFile] = + findClass(name).flatMap(_.binary) def sortString = join(split(asClasspathString).sorted: _*) |