// 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.

/// @assertion Let C = S0 be a class declared in library L, and let
/// {S1 ... Sk} be the set of all superclasses of C, where Si is the superclass
/// of Si-1 for i in 1..k. Let C declare a member m, and let m' be a member
/// of Sj for j in 1..k, that has the same name as m, such that m' is
/// accessible to L. Then m overrides m' if m' is not already overridden by a
/// member of at least one of S1 ... Sj-1 and neither m nor m' are fields.
/// @description Checks that an instance method can override another instance
/// method.
/// @author pagolubev

import "../../../../Utils/expect.dart";

class A {
  foo() { return 'A'; }
}

class B extends A {
  foo() { return 'B'; }
}

main() {
  A a = new B();
  Expect.equals('B', a.foo());
}
