diff options
author | Martin Odersky <odersky@gmail.com> | 2016-01-29 21:48:55 +0100 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2016-02-19 14:02:17 +0100 |
commit | 8441de7a907996361a78d744d3364cee3d558f84 (patch) | |
tree | a553bc1c18466324d0f2898af5c9c4d48a4c5fe4 /tests/pos/named-params.scala | |
parent | 1d585f1172d563051c0710008568b3b53728281f (diff) | |
download | dotty-8441de7a907996361a78d744d3364cee3d558f84.tar.gz dotty-8441de7a907996361a78d744d3364cee3d558f84.tar.bz2 dotty-8441de7a907996361a78d744d3364cee3d558f84.zip |
Allow Named Arguments in TypeArgs
Lets one also pass named arguments to methods.
Diffstat (limited to 'tests/pos/named-params.scala')
-rw-r--r-- | tests/pos/named-params.scala | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/tests/pos/named-params.scala b/tests/pos/named-params.scala index 9668ec34c..bcd64ea4b 100644 --- a/tests/pos/named-params.scala +++ b/tests/pos/named-params.scala @@ -4,7 +4,7 @@ class C[type Elem, type Value](val elem: Elem) { def toVal: Elem = ??? } -abstract class D[type Elem, V](elem: Elem) extends C[Elem, V](elem) +class D[type Elem, V](elem: Elem) extends C[Elem, V](elem) object Test { val c = new C[String, String]("A") { @@ -17,6 +17,18 @@ object Test { val c3 = new C[Elem = String, Value = Int]("B") val c4 = new C[Elem = String]("C") val x2: c2.Elem = c2.elem + + def d1[E, V](x: E) = new D[E, V](x) + def d2[E, V](x: E) = new C[Elem = E, Value = V](x) + + val y1 = d1[Int, String](1) + val y2 = d1[E = Int](2) + val y3 = d1[V = String](3) + val z1 = d2[E = Int, V = String](1) + val z2 = d2[V = String, E = Int](1) + val z3 = d2[E = Int](1) + val z4 = d2[V = Int]("AAA") + val z5 = d2[E = Int][V = String](1) } // Adapated from i94-nada @@ -30,3 +42,5 @@ trait Test1 { def flatMap[X,Y,M <: Monad](m: M[Elem = X], f: X => M[Elem = Y]): M[Elem = Y] = f(m.unit) println(flatMap(Left(1), {x: Int => Left(x)})) } + + |