blob: 955425554d46eabf0954b2c6d92fb70a693a72c9 [file] [log] [blame]
// Copyright (c) 2021, 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 an optional parameter (named or otherwise) with
* no default value has a potentially non-nullable type except in the parameter
* list of an abstract method declaration.
*
* @description Check that it is not an error if an abstract method optional
* parameter (named or otherwise) with no default value has a potentially
* non-nullable type
* @author sgrekhov@unipro.ru
* @issue 40287
* @issue 40954
*/
// Requirements=nnbd-weak
import "legacy_lib.dart";
import "dart:async";
typedef void Foo();
class X {}
abstract class C {
void test1(var v, [Never n]);
void test2(var v, {Never n});
void test3(var v, [Function f]);
void test4(var v, {Function f});
void test5(var v, [Foo f]);
void test6(var v, {Foo f});
void test7(var v, [X x]);
void test8(var v, {X x});
void test9(var v, [A a]);
void test10(var v, {A a});
void test11<T extends Object>(var v, [T t]);
void test12<T extends Object>(var v, {T t});
void test13<T extends Object?>(var v, [T t]);
void test14<T extends Object?>(var v, {T t});
void test15(var v, [FutureOr<Never> n]);
void test16(var v, {FutureOr<Never> n});
void test17(var v, [FutureOr<Function> f]);
void test18(var v, {FutureOr<Function> f});
void test19(var v, [FutureOr<Foo> f]);
void test20(var v, {FutureOr<Foo> f});
void test21(var v, [FutureOr<X> x]);
void test22(var v, {FutureOr<X> x});
void test23(var v, [FutureOr<A> a]);
void test24(var v, {FutureOr<A> a});
void test25(var v, [FutureOr<FutureOr<X>> x]);
void test26(var v, {FutureOr<FutureOr<X>> x});
void test27(var v, [LegacyFoo f]);
void test28(var v, {LegacyFoo f});
}
main() {
}