mirror of https://github.com/sbt/sbt.git
Add scripted scala3-example-project
This commit is contained in:
parent
3d863a59f8
commit
3c55c606df
|
|
@ -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/scala/scala3-example-project/tree/353ccef820699f20eb012420a9deb28814481031
|
||||
|
|
@ -0,0 +1 @@
|
|||
ThisBuild / scalaVersion := "3.0.0-M3"
|
||||
|
|
@ -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
|
||||
Loading…
Reference in New Issue