blob: 164517c1491f93972b9d4d4ac4a4499d810e0067 [file] [log] [blame]
/*
* Copyright (c) 2019, 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.
*/
/**
* @assertion It is an error if a named parameter that is part of a required
* group is not bound to an argument at a call site
*
* @description Check that it is an error if a named parameter that is part of a
* required group is not bound to an argument at a call site. Test legacy
* pre-NNBD types
* @author sgrekhov@unipro.ru
*/
// SharedOptions=--enable-experiment=non-nullable
import "legacy_library_lib.dart";
class C {
static void test1({required A x, String y, required A z}) {}
void test2({required A x, String y, required A z}) {}
static void test11({required A? x, String y, required A? z}) {}
void test22({required A? x, String y, required A? z}) {}
}
void test3({required A x, String y, required A z}) {}
void test33({required A? x, String y, required A? z}) {}
Function test4 = ({required A x, String y, required A z}) {};
Function test44 = ({required A? x, String y, required A? z}) {};
typedef void Foo({required A x, String y, required A z});
typedef void Foo2({required A? x, String y, required A? z});
main() {
A a = new A();
Foo foo = ({required A x, String y, required A z}) {};
Foo2 foo2 = ({required A? x, String y, required A? z}) {};
C.test1(x: a, y: "");
// ^
// [analyzer] unspecified
// [cfe] unspecified
C.test11(x: a, y: "");
// ^
// [analyzer] unspecified
// [cfe] unspecified
C().test2(x: a, y: "");
// ^
// [analyzer] unspecified
// [cfe] unspecified
C().test22(x: a, y: "");
// ^
// [analyzer] unspecified
// [cfe] unspecified
test3(x: a, y: "");
// ^
// [analyzer] unspecified
// [cfe] unspecified
test33(x: a, y: "");
// ^
// [analyzer] unspecified
// [cfe] unspecified
test4(x: a, y: "");
// ^
// [analyzer] unspecified
// [cfe] unspecified
test44(x: a, y: "");
// ^
// [analyzer] unspecified
// [cfe] unspecified
foo(x: a, y: "");
// ^
// [analyzer] unspecified
// [cfe] unspecified
foo2(x: a, y: "");
// ^
// [analyzer] unspecified
// [cfe] unspecified
C.test1(z: "No", y: "woman");
// ^
// [analyzer] unspecified
// [cfe] unspecified
C.test11(z: "no", y: "cry");
// ^
// [analyzer] unspecified
// [cfe] unspecified
C().test2(z: "No", y: "woman");
// ^
// [analyzer] unspecified
// [cfe] unspecified
C().test22(z: "no", y: "cry");
// ^
// [analyzer] unspecified
// [cfe] unspecified
test3(z: "No", y: "woman");
// ^
// [analyzer] unspecified
// [cfe] unspecified
test33(z: "no", y: "cry");
// ^
// [analyzer] unspecified
// [cfe] unspecified
test4(z: "No", y: "woman");
// ^
// [analyzer] unspecified
// [cfe] unspecified
test44(z: "no", y: "cry");
// ^
// [analyzer] unspecified
// [cfe] unspecified
foo(z: "No", y: "woman");
// ^
// [analyzer] unspecified
// [cfe] unspecified
foo(z: "no", y: "cry");
// ^
// [analyzer] unspecified
// [cfe] unspecified
}