summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJosh Suereth <Joshua.Suereth@gmail.com>2012-09-12 19:21:52 -0700
committerJosh Suereth <Joshua.Suereth@gmail.com>2012-09-12 19:21:52 -0700
commitcfd874ac173ca8d6542921aeea60e1f5ace80b9d (patch)
treef88c61753a27da312b4f56664e92cc0f71facda0 /test
parentc168c69e8614f701b6c89e01bdd38a54e154e9cd (diff)
parent9568dc9d1a8e69812f4ec0b72a11a38edaa51f2a (diff)
downloadscala-cfd874ac173ca8d6542921aeea60e1f5ace80b9d.tar.gz
scala-cfd874ac173ca8d6542921aeea60e1f5ace80b9d.tar.bz2
scala-cfd874ac173ca8d6542921aeea60e1f5ace80b9d.zip
Merge pull request #1255 from Blaisorblade/issue/6306
Fix SI-6306 on testcase
Diffstat (limited to 'test')
-rw-r--r--test/files/run/pure-args-byname-noinline.check12
-rw-r--r--test/files/run/pure-args-byname-noinline.scala33
2 files changed, 45 insertions, 0 deletions
diff --git a/test/files/run/pure-args-byname-noinline.check b/test/files/run/pure-args-byname-noinline.check
new file mode 100644
index 0000000000..a39c61eb64
--- /dev/null
+++ b/test/files/run/pure-args-byname-noinline.check
@@ -0,0 +1,12 @@
+2
+2
+2
+2
+List(1)
+List()
+
+1
+1
+1
+1
+1
diff --git a/test/files/run/pure-args-byname-noinline.scala b/test/files/run/pure-args-byname-noinline.scala
new file mode 100644
index 0000000000..5c5c8a7eb6
--- /dev/null
+++ b/test/files/run/pure-args-byname-noinline.scala
@@ -0,0 +1,33 @@
+object Test {
+ //Were affected by SI-6306
+ def f[A](a: =>A) = println(a.toString)
+ def f1[A <: AnyVal](a: =>A) = println(a.toString)
+ def f1a[A <: AnyVal](a: =>A) = println(a.##)
+ def f2[A <: AnyRef](a: =>A) = println(a.toString)
+ def f2a[A <: String](a: =>A) = println(a.toString)
+ //Works
+ def f3[A](a: =>Seq[A]) = println(a.toString)
+
+ def foo() = println(2)
+ def client(f: () => Unit) = {f(); f()}
+ def attempt2() {
+ val bar: () => Unit = foo _
+ //The code causing SI-6306 was supposed to optimize code like this:
+ client(() => bar ())
+ //to:
+ client(bar)
+ }
+ def main(args: Array[String]) {
+ attempt2()
+ f3(Seq(1))
+ f3(Seq())
+ f("")
+ f((1).toString)
+ f((1).##)
+ f1((1).##)
+ f2((1).toString)
+ f2a((1).toString)
+ }
+}
+
+// vim: set ts=8 sw=2 et: