dart-sdk/tests/language/method/override3_test.dart
Lasse R.H. Nielsen 5642199dd0 Remove uses of : as default value separator in some tests/ directories.
Change-Id: I35bb926e53e92fd02e264fb5b14feadf063fb8db
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/257961
Reviewed-by: Michael Thomsen <mit@google.com>
Commit-Queue: Lasse Nielsen <lrn@google.com>
2022-09-07 14:49:17 +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);
}