diff options
author | Dmitry Petrashko <dark@d-d.me> | 2015-04-30 17:03:48 +0200 |
---|---|---|
committer | Dmitry Petrashko <dark@d-d.me> | 2015-04-30 17:03:48 +0200 |
commit | 275c340b609ae113c93d8c004a2d8bd7be1b12c1 (patch) | |
tree | 8ac6e38eee2fdff1fb31a6a332ea22c7303cd3a6 /tests | |
parent | 3392ef7077acad7c8543b6802c7537cd2dcea458 (diff) | |
parent | be61c7813fbf7cab90b5d70ef6e506e296c510dc (diff) | |
download | dotty-275c340b609ae113c93d8c004a2d8bd7be1b12c1.tar.gz dotty-275c340b609ae113c93d8c004a2d8bd7be1b12c1.tar.bz2 dotty-275c340b609ae113c93d8c004a2d8bd7be1b12c1.zip |
Merge pull request #500 from dotty-staging/implement/i499
Implement/i499
Diffstat (limited to 'tests')
-rw-r--r-- | tests/pos/byNameVarargs.scala | 15 | ||||
-rw-r--r-- | tests/run/byNameVarargs/i499.scala | 28 |
2 files changed, 43 insertions, 0 deletions
diff --git a/tests/pos/byNameVarargs.scala b/tests/pos/byNameVarargs.scala new file mode 100644 index 000000000..e7f9664ab --- /dev/null +++ b/tests/pos/byNameVarargs.scala @@ -0,0 +1,15 @@ +package test + +object O { + + def byname(xs: => Int*) = xs.sum + def byval(xs: Int*) = xs.sum + + def a = 1 + def b = 2 + + byval(a, b) + byname(a, b) + +} + diff --git a/tests/run/byNameVarargs/i499.scala b/tests/run/byNameVarargs/i499.scala new file mode 100644 index 000000000..be40ead50 --- /dev/null +++ b/tests/run/byNameVarargs/i499.scala @@ -0,0 +1,28 @@ +object Test { + def foo(a: => Any*) = () + def bar(a: => Any*) = foo(a : _*) + def baz(a: => Seq[Any]) = foo(a : _*) + bar(???, ???) + baz(Seq(???, ???)) + baz(Array(???, ???)) + + def foo1(a => Any, b: => Any*) = () + foo1(???) + foo1(???, ???, ???) + + def assertFails(a => Any) = { + var failed = false + try { + a + } catch { + case e => failed = true + } + assert(failed) + } + + def forceLength(b: => Any*) = b.length + assertFails(forceLength(???)) + + def forceHead(b: => Any*) = b(0) + assertFails(forceHead(1, ???)) +} |