blob: ccce283b969721dc32f3df4f57bff403ab9902ad [file] [log] [blame]
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/nnbd/required.dart:29:8: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
// Try adding either an explicit non-'null' default value or the 'required' modifier.
// foo({x}) {}
// ^
//
// pkg/front_end/testcases/nnbd/required.dart:51:18: Error: Non-optional parameters can't have a default value.
// Try removing the default value or making the parameter optional.
// Function(int a = 42, [int b]) f2;
// ^
//
// pkg/front_end/testcases/nnbd/required.dart:52:17: Error: Non-optional parameters can't have a default value.
// Try removing the default value or making the parameter optional.
// void g2(int a = 42, [int b]) {}
// ^
//
// pkg/front_end/testcases/nnbd/required.dart:53:15: Error: Non-optional parameters can't have a default value.
// Try removing the default value or making the parameter optional.
// f2 = (int a = 42, [int b]) {};
// ^
//
// pkg/front_end/testcases/nnbd/required.dart:48:15: Error: The parameter 'a' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
// Try adding either an explicit non-'null' default value or the 'required' modifier.
// void g({int a, required int b = 42}) {}
// ^
//
// pkg/front_end/testcases/nnbd/required.dart:48:31: Error: Named parameter 'b' is required and can't have a default value.
// void g({int a, required int b = 42}) {}
// ^
//
// pkg/front_end/testcases/nnbd/required.dart:49:13: Error: The parameter 'a' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
// Try adding either an explicit non-'null' default value or the 'required' modifier.
// f = ({int a, required int b = 42}) {};
// ^
//
// pkg/front_end/testcases/nnbd/required.dart:49:29: Error: Named parameter 'b' is required and can't have a default value.
// f = ({int a, required int b = 42}) {};
// ^
//
// pkg/front_end/testcases/nnbd/required.dart:52:28: Error: The parameter 'b' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
// Try adding either an explicit non-'null' default value or the 'required' modifier.
// void g2(int a = 42, [int b]) {}
// ^
//
// pkg/front_end/testcases/nnbd/required.dart:53:26: Error: The parameter 'b' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
// Try adding either an explicit non-'null' default value or the 'required' modifier.
// f2 = (int a = 42, [int b]) {};
// ^
//
import self as self;
import "dart:core" as core;
typedef Typedef1 = ({a: core::int, required b: core::int}) dynamic;
typedef Typedef2 = ({a: core::int, required b: core::int}) dynamic;
class Class extends core::Object {
synthetic constructor •() self::Class
: super core::Object::•()
;
method method({core::int a = #C1, required core::int b = #C2, required final core::int c = #C2, required covariant-by-declaration final core::int d = #C2}) → dynamic {}
}
abstract class A extends core::Object {
synthetic constructor •() self::A
: super core::Object::•()
;
abstract method foo({core::int x = #C2}) → dynamic;
}
class B extends self::A {
synthetic constructor •() self::B
: super self::A::•()
;
method foo({core::int x = #C2}) → dynamic {}
}
class C extends self::A {
synthetic constructor •() self::C
: super self::A::•()
;
method foo({core::int x = #C1}) → dynamic {}
}
static field ({a: core::int, required b: core::int}) dynamic field = ({core::int a = #C1, required core::int b = #C2}) → Null {};
static method method({core::int a = #C1, required core::int b = #C2, required final core::int c = #C2}) → dynamic {}
static method ok() dynamic {
({a: core::int, required b: core::int}) dynamic f;
function g({core::int a = #C1, required core::int b = #C2}) → void {}
f = ({core::int a = #C1, required core::int b = #C2}) → Null {};
(core::int, [core::int]) dynamic f2;
function g2(core::int a, [core::int b = #C1]) → void {}
f2 = (core::int a, [core::int b = #C1]) → Null {};
}
static method error() dynamic {
({a: core::int, required b: core::int}) dynamic f;
function g({core::int a = #C2, required core::int b = #C1}) → void {}
f = ({core::int a = #C2, required core::int b = #C1}) → Null {};
(core::int, [core::int]) dynamic f2;
function g2(core::int a = #C1, [core::int b = #C2]) → void {}
f2 = (core::int a = #C1, [core::int b = #C2]) → Null {};
}
static method main() dynamic {}
constants {
#C1 = 42
#C2 = null
}