From 1e851953c09df5bc39bd3d7416b7d751280d36b7 Mon Sep 17 00:00:00 2001 From: Dale Wijnand Date: Fri, 4 Aug 2017 11:21:56 +0100 Subject: [PATCH] Fix doc erroring Scaladoc 2.10 struggles with FastTypeTag's macro. Fixes #2812 --- .travis.yml | 5 ++--- ivy/src/main/scala/sbt/Artifact.scala | 15 ++++++++++----- ivy/src/main/scala/sbt/CrossVersion.scala | 13 ++++++++----- ivy/src/main/scala/sbt/UpdateReport.scala | 14 +++++++++----- 4 files changed, 29 insertions(+), 18 deletions(-) diff --git a/.travis.yml b/.travis.yml index d917c6885..28b757fe9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,7 +15,7 @@ jdk: env: matrix: - - SBT_CMD="safeUnitTests" + - SBT_CMD=";doc;safeUnitTests" - SBT_CMD="otherUnitTests" - SBT_CMD="scripted actions/*" - SBT_CMD="scripted api/*" @@ -41,8 +41,7 @@ env: notifications: email: - - eugene.yokota@typesafe.com - - joshua.suereth@typesafe.com + - sbt-dev-bot@googlegroups.com script: - sbt -J-XX:ReservedCodeCacheSize=128m "$SBT_CMD" diff --git a/ivy/src/main/scala/sbt/Artifact.scala b/ivy/src/main/scala/sbt/Artifact.scala index e75b5432e..e174e83da 100644 --- a/ivy/src/main/scala/sbt/Artifact.scala +++ b/ivy/src/main/scala/sbt/Artifact.scala @@ -97,6 +97,14 @@ object Artifact { def classified(name: String, classifier: String): Artifact = Artifact(name, classifierType(classifier), DefaultExtension, Some(classifier), classifierConf(classifier) :: Nil, None) + // WORKAROUND sbt/sbt#2812 scaladoc 2.10 struggles with FastTypeTag's macro + import scala.pickling.FastTypeTag + private[this] implicit val tag: FastTypeTag[Artifact] = FastTypeTag.apply + private[this] implicit val optionStringTag: FastTypeTag[Option[String]] = FastTypeTag.apply + private[this] implicit val configurationTag: FastTypeTag[Configuration] = FastTypeTag.apply + private[this] implicit val vectorConfigurationTag: FastTypeTag[Vector[Configuration]] = FastTypeTag.apply + private[this] implicit val stringStringMapTag: FastTypeTag[Map[String, String]] = FastTypeTag.apply + private val optStringPickler = implicitly[Pickler[Option[String]]] private val optStringUnpickler = implicitly[Unpickler[Option[String]]] private val vectorConfigurationPickler = implicitly[Pickler[Vector[Configuration]]] @@ -105,11 +113,8 @@ object Artifact { private val stringStringMapUnpickler = implicitly[Unpickler[Map[String, String]]] implicit val pickler: Pickler[Artifact] = new Pickler[Artifact] { - val tag = implicitly[FastTypeTag[Artifact]] + val tag = Artifact.this.tag val stringTag = implicitly[FastTypeTag[String]] - val optionStringTag = implicitly[FastTypeTag[Option[String]]] - val vectorConfigurationTag = implicitly[FastTypeTag[Vector[Configuration]]] - val stringStringMapTag = implicitly[FastTypeTag[Map[String, String]]] def pickle(a: Artifact, builder: PBuilder): Unit = { builder.pushHints() builder.hintTag(tag) @@ -147,7 +152,7 @@ object Artifact { } } implicit val unpickler: Unpickler[Artifact] = new Unpickler[Artifact] { - val tag = implicitly[FastTypeTag[Artifact]] + val tag = Artifact.this.tag def unpickle(tpe: String, reader: PReader): Any = { reader.pushHints() // reader.hintTag(tag) diff --git a/ivy/src/main/scala/sbt/CrossVersion.scala b/ivy/src/main/scala/sbt/CrossVersion.scala index cedd6321d..226fc98df 100644 --- a/ivy/src/main/scala/sbt/CrossVersion.scala +++ b/ivy/src/main/scala/sbt/CrossVersion.scala @@ -36,11 +36,14 @@ object CrossVersion { override def toString = "Full" } - private val disabledTag = implicitly[FastTypeTag[Disabled.type]] - private val binaryTag = implicitly[FastTypeTag[Binary]] - private val fullTag = implicitly[FastTypeTag[Full]] + // WORKAROUND sbt/sbt#2812 scaladoc 2.10 struggles with FastTypeTag's macro + import scala.pickling.FastTypeTag + private[this] val tag = FastTypeTag[CrossVersion] + private val disabledTag = FastTypeTag[Disabled.type] + private val binaryTag = FastTypeTag[Binary] + private val fullTag = FastTypeTag[Full] implicit val pickler: Pickler[CrossVersion] = new Pickler[CrossVersion] { - val tag = implicitly[FastTypeTag[CrossVersion]] + val tag = CrossVersion.this.tag def pickle(a: CrossVersion, builder: PBuilder): Unit = { builder.pushHints() builder.hintTag(a match { @@ -54,7 +57,7 @@ object CrossVersion { } } implicit val unpickler: Unpickler[CrossVersion] = new Unpickler[CrossVersion] { - val tag = implicitly[FastTypeTag[CrossVersion]] + val tag = CrossVersion.this.tag def unpickle(tpe: String, reader: PReader): Any = { reader.pushHints() reader.hintTag(tag) diff --git a/ivy/src/main/scala/sbt/UpdateReport.scala b/ivy/src/main/scala/sbt/UpdateReport.scala index 6cb401c5f..cdd153ada 100644 --- a/ivy/src/main/scala/sbt/UpdateReport.scala +++ b/ivy/src/main/scala/sbt/UpdateReport.scala @@ -302,6 +302,14 @@ object UpdateReport { } } + // WORKAROUND sbt/sbt#2812 scaladoc 2.10 struggles with FastTypeTag's macro + import scala.pickling.FastTypeTag + private[this] implicit val configurationReportTag: FastTypeTag[ConfigurationReport] = FastTypeTag.apply + private[this] implicit val vectorConfigurationReportTag: FastTypeTag[Vector[ConfigurationReport]] = FastTypeTag.apply + private[this] implicit val updateStatsTag: FastTypeTag[UpdateStats] = FastTypeTag.apply + private[this] implicit val fileTag: FastTypeTag[File] = FastTypeTag.apply + private[this] implicit val flMapTag: FastTypeTag[Map[File, Long]] = FastTypeTag.apply + private val vectorConfigurationReportPickler = implicitly[Pickler[Vector[ConfigurationReport]]] private val vectorConfigurationReportUnpickler = implicitly[Unpickler[Vector[ConfigurationReport]]] private val updateStatsPickler = implicitly[Pickler[UpdateStats]] @@ -310,11 +318,7 @@ object UpdateReport { private val flMapUnpickler = implicitly[Unpickler[Map[File, Long]]] implicit val pickler: Pickler[UpdateReport] with Unpickler[UpdateReport] = new Pickler[UpdateReport] with Unpickler[UpdateReport] { - val tag = implicitly[FastTypeTag[UpdateReport]] - val fileTag = implicitly[FastTypeTag[File]] - val vectorConfigurationReportTag = implicitly[FastTypeTag[Vector[ConfigurationReport]]] - val updateStatsTag = implicitly[FastTypeTag[UpdateStats]] - val flMapTag = implicitly[FastTypeTag[Map[File, Long]]] + val tag: FastTypeTag[UpdateReport] = FastTypeTag.apply def pickle(a: UpdateReport, builder: PBuilder): Unit = { builder.pushHints() builder.hintTag(tag)