From 91af1c61c46749bb8e92bd94c2028da6e0b9c374 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Tue, 23 Feb 2016 04:02:33 -0500 Subject: [PATCH] This is a Pickling workaround so we can generate Scala docs --- ivy/src/main/scala/sbt/Artifact.scala | 2 ++ ivy/src/main/scala/sbt/CrossVersion.scala | 2 ++ ivy/src/main/scala/sbt/JsonUtil.scala | 4 ++++ ivy/src/main/scala/sbt/ModuleID.scala | 2 ++ ivy/src/main/scala/sbt/UpdateReport.scala | 6 ++++++ 5 files changed, 16 insertions(+) diff --git a/ivy/src/main/scala/sbt/Artifact.scala b/ivy/src/main/scala/sbt/Artifact.scala index 4cafb0e67f6..042accbbccf 100644 --- a/ivy/src/main/scala/sbt/Artifact.scala +++ b/ivy/src/main/scala/sbt/Artifact.scala @@ -80,6 +80,8 @@ object Artifact { private val stringStringMapPickler = implicitly[Pickler[Map[String, String]]] private val stringStringMapUnpickler = implicitly[Unpickler[Map[String, String]]] + implicit def fasttypetag[A]: FastTypeTag[A] = ??? + implicit val pickler: Pickler[Artifact] = new Pickler[Artifact] { val tag = implicitly[FastTypeTag[Artifact]] val stringTag = implicitly[FastTypeTag[String]] diff --git a/ivy/src/main/scala/sbt/CrossVersion.scala b/ivy/src/main/scala/sbt/CrossVersion.scala index b17ac525c0e..b9a16053a3b 100644 --- a/ivy/src/main/scala/sbt/CrossVersion.scala +++ b/ivy/src/main/scala/sbt/CrossVersion.scala @@ -9,6 +9,8 @@ final case class ScalaVersion(full: String, binary: String) sealed trait CrossVersion object CrossVersion { + implicit def fasttypetag[A]: FastTypeTag[A] = ??? + /** The first `major.minor` Scala version that the Scala binary version should be used for cross-versioning instead of the full version. */ val TransitionScalaVersion = CrossVersionUtil.TransitionScalaVersion diff --git a/ivy/src/main/scala/sbt/JsonUtil.scala b/ivy/src/main/scala/sbt/JsonUtil.scala index d4db781f7e1..12490af685f 100644 --- a/ivy/src/main/scala/sbt/JsonUtil.scala +++ b/ivy/src/main/scala/sbt/JsonUtil.scala @@ -79,10 +79,14 @@ private[sbt] object JsonUtil { private[sbt] case class UpdateReportLite(configurations: Seq[ConfigurationReportLite]) private[sbt] object UpdateReportLite { + implicit def fasttypetag[A]: FastTypeTag[A] = ??? + implicit val pickler: Pickler[UpdateReportLite] with Unpickler[UpdateReportLite] = PicklerUnpickler.generate[UpdateReportLite] } private[sbt] case class ConfigurationReportLite(configuration: String, details: Seq[OrganizationArtifactReport]) private[sbt] object ConfigurationReportLite { + implicit def fasttypetag[A]: FastTypeTag[A] = ??? + implicit val pickler: Pickler[ConfigurationReportLite] with Unpickler[ConfigurationReportLite] = PicklerUnpickler.generate[ConfigurationReportLite] } diff --git a/ivy/src/main/scala/sbt/ModuleID.scala b/ivy/src/main/scala/sbt/ModuleID.scala index 10647dcad47..b07995f2fbb 100644 --- a/ivy/src/main/scala/sbt/ModuleID.scala +++ b/ivy/src/main/scala/sbt/ModuleID.scala @@ -120,6 +120,8 @@ final case class ModuleID(organization: String, name: String, revision: String, def jar() = artifacts(Artifact(name)) } object ModuleID { + implicit def fasttypetag[A]: FastTypeTag[A] = ??? + implicit val pickler: Pickler[ModuleID] with Unpickler[ModuleID] = PicklerUnpickler.generate[ModuleID] /** Prefixes all keys with `e:` if they are not already so prefixed. */ diff --git a/ivy/src/main/scala/sbt/UpdateReport.scala b/ivy/src/main/scala/sbt/UpdateReport.scala index 6cb401c5f3e..ce1c553400d 100644 --- a/ivy/src/main/scala/sbt/UpdateReport.scala +++ b/ivy/src/main/scala/sbt/UpdateReport.scala @@ -44,6 +44,7 @@ final class ConfigurationReport( new ConfigurationReport(configuration, modules map { _.retrieve((mid, art, file) => f(configuration, mid, art, file)) }, details, evicted) } object ConfigurationReport { + implicit def fasttypetag[A]: FastTypeTag[A] = ??? implicit val pickler: Pickler[ConfigurationReport] with Unpickler[ConfigurationReport] = PicklerUnpickler.generate[ConfigurationReport] } @@ -68,6 +69,7 @@ final class OrganizationArtifactReport private[sbt] ( } } object OrganizationArtifactReport { + implicit def fasttypetag[A]: FastTypeTag[A] = ??? implicit val pickler: Pickler[OrganizationArtifactReport] with Unpickler[OrganizationArtifactReport] = PicklerUnpickler.generate[OrganizationArtifactReport] def apply(organization: String, name: String, modules: Seq[ModuleReport]): OrganizationArtifactReport = @@ -162,6 +164,8 @@ final class ModuleReport( } object ModuleReport { + implicit def fasttypetag[A]: FastTypeTag[A] = ??? + def apply(module: ModuleID, artifacts: Seq[(Artifact, File)], missingArtifacts: Seq[Artifact]): ModuleReport = new ModuleReport(module, artifacts, missingArtifacts, None, None, None, None, false, None, None, None, None, Map(), None, None, Nil, Nil, Nil) @@ -233,6 +237,8 @@ final class UpdateReport(val cachedDescriptor: File, val configurations: Seq[Con } object UpdateReport { + implicit def fasttypetag[A]: FastTypeTag[A] = ??? + implicit def richUpdateReport(report: UpdateReport): RichUpdateReport = new RichUpdateReport(report) /** Provides extra methods for filtering the contents of an `UpdateReport` and for obtaining references to a selected subset of the underlying files. */