mirror of https://github.com/sbt/sbt.git
Replace sealed traits by abstract classes in order to generate less byte code
This commit is contained in:
parent
2ca57527eb
commit
56192a2cca
|
|
@ -571,31 +571,29 @@ object Cache {
|
|||
|
||||
}
|
||||
|
||||
sealed trait FileError extends Product with Serializable {
|
||||
def message: String
|
||||
}
|
||||
sealed abstract class FileError(val message: String) extends Product with Serializable
|
||||
|
||||
object FileError {
|
||||
|
||||
case class DownloadError(message0: String) extends FileError {
|
||||
def message = s"Download error: $message0"
|
||||
}
|
||||
case class NotFound(file: String) extends FileError {
|
||||
def message = s"Not found: $file"
|
||||
}
|
||||
case class ChecksumNotFound(sumType: String, file: String) extends FileError {
|
||||
def message = s"$sumType checksum not found: $file"
|
||||
}
|
||||
case class WrongChecksum(sumType: String, got: String, expected: String, file: String, sumFile: String) extends FileError {
|
||||
def message = s"$sumType checksum validation failed: $file"
|
||||
}
|
||||
final case class DownloadError(reason: String) extends FileError(s"Download error: $reason")
|
||||
|
||||
sealed trait Recoverable extends FileError
|
||||
case class Locked(file: File) extends Recoverable {
|
||||
def message = s"Locked: $file"
|
||||
}
|
||||
case class ConcurrentDownload(url: String) extends Recoverable {
|
||||
def message = s"Concurrent download: $url"
|
||||
}
|
||||
final case class NotFound(file: String) extends FileError(s"Not found: $file")
|
||||
|
||||
final case class ChecksumNotFound(
|
||||
sumType: String,
|
||||
file: String
|
||||
) extends FileError(s"$sumType checksum not found: $file")
|
||||
|
||||
final case class WrongChecksum(
|
||||
sumType: String,
|
||||
got: String,
|
||||
expected: String,
|
||||
file: String,
|
||||
sumFile: String
|
||||
) extends FileError(s"$sumType checksum validation failed: $file")
|
||||
|
||||
sealed abstract class Recoverable(message: String) extends FileError(message)
|
||||
final case class Locked(file: File) extends Recoverable(s"Locked: $file")
|
||||
final case class ConcurrentDownload(url: String) extends Recoverable(s"Concurrent download: $url")
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
package coursier
|
||||
|
||||
sealed trait CachePolicy extends Product with Serializable
|
||||
sealed abstract class CachePolicy extends Product with Serializable
|
||||
|
||||
object CachePolicy {
|
||||
case object LocalOnly extends CachePolicy
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ case class CacheOptions(
|
|||
cache: String = Cache.defaultBase.toString
|
||||
)
|
||||
|
||||
sealed trait CoursierCommand extends Command
|
||||
sealed abstract class CoursierCommand extends Command
|
||||
|
||||
case class Resolve(
|
||||
@Recurse
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import scalaz._
|
|||
import scala.annotation.tailrec
|
||||
|
||||
|
||||
sealed trait ResolutionProcess {
|
||||
sealed abstract class ResolutionProcess {
|
||||
def run[F[_]](
|
||||
fetch: Fetch.Metadata[F],
|
||||
maxIterations: Int = 50
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ case class Version(repr: String) extends Ordered[Version] {
|
|||
|
||||
object Version {
|
||||
|
||||
sealed trait Item extends Ordered[Item] {
|
||||
sealed abstract class Item extends Ordered[Item] {
|
||||
def compare(other: Item): Int =
|
||||
(this, other) match {
|
||||
case (Number(a), Number(b)) => a.compare(b)
|
||||
|
|
@ -43,7 +43,7 @@ object Version {
|
|||
def compareToEmpty: Int = 1
|
||||
}
|
||||
|
||||
sealed trait Numeric extends Item {
|
||||
sealed abstract class Numeric extends Item {
|
||||
def repr: String
|
||||
def next: Numeric
|
||||
}
|
||||
|
|
@ -93,7 +93,7 @@ object Version {
|
|||
val qualifiersMap = qualifiers.map(q => q.value -> q).toMap
|
||||
|
||||
object Tokenizer {
|
||||
sealed trait Separator
|
||||
sealed abstract class Separator
|
||||
case object Dot extends Separator
|
||||
case object Hyphen extends Separator
|
||||
case object Underscore extends Separator
|
||||
|
|
|
|||
|
|
@ -82,21 +82,23 @@ object VersionInterval {
|
|||
val zero = VersionInterval(None, None, fromIncluded = false, toIncluded = false)
|
||||
}
|
||||
|
||||
sealed trait VersionConstraint {
|
||||
def interval: VersionInterval
|
||||
def repr: String
|
||||
}
|
||||
sealed abstract class VersionConstraint(
|
||||
val interval: VersionInterval,
|
||||
val repr: String
|
||||
)
|
||||
|
||||
object VersionConstraint {
|
||||
/** Currently treated as minimum... */
|
||||
final case class Preferred(version: Version) extends VersionConstraint {
|
||||
def interval: VersionInterval = VersionInterval(Some(version), Option.empty, fromIncluded = true, toIncluded = false)
|
||||
def repr: String = version.repr
|
||||
}
|
||||
final case class Interval(interval: VersionInterval) extends VersionConstraint {
|
||||
def repr: String = interval.repr
|
||||
}
|
||||
case object None extends VersionConstraint {
|
||||
val interval = VersionInterval.zero
|
||||
def repr: String = "" // Once parsed, "(,)" becomes "" because of this
|
||||
}
|
||||
final case class Preferred(version: Version) extends VersionConstraint(
|
||||
VersionInterval(Some(version), Option.empty, fromIncluded = true, toIncluded = false),
|
||||
version.repr
|
||||
)
|
||||
final case class Interval(interval0: VersionInterval) extends VersionConstraint(
|
||||
interval0,
|
||||
interval0.repr
|
||||
)
|
||||
case object None extends VersionConstraint(
|
||||
VersionInterval.zero,
|
||||
"" // Once parsed, "(,)" becomes "" because of this
|
||||
)
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue