// Copyright (c) 2011, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// Dart test program testing multiple assignment.


class MultiAssignTest {
  static testMain() {
    var i, j, k;
    i = j = k = 11;
    Expect.equals(11, i);
    Expect.equals(11, j);
    Expect.equals(11, k);

    var m;
    var n = m = k = 55;
    Expect.equals(55, m);
    Expect.equals(55, n);
    Expect.equals(55, k);
  }
}

main() {
  MultiAssignTest.testMain();
}
