diff options
author | Guillaume Martres <smarter@ubuntu.com> | 2018-08-05 23:23:12 +0900 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2018-08-05 22:23:12 +0800 |
commit | b9824967392e4b674881e5dcec4c4fbb05e6cd9b (patch) | |
tree | 40c67dff4ffb26f085ef52b1ec3e2341f33d27be /scalalib/test/resources/hello-dotty | |
parent | 66c133a2ff58823c43ddfa7643fb74b8cf2bd0a6 (diff) | |
download | mill-b9824967392e4b674881e5dcec4c4fbb05e6cd9b.tar.gz mill-b9824967392e4b674881e5dcec4c4fbb05e6cd9b.tar.bz2 mill-b9824967392e4b674881e5dcec4c4fbb05e6cd9b.zip |
Add support for Dotty projects (#397)
* Abstract over the scala compiler organization
* Support using a locally published compiler
Publishing locally with sbt means publishing ivy-style, which uses
a different naming convention than maven, we now handle both cases.
* Add minimal support for Dotty projects
* Rewrite scalalib.Dep, introduce scalalib.CrossVersion
Instead of Dep being a trait with three cases (Java/Scala/Point), it is
now a case class where the cross field is an instance of the
CrossVersion trait which has three cases (Constant/Binary/Full). This is
more versatile since it allows for non-empty constant suffixes which
will be used to implement withDottyCompat in the next commit. It's
also a cleaner separation of concerns. We also deduplicate various
pieces of codes that computed the artifact name: this is now always handled in
Dep and CrossVersion.
* Add simple way to use Scala 2 deps in a Dotty project
This is similar to the withDottyCompat method in the sbt-dotty plugin.
* Turn off the Dotty test on Java >= 9
Diffstat (limited to 'scalalib/test/resources/hello-dotty')
-rw-r--r-- | scalalib/test/resources/hello-dotty/foo/src/Main.scala | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/scalalib/test/resources/hello-dotty/foo/src/Main.scala b/scalalib/test/resources/hello-dotty/foo/src/Main.scala new file mode 100644 index 00000000..3fe80342 --- /dev/null +++ b/scalalib/test/resources/hello-dotty/foo/src/Main.scala @@ -0,0 +1,17 @@ +import cats._, cats.data._, cats.implicits._ + +trait Context + +object Main { + def foo(f: implicit Int => Int): Int = { + implicit val x: Int = 1 + f + } + + def main(args: Array[String]): Unit = { + val x = Applicative[List].pure(1) + assert(x == List(1)) + val value = foo(implicit x => x + 1) + assert(value == 2) + } +} |