aboutsummaryrefslogtreecommitdiff
path: root/tests/run/t3877.scala
blob: 5d8006f4fc3430a363845893d66acede6ccd311a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
object Test {
  val LIMIT = 10

  def test1: Unit = {
    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: Unit = {
    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: Unit = {
    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: Unit = {
    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: Unit = {
    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]): Unit = {
    test1
    test2
    test3
    test4
    test5
  }
}