// 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 Unless explicitly stated otherwise, all ordinary rules that apply
 * to methods apply to abstract methods.
 * It is a static warning if an instance method m1 overrides an instance member
 * m2, the signature of m2 explicitly specifies a default value for a formal
 * parameter p and the signature of m1 specifies a different default value for
 * p.
 * @description Checks that it is no static warning if an abstract method
 * overrides an instance method and does not explicitly specify a default value
 * for its optional parameter while the instance method does.
 *
 * See
 * https://github.com/dart-lang/sdk/issues/34437#issuecomment-432093691
 * https://github.com/dart-lang/sdk/issues/42195#issuecomment-645219669
 *
 * @issue 27476
 * @issue 42195
 * @author msyabro
 */

class A {
  foo([x = 1]) {}
}

class C extends A {
  foo([x]);
}

main() {
  new C().foo(1);
}
