blob: 3a89831d6d3dc15d803e3de2133e9fdb1753d29c [file] [log] [blame]
// Copyright (c) 2017, 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.
class A {
void foo() {}
}
abstract class I {
void foo([x]);
}
class B extends A implements I {
// ^
// [analyzer] COMPILE_TIME_ERROR.INVALID_IMPLEMENTATION_OVERRIDE
// [cfe] The implementation of 'foo' in the non-abstract class 'B' does not conform to its interface.
// This class declaration violates soundness, since it allows `new
// B().foo(42)`, which would lead to invalid arguments being passed to A.foo.
}
void f(B b) {
b.foo();
}
main() {
f(new B());
}