diff options
author | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-11-07 10:56:47 -0800 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-11-07 10:56:47 -0800 |
commit | e72c11e18062b4e281cc38fb7727b3bd144c8594 (patch) | |
tree | c73549ee81ec9aacab999fc68673133940d5ae26 /test/files/specialized/constant_lambda.scala | |
parent | bb02fb350f7ec4aefcc830fec36a964ae45cfdd4 (diff) | |
parent | ef995ac6b4030e3cd10e487d414c941e5794666f (diff) | |
download | scala-e72c11e18062b4e281cc38fb7727b3bd144c8594.tar.gz scala-e72c11e18062b4e281cc38fb7727b3bd144c8594.tar.bz2 scala-e72c11e18062b4e281cc38fb7727b3bd144c8594.zip |
Merge pull request #3081 from JamesIry/wip_delayed_delambdafy_cleanup
Delay delambdafication and put the lambda's body into the containing class
Diffstat (limited to 'test/files/specialized/constant_lambda.scala')
-rw-r--r-- | test/files/specialized/constant_lambda.scala | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/test/files/specialized/constant_lambda.scala b/test/files/specialized/constant_lambda.scala new file mode 100644 index 0000000000..bb9a97403e --- /dev/null +++ b/test/files/specialized/constant_lambda.scala @@ -0,0 +1,16 @@ +// during development of late delmabdafying there was a problem where +// specialization would undo some of the work done in uncurry if the body of the +// lambda had a constant type. That would result in a compiler crash as +// when the delambdafy phase got a tree shape it didn't understand +class X[@specialized(Int) A] { + val f = { x: A => false } +} + +object Test { + def main(args: Array[String]) { + val xInt = new X[Int] + println(xInt.f(42)) + val xString = new X[String] + println(xString.f("hello")) + } +}
\ No newline at end of file |