blob: 01699a628742e438c8d7ba26137660864282e876 [file] [log] [blame]
/*
* 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 It is no static warning if an instance method m1 overrides an
* instance member m2 and the type of m1 is not a subtype of the type of m2.
* @description Checks that there are no warnings when type of m1 is in fact
* a subtype of type of m2. Checks instance methods with optional parameters.
* @static-clean
* @author ilya
*/
class Whatever {}
class Super {}
class Sub extends Super {}
class A {
num f1(Super x, Sub y, [Super a]) {}
int f2(Super x, Sub y, [Sub a]) {}
dynamic f3(Super x, {Sub a}) {}
}
class C extends A {
int f1(Super x, [Super a, Super b]) {}
int f2(Super x, [Sub a, Super b, Whatever c]) {}
int f3(Super x, {Super a, Super b}) {}
}
main() {
new A();
new C();
}