From feda07b896a5be3e7bfd548049e198e90636b01b Mon Sep 17 00:00:00 2001 From: Martin Duhem Date: Sun, 24 Jul 2016 21:42:03 +0100 Subject: [PATCH] Adapt to recent changes to sjson-new --- .../sbt/internal/util/AdditionalFormats.scala | 8 ++++---- .../scala/sbt/internal/util/StampedFormat.scala | 16 +++++++--------- project/Dependencies.scala | 2 +- 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/internal/util-cache/src/main/scala/sbt/internal/util/AdditionalFormats.scala b/internal/util-cache/src/main/scala/sbt/internal/util/AdditionalFormats.scala index 00fc195ef..8008cf90a 100644 --- a/internal/util-cache/src/main/scala/sbt/internal/util/AdditionalFormats.scala +++ b/internal/util-cache/src/main/scala/sbt/internal/util/AdditionalFormats.scala @@ -10,19 +10,19 @@ import java.io.{ ByteArrayInputStream, ByteArrayOutputStream, File, InputStream, import java.net.{ URI, URL } trait URIFormat { self: BasicJsonProtocol => - implicit def URIFormat: JsonFormat[URI] = wrap(_.toString, new URI(_: String)) + implicit def URIFormat: JsonFormat[URI] = project(_.toString, new URI(_: String)) } trait URLFormat { self: BasicJsonProtocol => - implicit def URLFormat: JsonFormat[URL] = wrap(_.toString, new URL(_: String)) + implicit def URLFormat: JsonFormat[URL] = project(_.toString, new URL(_: String)) } trait FileFormat { self: BasicJsonProtocol => - implicit def FileFormat: JsonFormat[File] = wrap(_.toString, new File(_: String)) + implicit def FileFormat: JsonFormat[File] = project(_.toString, new File(_: String)) } trait SetFormat { self: BasicJsonProtocol => - implicit def SetFormat[T: JsonFormat]: JsonFormat[Set[T]] = wrap(_.toSeq, (_: Seq[T]).toSet) + implicit def SetFormat[T: JsonFormat]: JsonFormat[Set[T]] = project(_.toSeq, (_: Seq[T]).toSet) } trait HListFormat { diff --git a/internal/util-cache/src/main/scala/sbt/internal/util/StampedFormat.scala b/internal/util-cache/src/main/scala/sbt/internal/util/StampedFormat.scala index 1e11214bd..213f50ec5 100644 --- a/internal/util-cache/src/main/scala/sbt/internal/util/StampedFormat.scala +++ b/internal/util-cache/src/main/scala/sbt/internal/util/StampedFormat.scala @@ -15,15 +15,13 @@ object StampedFormat extends BasicJsonProtocol { override def read[J](jsOpt: Option[J], unbuilder: Unbuilder[J]): T = jsOpt match { case Some(js) => - unbuilder.extractArray(js) match { - case Vector(readStamp, readValue) => - val actualStamp = formatStamp.read(Some(readStamp), unbuilder) - if (equivStamp.equiv(actualStamp, stamp)) format.read(Some(readValue), unbuilder) - else sys.error(s"Incorrect stamp. Expected: $stamp, Found: $readStamp") - - case other => - deserializationError(s"Expected JsArray of size 2, but found JsArray of size ${other.size}") - } + val stampedLength = unbuilder.beginArray(js) + if (stampedLength != 2) sys.error(s"Expected JsArray of size 2, found JsArray of size $stampedLength.") + val readStamp = unbuilder.nextElement + val readValue = unbuilder.nextElement + val actualStamp = formatStamp.read(Some(readStamp), unbuilder) + if (equivStamp.equiv(actualStamp, stamp)) format.read(Some(readValue), unbuilder) + else sys.error(s"Incorrect stamp. Expected: $stamp, Found: $readStamp") case None => deserializationError("Expected JsArray but found None.") diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 4777365c4..8be45ba91 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -26,7 +26,7 @@ object Dependencies { lazy val parserCombinator211 = "org.scala-lang.modules" %% "scala-parser-combinators" % "1.0.4" - lazy val sjsonnewVersion = "0.4.0" + lazy val sjsonnewVersion = "0.4.1" lazy val sjsonnew = "com.eed3si9n" %% "sjson-new-core" % sjsonnewVersion lazy val sjsonnewScalaJson = "com.eed3si9n" %% "sjson-new-scalajson" % sjsonnewVersion }