Files
sdk/tests/language_2/method/override3_test.dart
T
Robert Nystrom fc1b1ecc71 Move files under language_2 into subdirectories.
Change-Id: Idbcc965a27e9ffeedf5e0a1068b019de4193070f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127745
Commit-Queue: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
2019-12-11 19:18:00 +00:00

62 lines
1.4 KiB
Dart

// 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);
}