diff options
author | Iulian Dragos <jaguarul@gmail.com> | 2008-11-06 17:26:52 +0000 |
---|---|---|
committer | Iulian Dragos <jaguarul@gmail.com> | 2008-11-06 17:26:52 +0000 |
commit | 7e736ed0a8109f00d721cb1a78152c91ef133b2d (patch) | |
tree | bc29db92f2615a58d8ed7d6c18dbc84eb8fcdc8e /test/files | |
parent | 67935e969fb3315e209b52600bbafff97598a20e (diff) | |
download | scala-7e736ed0a8109f00d721cb1a78152c91ef133b2d.tar.gz scala-7e736ed0a8109f00d721cb1a78152c91ef133b2d.tar.bz2 scala-7e736ed0a8109f00d721cb1a78152c91ef133b2d.zip |
Fixed optimiser bugs, now all tests pass when u...
Fixed optimiser bugs, now all tests pass when using the optimised
compiler.
Diffstat (limited to 'test/files')
-rw-r--r-- | test/files/run/infiniteloop.check | 1 | ||||
-rw-r--r-- | test/files/run/infiniteloop.scala | 13 | ||||
-rw-r--r-- | test/files/run/missingparams.check | 1 | ||||
-rw-r--r-- | test/files/run/missingparams.scala | 21 |
4 files changed, 36 insertions, 0 deletions
diff --git a/test/files/run/infiniteloop.check b/test/files/run/infiniteloop.check new file mode 100644 index 0000000000..be0b1437f1 --- /dev/null +++ b/test/files/run/infiniteloop.check @@ -0,0 +1 @@ +Stream(512, ?) diff --git a/test/files/run/infiniteloop.scala b/test/files/run/infiniteloop.scala new file mode 100644 index 0000000000..f15674a676 --- /dev/null +++ b/test/files/run/infiniteloop.scala @@ -0,0 +1,13 @@ +/** Tests the optimiser (not to loop on 'reverse'). */ + +object Test extends Application { + def foo { + val s3 = Stream.range(1, 1000) //100000 (ticket #153: Stackoverflow) + + // ticket #153 + def powers(x: Int) = if ((x&(x-1)) == 0) Some(x) else None + println(s3.flatMap(powers).reverse) + } + + foo +} diff --git a/test/files/run/missingparams.check b/test/files/run/missingparams.check new file mode 100644 index 0000000000..b0047fa49f --- /dev/null +++ b/test/files/run/missingparams.check @@ -0,0 +1 @@ +None diff --git a/test/files/run/missingparams.scala b/test/files/run/missingparams.scala new file mode 100644 index 0000000000..3672fdf76f --- /dev/null +++ b/test/files/run/missingparams.scala @@ -0,0 +1,21 @@ +/** Tests the optimiser. */ + +final class Foo(val x: Int) { + def filter(p: Int => Boolean) = + if (p(x)) Some(x) else None + + // test that the closure elimination is not wrongly replacing + // 'that' by 'this' + def intersect(that: Foo) = + filter { dummy => +// x // dummy + that.x > 0 + } +} + +object Test extends Application { + val foo1 = new Foo(42) + val foo2 = new Foo(-42) + + println(foo1 intersect foo2) +} |