summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.sbt6
-rw-r--r--core/src/main/scala/mill/discover/Mirror.scala5
-rw-r--r--core/src/main/scala/mill/eval/PathRef.scala6
-rw-r--r--core/src/main/scala/mill/util/JsonFormatters.scala25
-rw-r--r--core/src/test/scala/mill/discover/DiscoveredTests.scala2
-rw-r--r--core/src/test/scala/mill/eval/JavaCompileJarTests.scala1
-rw-r--r--scalaplugin/src/main/scala/mill/scalaplugin/Dep.scala11
7 files changed, 31 insertions, 25 deletions
diff --git a/build.sbt b/build.sbt
index f9294429..12137fa1 100644
--- a/build.sbt
+++ b/build.sbt
@@ -9,10 +9,11 @@ val sharedSettings = Seq(
test in assembly := {},
libraryDependencies += "com.lihaoyi" %% "acyclic" % "0.1.7" % "provided",
+ resolvers += Resolver.sonatypeRepo("releases"),
scalacOptions += "-P:acyclic:force",
autoCompilerPlugins := true,
addCompilerPlugin("com.lihaoyi" %% "acyclic" % "0.1.7"),
- libraryDependencies += "com.lihaoyi" % "ammonite" % "1.0.3" % "test" cross CrossVersion.full,
+ libraryDependencies += "com.lihaoyi" % "ammonite" % "1.0.3-9-b0b068a" % "test" cross CrossVersion.full,
sourceGenerators in Test += Def.task {
val file = (sourceManaged in Test).value / "amm.scala"
@@ -90,7 +91,8 @@ lazy val core = project
"org.scala-lang" % "scala-reflect" % scalaVersion.value % "provided",
"com.lihaoyi" %% "sourcecode" % "0.1.4",
"com.lihaoyi" %% "pprint" % "0.5.3",
- "com.lihaoyi" % "ammonite" % "1.0.3" cross CrossVersion.full,
+ "com.lihaoyi" %% "upickle" % "0.5.1",
+ "com.lihaoyi" % "ammonite" % "1.0.3-9-b0b068a" cross CrossVersion.full,
"org.scala-sbt" %% "zinc" % "1.0.5",
"org.scala-sbt" % "test-interface" % "1.0"
)
diff --git a/core/src/main/scala/mill/discover/Mirror.scala b/core/src/main/scala/mill/discover/Mirror.scala
index 6293e599..41b3a0fe 100644
--- a/core/src/main/scala/mill/discover/Mirror.scala
+++ b/core/src/main/scala/mill/discover/Mirror.scala
@@ -76,7 +76,10 @@ object Mirror{
}
def makeTargetPoint[T, V](label: String, func: T => Target[V])
- (implicit f: upickle.default.ReadWriter[V]) = {
+ (implicit f1: upickle.default.Reader[V],
+ f2: upickle.default.Writer[V]) = {
+
+ val f = upickle.default.ReadWriter(f2.write, f1.read)
TargetPoint(label, f, func)
}
}
diff --git a/core/src/main/scala/mill/eval/PathRef.scala b/core/src/main/scala/mill/eval/PathRef.scala
index 433e9f5c..784d9ad4 100644
--- a/core/src/main/scala/mill/eval/PathRef.scala
+++ b/core/src/main/scala/mill/eval/PathRef.scala
@@ -5,7 +5,7 @@ import java.nio.file.attribute.BasicFileAttributes
import java.nio.file.{FileVisitResult, FileVisitor}
import java.nio.{file => jnio}
import java.security.MessageDigest
-
+import upickle.default.{ReadWriter => RW}
import ammonite.ops.Path
import mill.util.JsonFormatters
@@ -63,6 +63,6 @@ case class PathRef(path: ammonite.ops.Path, quick: Boolean = false){
}
object PathRef{
- private implicit val pathFormat: upickle.default.ReadWriter[Path] = JsonFormatters.pathReadWrite
- implicit def jsonFormatter: upickle.default.ReadWriter[PathRef] = upickle.default.macroRW
+ private implicit val pathFormat: RW[Path] = JsonFormatters.pathReadWrite
+ implicit def jsonFormatter: RW[PathRef] = upickle.default.macroRW
}
diff --git a/core/src/main/scala/mill/util/JsonFormatters.scala b/core/src/main/scala/mill/util/JsonFormatters.scala
index bce23468..d8125ff2 100644
--- a/core/src/main/scala/mill/util/JsonFormatters.scala
+++ b/core/src/main/scala/mill/util/JsonFormatters.scala
@@ -1,28 +1,23 @@
package mill.util
import ammonite.ops.{Bytes, Path}
-
+import upickle.default.{ReadWriter => RW}
object JsonFormatters extends JsonFormatters
trait JsonFormatters {
- implicit def readWriter[T: upickle.default.Reader: upickle.default.Writer] =
- upickle.default.ReadWriter(
- implicitly[upickle.default.Writer[T]].write,
- implicitly[upickle.default.Reader[T]].read,
- )
- implicit val pathReadWrite = upickle.default.ReadWriter[ammonite.ops.Path](
+ implicit val pathReadWrite: RW[ammonite.ops.Path] = RW[ammonite.ops.Path](
o => upickle.Js.Str(o.toString()),
- {case upickle.Js.Str(json) => Path(json)},
+ {case upickle.Js.Str(json) => Path(json.toString)},
)
- implicit val bytesReadWrite = upickle.default.ReadWriter[Bytes](
+ implicit val bytesReadWrite: RW[Bytes] = RW[Bytes](
o => upickle.Js.Str(javax.xml.bind.DatatypeConverter.printBase64Binary(o.array)),
- {case upickle.Js.Str(json) => new Bytes(javax.xml.bind.DatatypeConverter.parseBase64Binary(json))}
+ {case upickle.Js.Str(json) => new Bytes(javax.xml.bind.DatatypeConverter.parseBase64Binary(json.toString))}
)
- implicit lazy val crFormat: upickle.default.ReadWriter[ammonite.ops.CommandResult] =
- upickle.default.macroRW
- implicit lazy val modFormat: upickle.default.ReadWriter[coursier.Module] = upickle.default.macroRW
- implicit lazy val depFormat: upickle.default.ReadWriter[coursier.Dependency]= upickle.default.macroRW
- implicit lazy val attrFormat: upickle.default.ReadWriter[coursier.Attributes] = upickle.default.macroRW
+ implicit lazy val crFormat: RW[ammonite.ops.CommandResult] = upickle.default.macroRW
+
+ implicit lazy val modFormat: RW[coursier.Module] = upickle.default.macroRW
+ implicit lazy val depFormat: RW[coursier.Dependency]= upickle.default.macroRW
+ implicit lazy val attrFormat: RW[coursier.Attributes] = upickle.default.macroRW
}
diff --git a/core/src/test/scala/mill/discover/DiscoveredTests.scala b/core/src/test/scala/mill/discover/DiscoveredTests.scala
index 98a54759..1d0f7a78 100644
--- a/core/src/test/scala/mill/discover/DiscoveredTests.scala
+++ b/core/src/test/scala/mill/discover/DiscoveredTests.scala
@@ -95,7 +95,7 @@ object DiscoveredTests extends TestSuite{
val error = compileError("Discovered[outer.type]")
assert(
- error.msg.contains("could not find implicit value"),
+ error.msg.contains("uPickle does not know how to read"),
error.pos.contains("def single = mill.T{ new InputStreamReader(System.in) }")
)
}
diff --git a/core/src/test/scala/mill/eval/JavaCompileJarTests.scala b/core/src/test/scala/mill/eval/JavaCompileJarTests.scala
index e0a43c6e..7639d8e2 100644
--- a/core/src/test/scala/mill/eval/JavaCompileJarTests.scala
+++ b/core/src/test/scala/mill/eval/JavaCompileJarTests.scala
@@ -9,6 +9,7 @@ import mill.util.Ctx.DestCtx
import mill.{Module, T}
import mill.util.{DummyLogger, OSet}
import utest._
+import mill._
object JavaCompileJarTests extends TestSuite{
def compileAll(sources: Seq[PathRef])(implicit ctx: DestCtx) = {
diff --git a/scalaplugin/src/main/scala/mill/scalaplugin/Dep.scala b/scalaplugin/src/main/scala/mill/scalaplugin/Dep.scala
index 9ccb9da7..e8cf0387 100644
--- a/scalaplugin/src/main/scala/mill/scalaplugin/Dep.scala
+++ b/scalaplugin/src/main/scala/mill/scalaplugin/Dep.scala
@@ -1,6 +1,6 @@
package mill.scalaplugin
-
-
+import mill.util.JsonFormatters._
+import upickle.default.{macroRW, ReadWriter => RW}
sealed trait Dep
object Dep{
def apply(org: String, name: String, version: String): Dep = {
@@ -8,6 +8,7 @@ object Dep{
}
case class Java(dep: coursier.Dependency) extends Dep
object Java{
+ implicit def rw: RW[Java] = macroRW
def apply(org: String, name: String, version: String): Dep = {
Java(coursier.Dependency(coursier.Module(org, name), version))
}
@@ -16,15 +17,19 @@ object Dep{
def apply(dep: coursier.Dependency) = Scala(dep)
case class Scala(dep: coursier.Dependency) extends Dep
object Scala{
+ implicit def rw: RW[Scala] = macroRW
def apply(org: String, name: String, version: String): Dep = {
Scala(coursier.Dependency(coursier.Module(org, name), version))
}
}
case class Point(dep: coursier.Dependency) extends Dep
object Point{
+ implicit def rw: RW[Point] = macroRW
def apply(org: String, name: String, version: String): Dep = {
Point(coursier.Dependency(coursier.Module(org, name), version))
}
}
- implicit def formatter = upickle.default.macroRW[Dep]
+ implicit def rw = RW.merge[Dep](
+ Java.rw, Scala.rw, Point.rw
+ )
} \ No newline at end of file