@@ -19,10 +19,6 @@ trait BinaryFileEntry extends ClassRepresentation {
19
19
def binary : Option [AbstractFile ] = Some (file)
20
20
}
21
21
22
- trait SourceFileEntry extends ClassRepresentation {
23
- def file : AbstractFile
24
- }
25
-
26
22
case class PackageName (dottedString : String ) {
27
23
val dirPathTrailingSlashJar : String = FileUtils .dirPathInJar(dottedString) + " /"
28
24
@@ -64,7 +60,7 @@ private[dotty] case class TastyFileEntry(file: AbstractFile, classfile: Option[A
64
60
def source : Option [AbstractFile ] = None
65
61
}
66
62
67
- private [dotty] case class SourceFileEntryImpl (file : AbstractFile ) extends SourceFileEntry {
63
+ private [dotty] case class SourceFileEntry (file : AbstractFile ) extends ClassRepresentation {
68
64
final def fileName : String = file.name
69
65
def name : String = FileUtils .stripSourceExtension(file.name)
70
66
def binary : Option [AbstractFile ] = None
@@ -73,17 +69,16 @@ private[dotty] case class SourceFileEntryImpl(file: AbstractFile) extends Source
73
69
def source : Option [AbstractFile ] = Some (file)
74
70
}
75
71
76
- private [dotty] case class ClassAndSourceFilesEntry (classfile : Option [AbstractFile ], tasty : Option [AbstractFile ], srcFile : AbstractFile ) extends ClassRepresentation {
77
- assert(classfile.isDefined || tasty.isDefined)
78
- assert(classfile.map(_.`extension` == " class" ).getOrElse(true ), classfile)
79
- assert(tasty.map(_.`extension` == " tasty" ).getOrElse(true ), tasty)
80
-
81
- private def classFile = tasty.getOrElse(classfile.get)
82
-
83
- final def fileName : String = classFile.name
84
- def name : String = FileUtils .stripClassExtension(classFile.name)
85
- def binary : Option [AbstractFile ] = tasty.orElse(classfile)
86
- def source : Option [AbstractFile ] = Some (srcFile)
72
+ private [dotty] case class BinaryAndSourceFilesEntry (binaryEntry : ClassRepresentation , sourceEntry : ClassRepresentation ) extends ClassRepresentation {
73
+ // TODO set these types in constructor
74
+ assert(binaryEntry.isInstanceOf [BinaryFileEntry ])
75
+ assert(sourceEntry.isInstanceOf [SourceFileEntry ])
76
+ final def fileName : String = binaryEntry.fileName
77
+ def name : String = binaryEntry.name
78
+ def binary : Option [AbstractFile ] = binaryEntry.binary
79
+ def classfile : Option [AbstractFile ] = binaryEntry.classfile
80
+ def tasty : Option [AbstractFile ] = binaryEntry.tasty
81
+ def source : Option [AbstractFile ] = sourceEntry.source
87
82
}
88
83
89
84
private [dotty] case class PackageEntryImpl (name : String ) extends PackageEntry
@@ -97,7 +92,3 @@ private[dotty] trait NoClassPaths {
97
92
def findClassFile (className : String ): Option [AbstractFile ] = None
98
93
private [dotty] def classes (inPackage : PackageName ): Seq [BinaryFileEntry ] = Seq .empty
99
94
}
100
- private [dotty] object ClassAndSourceFilesEntry {
101
- def apply (binary : ClassRepresentation , source : AbstractFile ): ClassRepresentation =
102
- ClassAndSourceFilesEntry (binary.classfile, binary.tasty, source)
103
- }
0 commit comments