blob: 54f5d99752bde4d6ede588599e2e1c4d7b017fd5 [file] [log] [blame]
// 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);
}