// Copyright (c) 2016, 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. import 'package:expect/expect.dart'; class A { var field = 9; var called = false; superMethod() { Expect.isTrue(field == 10); called = true; return true; } } class B extends A { doit() { Expect.isTrue((super.field = 10) == 10); Expect.isTrue(super.superMethod()); if (called) { Expect.isTrue((super.field = 11) == 11); } return super.field; } } class C extends B { set field(v) { throw 'should not happen'; } } main() { var c = new C(); Expect.isTrue(c.field == 9); Expect.isTrue(c.doit() == 11); Expect.isTrue(c.field == 11); }