blob: 215b0c4c8f9cb0f25d2f25db5b674fed347bf6f6 [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() {
}