mirror of https://github.com/sbt/sbt.git
Add sbt-dotty test
And take scalaModuleInfo.overrideScalaVersion into account. Also requires the loosened cross version application of the previous commit.
This commit is contained in:
parent
5ea339c6f3
commit
def85e3ddc
|
|
@ -85,7 +85,7 @@ object ResolutionTasks {
|
|||
|
||||
val (currentProject, fallbackDependencies, configGraphs) = currentProjectTask.value
|
||||
|
||||
val autoScalaLib = autoScalaLibrary.value
|
||||
val autoScalaLib = autoScalaLibrary.value && scalaModuleInfo.value.forall(_.overrideScalaVersion)
|
||||
|
||||
val resolvers = resolversTask.value
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,25 @@
|
|||
Copyright (c) 2015 The dotty-example-project contributors.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
3. The name of the author may not be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
Cut-n-pasted from https://github.com/lampepfl/dotty-example-project/tree/a753b14e281bbaa6c69f26298913ad6feba969c7
|
||||
|
|
@ -0,0 +1 @@
|
|||
scalaVersion := "0.13.0-RC1"
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
# sbt-coursier scripted tests: required, as we default to sbt 1.0.3,
|
||||
# but sbt-dotty requires sbt >= 1.2.7
|
||||
sbt.version=1.2.7
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
addSbtPlugin("ch.epfl.lamp" % "sbt-dotty" % "0.3.0")
|
||||
addSbtCoursier
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
addSbtPlugin {
|
||||
|
||||
val name = sys.props.getOrElse(
|
||||
"plugin.name",
|
||||
sys.error("plugin.name Java property not set")
|
||||
)
|
||||
val version = sys.props.getOrElse(
|
||||
"plugin.version",
|
||||
sys.error("plugin.version Java property not set")
|
||||
)
|
||||
|
||||
"io.get-coursier" % name % version
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
|
||||
object Main {
|
||||
|
||||
def main(args: Array[String]): Unit = {
|
||||
|
||||
runExample("Trait Params")(TraitParams.test)
|
||||
|
||||
}
|
||||
|
||||
private def runExample(name: String)(f: => Unit) = {
|
||||
println(Console.MAGENTA + s"$name example:" + Console.RESET)
|
||||
f
|
||||
println()
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
/**
|
||||
* Trait Parameters: https://dotty.epfl.ch/docs/reference/other-new-features/trait-parameters.html
|
||||
*/
|
||||
object TraitParams {
|
||||
|
||||
trait Base(val msg: String)
|
||||
class A extends Base("Hello")
|
||||
class B extends Base("Dotty!")
|
||||
|
||||
// Union types only exist in Dotty, so there's no chance that this will accidentally be compiled with Scala 2
|
||||
private def printMessages(msgs: (A | B)*) = println(msgs.map(_.msg).mkString(" "))
|
||||
|
||||
def test: Unit = {
|
||||
|
||||
printMessages(new A, new B)
|
||||
|
||||
// Sanity check the classpath: this won't run if the dotty jar is not present.
|
||||
val x: Int => Int = z => z
|
||||
x(1)
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
> run
|
||||
|
|
@ -7,7 +7,7 @@ import coursier.sbtcoursiershared.SbtCoursierShared
|
|||
import sbt.{AutoPlugin, Classpaths, Def, Setting, Task, taskKey}
|
||||
import sbt.Project.inTask
|
||||
import sbt.KeyRanks.DTask
|
||||
import sbt.Keys.{appConfiguration, autoScalaLibrary, classpathTypes, dependencyResolution, excludeDependencies, scalaBinaryVersion, scalaOrganization, scalaVersion, streams, updateClassifiers, updateSbtClassifiers}
|
||||
import sbt.Keys.{appConfiguration, autoScalaLibrary, classpathTypes, dependencyResolution, excludeDependencies, scalaBinaryVersion, scalaModuleInfo, scalaOrganization, scalaVersion, streams, updateClassifiers, updateSbtClassifiers}
|
||||
import sbt.librarymanagement.DependencyResolution
|
||||
|
||||
object LmCoursierPlugin extends AutoPlugin {
|
||||
|
|
@ -84,7 +84,7 @@ object LmCoursierPlugin extends AutoPlugin {
|
|||
streams.value.log
|
||||
)
|
||||
val fallbackDeps = coursierFallbackDependencies.value
|
||||
val autoScalaLib = autoScalaLibrary.value
|
||||
val autoScalaLib = autoScalaLibrary.value && scalaModuleInfo.value.forall(_.overrideScalaVersion)
|
||||
val profiles = mavenProfiles.value
|
||||
|
||||
val authenticationByRepositoryId = coursierCredentials.value.mapValues(_.authentication)
|
||||
|
|
|
|||
Loading…
Reference in New Issue