diff options
author | Josh Suereth <Joshua.Suereth@gmail.com> | 2012-09-12 19:21:52 -0700 |
---|---|---|
committer | Josh Suereth <Joshua.Suereth@gmail.com> | 2012-09-12 19:21:52 -0700 |
commit | cfd874ac173ca8d6542921aeea60e1f5ace80b9d (patch) | |
tree | f88c61753a27da312b4f56664e92cc0f71facda0 /test/files/run | |
parent | c168c69e8614f701b6c89e01bdd38a54e154e9cd (diff) | |
parent | 9568dc9d1a8e69812f4ec0b72a11a38edaa51f2a (diff) | |
download | scala-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/files/run')
-rw-r--r-- | test/files/run/pure-args-byname-noinline.check | 12 | ||||
-rw-r--r-- | test/files/run/pure-args-byname-noinline.scala | 33 |
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: |