Skip to content

Commit 54c9222

Browse files
committed
comments
1 parent 2059a9a commit 54c9222

File tree

2 files changed

+17
-11
lines changed

2 files changed

+17
-11
lines changed

compiler/src/dotty/tools/dotc/classpath/AggregateClassPath.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,9 @@ case class AggregateClassPath(aggregates: Seq[ClassPath]) extends ClassPath {
133133
mergedEntries(index) = BinaryAndSourceFilesEntry(entry, existing)
134134
case (entry @ TastyFileEntry(_, None), _: ClassFileEntry) =>
135135
mergedEntries(index) = entry
136+
// Here we do not create a TastyFileEntry(entry.file, existing.source.get)
137+
// because the TASTy and the the classfile come from different classpaths.
138+
// These may not have the same TASTy UUID.
136139
case (entry @ TastyFileEntry(_, None), BinaryAndSourceFilesEntry(_: ClassFileEntry, sourceEntry)) =>
137140
mergedEntries(index) = BinaryAndSourceFilesEntry(entry, sourceEntry)
138141
case _ =>

compiler/src/dotty/tools/dotc/classpath/ClassPath.scala

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,6 @@ object ClassPathEntries {
1414
val empty = ClassPathEntries(Seq.empty, Seq.empty)
1515
}
1616

17-
trait BinaryFileEntry extends ClassRepresentation {
18-
def file: AbstractFile
19-
final def fileName: String = file.name
20-
final def name: String = FileUtils.stripClassExtension(file.name) // class name
21-
final def source: Option[AbstractFile] = None
22-
}
23-
2417
case class PackageName(dottedString: String) {
2518
val dirPathTrailingSlashJar: String = FileUtils.dirPathInJar(dottedString) + "/"
2619

@@ -47,24 +40,34 @@ trait PackageEntry {
4740
def name: String
4841
}
4942

50-
private[dotty] case class ClassFileEntry(file: AbstractFile) extends BinaryFileEntry {
43+
/** A TASTy file or classfile */
44+
sealed trait BinaryFileEntry extends ClassRepresentation {
45+
def file: AbstractFile
46+
final def fileName: String = file.name
47+
final def name: String = FileUtils.stripClassExtension(file.name) // class name
48+
final def source: Option[AbstractFile] = None
49+
}
50+
51+
/** A classfile or .sig that does not have an associated TASTy file */
52+
private[dotty] final case class ClassFileEntry(file: AbstractFile) extends BinaryFileEntry {
5153
def classfile: Option[AbstractFile] = Some(file)
5254
def tasty: Option[AbstractFile] = None
5355
}
5456

55-
private[dotty] case class TastyFileEntry(file: AbstractFile, classfile: Option[AbstractFile]) extends BinaryFileEntry {
57+
/** A TASTy file that may have an associated TASTy */
58+
private[dotty] final case class TastyFileEntry(file: AbstractFile, classfile: Option[AbstractFile]) extends BinaryFileEntry {
5659
def tasty: Option[AbstractFile] = Some(file)
5760
}
5861

59-
private[dotty] case class SourceFileEntry(file: AbstractFile) extends ClassRepresentation {
62+
private[dotty] final case class SourceFileEntry(file: AbstractFile) extends ClassRepresentation {
6063
final def fileName: String = file.name
6164
def name: String = FileUtils.stripSourceExtension(file.name)
6265
def classfile: Option[AbstractFile] = None
6366
def tasty: Option[AbstractFile] = None
6467
def source: Option[AbstractFile] = Some(file)
6568
}
6669

67-
private[dotty] case class BinaryAndSourceFilesEntry(binaryEntry: BinaryFileEntry, sourceEntry: SourceFileEntry) extends ClassRepresentation {
70+
private[dotty] final case class BinaryAndSourceFilesEntry(binaryEntry: BinaryFileEntry, sourceEntry: SourceFileEntry) extends ClassRepresentation {
6871
final def fileName: String = binaryEntry.fileName
6972
def name: String = binaryEntry.name
7073
def classfile: Option[AbstractFile] = binaryEntry.classfile

0 commit comments

Comments
 (0)