diff options
author | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2015-05-12 18:30:53 +0200 |
---|---|---|
committer | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2015-05-12 18:30:53 +0200 |
commit | 89bacb9c25a58454ff1878e67f7ea07ffc8c269f (patch) | |
tree | 51f1ff6c66aebe1b6109b1cffcc2bb8e4cf760a3 /tests/pending/run/t2636.scala | |
parent | a0fa33deafbea1bf53edc068c5ed9db5592822f9 (diff) | |
download | dotty-89bacb9c25a58454ff1878e67f7ea07ffc8c269f.tar.gz dotty-89bacb9c25a58454ff1878e67f7ea07ffc8c269f.tar.bz2 dotty-89bacb9c25a58454ff1878e67f7ea07ffc8c269f.zip |
Run tests as they were in scala.
Diffstat (limited to 'tests/pending/run/t2636.scala')
-rw-r--r-- | tests/pending/run/t2636.scala | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/pending/run/t2636.scala b/tests/pending/run/t2636.scala new file mode 100644 index 000000000..2f55c8ad5 --- /dev/null +++ b/tests/pending/run/t2636.scala @@ -0,0 +1,38 @@ + +import scala.language.{ reflectiveCalls } + +object Test +{ + type Foo = { def update(x: Int, value: String): Unit } + type Foo2 = { def update(x: Int, value: String): Int } + type Foo3 = { def update(x: Int, value: String): Array[Int] } + + def alen() = { + type L1 = { def length: Int } + def len(p: L1) = p.length + val x: L1 = Array(1,2,3) + len(x) + } + + type A1 = { def apply(x: Int): String } + def arrApply(a: A1, x: Int) = a(x) + + def main(args: Array[String]): Unit = { + val arr = new Array[String](3) + val p1: Foo = arr + def a1 = p1(0) = "b" + + val p2: Foo2 = new { def update(x: Int, value: String) = { p1(1) = "o" ; 1 } } + def a2 = p2(0) = "c" + + val p3: Foo3 = new { def update(x: Int, value: String) = { p1(2) = "b" ; Array(1) } } + def a3 = p3(10) = "hi mom" + + a1 ; a2 ; a3 ; + + assert(arr.mkString == "bob") + assert(alen() == 3) + assert(arrApply(arr, 1) == "o") + assert(arrApply(new { def apply(x: Int) = "tom" }, -100) == "tom") + } +} |