aboutsummaryrefslogtreecommitdiff
path: root/tests/run/inlinedAssign.scala
blob: b9a5d287dc4e303b4c71eff18c8edb5ac001a107 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
object Test {

  @inline
  def swap[T](x: T, x_= : T => Unit, y: T, y_= : T => Unit) = {
    val t = x
    x_=(y)
    y_=(t)
  }

  def main(args: Array[String]) = {
    var x = 1
    var y = 2
    @inline def setX(z: Int) = x = z
    @inline def setY(z: Int) = y = z
    swap[Int](x, setX, y, setY)
    assert(x == 2 && y == 1)
  }
}