| // 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( |
| //^^^ |
| // [analyzer] COMPILE_TIME_ERROR.INVALID_OVERRIDE |
| // [cfe] The method 'B.foo' has fewer named arguments than those of overridden method 'A.foo'. |
| required1 |
| /* |
| , |
| {named1: 499} |
| */ |
| ) { |
| return required1; |
| } |
| |
| bar(required1, required2, |
| //^^^ |
| // [analyzer] COMPILE_TIME_ERROR.INVALID_OVERRIDE |
| // [cfe] The method 'B.bar' has fewer named arguments than those of overridden method 'A.bar'. |
| {named1: 13 |
| /* |
| , |
| named2: 17 |
| */ |
| }) { |
| return required1 + required2 * 3 + named1 * 5; |
| } |
| |
| gee( |
| //^^^ |
| // [analyzer] COMPILE_TIME_ERROR.INVALID_OVERRIDE |
| // [cfe] The method 'B.gee' doesn't have the named parameter 'named1' of overridden method 'A.gee'. |
| {named2: 11 |
| /* |
| , |
| named1: 31 |
| */ |
| }) { |
| 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); |
| } |