// Copyright (c) 2019, 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.

/// @assertion The assignment e1?.f = e2 translates to:
///  SHORT[EXP(e1), fn[x] => x.f = EXP(e2)]
///
///  The other assignment operators are handled equivalently.
///
/// @description Check that assignments like e1?.f >>= e2 translates to:
///  SHORT[EXP(e1), fn[x] => x.f >>= EXP(e2)]
/// @author sgrekhov@unipro.ru

// Requirements=nnbd-strong
import "../../Utils/expect.dart";

class C {
  int test = 13;
  init() {
    test = 13;
  }
}

void testShort(C? x, int e2) {
  x?.init();
  var actual1 = x?.test >>= e2;
  x?.init();
  var n0 = x;
  var expected1 = n0 == null ? null : n0.test >>= e2;
  Expect.equals(expected1, actual1);
}

main() {
  C? c1 = null;
  testShort(c1, 4);
  c1 = new C();
  testShort(c1, 4);

  C c2 = new C();
  testShort(c2, 4);
}
