summaryrefslogtreecommitdiff
path: root/test/files/run/t3877.scala
diff options
context:
space:
mode:
authorHubert Plociniczak <hubert.plociniczak@epfl.ch>2010-10-20 13:26:07 +0000
committerHubert Plociniczak <hubert.plociniczak@epfl.ch>2010-10-20 13:26:07 +0000
commitadd9be644fd7b2864e4dcdd792980622622c934a (patch)
tree6db3295dcbbcc453ac9f57ae8993ff0e3a68c4b9 /test/files/run/t3877.scala
parentde3e8492e61e02777520e8876e9e1bccb4b0f065 (diff)
downloadscala-add9be644fd7b2864e4dcdd792980622622c934a.tar.gz
scala-add9be644fd7b2864e4dcdd792980622622c934a.tar.bz2
scala-add9be644fd7b2864e4dcdd792980622622c934a.zip
Closes #3670, #3877.
Diffstat (limited to 'test/files/run/t3877.scala')
-rw-r--r--test/files/run/t3877.scala81
1 files changed, 81 insertions, 0 deletions
diff --git a/test/files/run/t3877.scala b/test/files/run/t3877.scala
new file mode 100644
index 0000000000..5710e982a0
--- /dev/null
+++ b/test/files/run/t3877.scala
@@ -0,0 +1,81 @@
+object Test {
+ val LIMIT = 10
+
+ def test1 {
+ var d = 2
+ var i = 0 // avoid infinite loops
+ while (d < LIMIT && i < LIMIT) {
+ lazy val b = d + 1
+ d = b
+ i += 1
+ println("test1: " + d)
+ }
+ }
+
+ def test2 {
+ var d = 2
+ var i = 0
+ while (true) {
+ lazy val b = d + 1
+ d = b
+ i += 1
+ println("test2: " + d)
+
+ if (d >= LIMIT || i >= LIMIT)
+ return
+ }
+ }
+
+ def test3 {
+ var d = 2
+ var i = 0
+ do {
+ lazy val b = d + 1
+ d = b
+ i += 1
+ println("test3: " + d)
+ } while (d < LIMIT && i < LIMIT)
+ }
+
+ def test4 {
+ var d = 2
+ var i = 0
+ do {
+ lazy val b = d + 1
+ d = b
+ i += 1
+ println("test4: " + d)
+ if (d >= LIMIT || i >= LIMIT)
+ return
+ } while (true)
+ }
+
+ def test5 {
+ var d = 2
+ var i = 0
+ while (d < LIMIT && i < LIMIT) {
+ lazy val b = d + 1
+ d = b
+ i += 1
+ println("test5.1: " + d)
+
+ var e = 2
+ var j = 0
+ while (e < LIMIT && j < LIMIT) {
+ lazy val f = e + 1
+ e = f
+ j += 1
+ println("test5.2: " + e)
+ }
+ }
+ }
+
+
+ def main(args: Array[String]) {
+ test1
+ test2
+ test3
+ test4
+ test5
+ }
+}