| // Copyright (c) 2013, 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 { |
| foo(required1, {named1 = 499}) => -(required1 + named1 * 3); |
| bar(required1, required2, {named1 = 13, named2 = 17}) => |
| -(required1 + required2 * 3 + named1 * 5 + named2 * 7); |
| gee({named1 = 31}) => -named1; |
| } |
| |
| class B extends A { |
| foo(required1) { |
| // [error column 3, length 3] |
| // [analyzer] COMPILE_TIME_ERROR.INVALID_OVERRIDE |
| // [cfe] The method 'B.foo' has fewer named arguments than those of overridden method 'A.foo'. |
| return required1; |
| } |
| |
| bar(required1, required2, {named1 = 13}) { |
| // [error column 3, length 3] |
| // [analyzer] COMPILE_TIME_ERROR.INVALID_OVERRIDE |
| // [cfe] The method 'B.bar' has fewer named arguments than those of overridden method 'A.bar'. |
| return required1 + required2 * 3 + named1 * 5; |
| } |
| |
| gee({named2 = 11}) { |
| // [error column 3, length 3] |
| // [analyzer] COMPILE_TIME_ERROR.INVALID_OVERRIDE |
| // [cfe] The method 'B.gee' doesn't have the named parameter 'named1' of overridden method 'A.gee'. |
| return named2 * 99; |
| } |
| } |
| |
| main() { |
| // Ensure that compile-time errors are reached. |
| var b = new B(); |
| b.foo(499); |
| b.bar(1, 3, named1: 5); |
| b.gee(named2: 3); |
| } |