diff options
author | Martin Odersky <odersky@gmail.com> | 2007-08-27 14:15:03 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2007-08-27 14:15:03 +0000 |
commit | 44c08fe2e46779d465fd231726b7ee01d27a8c56 (patch) | |
tree | a1f513528b379250a4957bfb47ebc1c41773126a /test/files/run | |
parent | 6d8a7e73764bfeaeec795e9d4281ca5a87569791 (diff) | |
download | scala-44c08fe2e46779d465fd231726b7ee01d27a8c56.tar.gz scala-44c08fe2e46779d465fd231726b7ee01d27a8c56.tar.bz2 scala-44c08fe2e46779d465fd231726b7ee01d27a8c56.zip |
fixed bug1292
Diffstat (limited to 'test/files/run')
-rw-r--r-- | test/files/run/byname.check | 24 | ||||
-rw-r--r-- | test/files/run/byname.scala | 84 |
2 files changed, 108 insertions, 0 deletions
diff --git a/test/files/run/byname.check b/test/files/run/byname.check new file mode 100644 index 0000000000..7e49eedec1 --- /dev/null +++ b/test/files/run/byname.check @@ -0,0 +1,24 @@ +test no braces completed properly +test no braces r completed properly +test plain completed properly +test plain r completed properly +test old by name completed properly +test old by name r completed properly +test old by name s completed properly +test reg then by name completed properly +test reg then by name s completed properly +test varargs completed properly +test varargs r completed properly +test all completed properly +test all r completed properly +test all s completed properly +test c00 completed properly +test c00 r completed properly +test c00 rr completed properly +test cbb completed properly +test cbb r completed properly +test cbb rr completed properly +test cvv completed properly +test cvv r completed properly +test cvv rs completed properly +$ diff --git a/test/files/run/byname.scala b/test/files/run/byname.scala new file mode 100644 index 0000000000..af545d5e7d --- /dev/null +++ b/test/files/run/byname.scala @@ -0,0 +1,84 @@ +object Test extends Application { + +def test[A](name: String, expect: A, actual: => A) { + if (expect != actual) throw new AssertionError("test " + name + " failed") + else println("test " + name + " completed properly") +} + +def testNoBraces = 1 +test("no braces", 1, testNoBraces) + +val testNoBracesR = testNoBraces _ +test("no braces r", 1, testNoBracesR()) + +def testPlain(x: String, y: String): String = x + y +test("plain", "ab", testPlain("a", "b")) + +val testPlainR = testPlain _ +test("plain r", "cd", testPlainR("c", "d")) + +def testOldByName(x: => Int) = x + 1 +test("old by name", 3, testOldByName(1 + 1)) + +val testOldByNameR = testOldByName _ +test("old by name r", 3, testOldByNameR(1 + 1)) + +val testOldByNameS: (=> Int) => Int = testOldByName _ +test("old by name s", 3, testOldByNameS(2)) + +def testRegThenByName(x: Int, y: => Int): Int = x + y +test("reg then by name", 7, testRegThenByName(3, 2 * 2)) + +val testRegThenByNameS: (Int, =>Int) => Int = testRegThenByName _ +test("reg then by name s", 8, testRegThenByNameS(2, 12 / 2)) + +def testVarargs(x: Int*) = x.reduceLeft((x: Int, y: Int) => x + y) +test("varargs", 4, testVarargs(1, 2, 1)) + +val testVarargsR = testVarargs _ +test("varargs r", 4, testVarargsR(1, 2, 1)) + +def testAll(x: Int, y: => Int, z: Int*) = x + y + z.size +test("all", 5, testAll(1, 2, 22, 23)) + +val testAllR = testAll _ +test("all r", 7, testAllR(2, 3, 34, 35)) + +val testAllS: (Int, =>Int, Int*) => Int = testAll _ +test("all s", 8, testAllS(1, 5, 78, 89)) + +// test currying + +def testC00()(): Int = 1 +test("c00", 1, testC00()()) + +val testC00R = testC00 _ +test("c00 r", 1, testC00R()()) + +val testC00RR = testC00() _ +test("c00 rr", 1, testC00RR()) + + +def testCBB(a: => Int)(b: => Int) = a + b +test("cbb", 3, testCBB(1)(2)) + +val testCBBR = testCBB _ +test("cbb r", 5, testCBBR(1)(4)) + +val testCBBRR = testCBB(4) _ +test("cbb rr", 6, testCBBRR(2)) + + +def testCVV(a: Int*)(z: String, b: Int*) = a.size + b.size +test("cvv", 3, testCVV(1, 2)("", 8)) + +val testCVVR = testCVV _ +test("cvv r", 3, testCVVR(1)("", 8, 9)) + +val testCVVRS: (String, Int*) => Int = testCVV(2, 3) +test("cvv rs", 4, testCVVRS("", 5, 6)) + +println("$") + +// vim: set ts=4 sw=4 et: +} |