blob: 27e566e712321768288e0ca5269b163bc7a14578 [file] [log] [blame]
// Copyright (c) 2020, 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 Foo {
int foo({
required String a,
required String b,
required String c,
required String d,
}) {
return a.length + b.length + c.length + d.length;
}
}
int baz({
required String a,
required String b,
required String c,
required String d,
}) {
return a.length + b.length + c.length + d.length;
}
main() {
Expect.equals(8, Foo().foo(a: "aa", b: "bb", c: "cc", d: "dd"));
// Test that we throw a NoSuchMethodError, not a TypeError due to c.length.
dynamic f = Foo();
Expect.throwsNoSuchMethodError(() => f.foo(a: "aa", b: "bb", d: "dd"));
dynamic tearOff = baz;
Expect.throwsNoSuchMethodError(() => tearOff(a: "aa", c: "cc", d: "dd"));
dynamic closure =
({
required String a,
required String b,
required String c,
required String d,
}) {
return a.length + b.length + c.length + d.length;
};
Expect.throwsNoSuchMethodError(() => closure(a: "aa", c: "cc", d: "dd"));
}