aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorDmitry Petrashko <dark@d-d.me>2015-04-30 17:03:48 +0200
committerDmitry Petrashko <dark@d-d.me>2015-04-30 17:03:48 +0200
commit275c340b609ae113c93d8c004a2d8bd7be1b12c1 (patch)
tree8ac6e38eee2fdff1fb31a6a332ea22c7303cd3a6 /tests
parent3392ef7077acad7c8543b6802c7537cd2dcea458 (diff)
parentbe61c7813fbf7cab90b5d70ef6e506e296c510dc (diff)
downloaddotty-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.scala15
-rw-r--r--tests/run/byNameVarargs/i499.scala28
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, ???))
+}