| library; |
| // |
| // Problems in library: |
| // |
| // pkg/front_end/testcases/extension_types/nullability.dart:62:14: Error: The parameter 'e1numNullableOP' can't have a value of 'null' because of its type 'E1<num?>', but the implicit default value is 'null'. |
| // Try adding either an explicit non-'null' default value or the 'required' modifier. |
| // E1<num?> e1numNullableOP, // Error. |
| // ^^^^^^^^^^^^^^^ |
| // |
| // pkg/front_end/testcases/extension_types/nullability.dart:63:16: Error: The parameter 'e1doubleOP' can't have a value of 'null' because of its type 'E1<double>', but the implicit default value is 'null'. |
| // Try adding either an explicit non-'null' default value or the 'required' modifier. |
| // E1<double> e1doubleOP, // Error. |
| // ^^^^^^^^^^ |
| // |
| // pkg/front_end/testcases/extension_types/nullability.dart:64:8: Error: The parameter 'e2OP' can't have a value of 'null' because of its type 'E2', but the implicit default value is 'null'. |
| // Try adding either an explicit non-'null' default value or the 'required' modifier. |
| // E2 e2OP, // Error. |
| // ^^^^ |
| // |
| // pkg/front_end/testcases/extension_types/nullability.dart:65:8: Error: The parameter 'e3OP' can't have a value of 'null' because of its type 'E3', but the implicit default value is 'null'. |
| // Try adding either an explicit non-'null' default value or the 'required' modifier. |
| // E3 e3OP, // Error. |
| // ^^^^ |
| // |
| // pkg/front_end/testcases/extension_types/nullability.dart:66:8: Error: The parameter 'e4OP' can't have a value of 'null' because of its type 'E4', but the implicit default value is 'null'. |
| // Try adding either an explicit non-'null' default value or the 'required' modifier. |
| // E4 e4OP, // Error. |
| // ^^^^ |
| // |
| // pkg/front_end/testcases/extension_types/nullability.dart:67:8: Error: The parameter 'e5OP' can't have a value of 'null' because of its type 'E5', but the implicit default value is 'null'. |
| // Try adding either an explicit non-'null' default value or the 'required' modifier. |
| // E5 e5OP, // Error. |
| // ^^^^ |
| // |
| // pkg/front_end/testcases/extension_types/nullability.dart:78:14: Error: The parameter 'e1numNullableNNR' can't have a value of 'null' because of its type 'E1<num?>', but the implicit default value is 'null'. |
| // Try adding either an explicit non-'null' default value or the 'required' modifier. |
| // E1<num?> e1numNullableNNR, // Error. |
| // ^^^^^^^^^^^^^^^^ |
| // |
| // pkg/front_end/testcases/extension_types/nullability.dart:79:16: Error: The parameter 'e1doubleNNR' can't have a value of 'null' because of its type 'E1<double>', but the implicit default value is 'null'. |
| // Try adding either an explicit non-'null' default value or the 'required' modifier. |
| // E1<double> e1doubleNNR, // Error. |
| // ^^^^^^^^^^^ |
| // |
| // pkg/front_end/testcases/extension_types/nullability.dart:80:8: Error: The parameter 'e2NNR' can't have a value of 'null' because of its type 'E2', but the implicit default value is 'null'. |
| // Try adding either an explicit non-'null' default value or the 'required' modifier. |
| // E2 e2NNR, // Error. |
| // ^^^^^ |
| // |
| // pkg/front_end/testcases/extension_types/nullability.dart:81:8: Error: The parameter 'e3NNR' can't have a value of 'null' because of its type 'E3', but the implicit default value is 'null'. |
| // Try adding either an explicit non-'null' default value or the 'required' modifier. |
| // E3 e3NNR, // Error. |
| // ^^^^^ |
| // |
| // pkg/front_end/testcases/extension_types/nullability.dart:82:8: Error: The parameter 'e4NNR' can't have a value of 'null' because of its type 'E4', but the implicit default value is 'null'. |
| // Try adding either an explicit non-'null' default value or the 'required' modifier. |
| // E4 e4NNR, // Error. |
| // ^^^^^ |
| // |
| // pkg/front_end/testcases/extension_types/nullability.dart:83:8: Error: The parameter 'e5NNR' can't have a value of 'null' because of its type 'E5', but the implicit default value is 'null'. |
| // Try adding either an explicit non-'null' default value or the 'required' modifier. |
| // E5 e5NNR, // Error. |
| // ^^^^^ |
| // |
| // pkg/front_end/testcases/extension_types/nullability.dart:13:26: Error: A value of type 'E1<num?>' can't be assigned to a variable of type 'Object' because 'E1<num?>' is nullable and 'Object' isn't. |
| // - 'Object' is from 'dart:core'. |
| // Object x1numNullable = e1numNullableNNN; // Error. |
| // ^ |
| // |
| // pkg/front_end/testcases/extension_types/nullability.dart:14:21: Error: A value of type 'E1<double>' can't be assigned to a variable of type 'Object' because 'E1<double>' is nullable and 'Object' isn't. |
| // - 'Object' is from 'dart:core'. |
| // Object x1double = e1doubleNNN; // Error. |
| // ^ |
| // |
| // pkg/front_end/testcases/extension_types/nullability.dart:15:15: Error: A value of type 'E2' can't be assigned to a variable of type 'Object' because 'E2' is nullable and 'Object' isn't. |
| // - 'Object' is from 'dart:core'. |
| // Object x2 = e2NNN; // Error. |
| // ^ |
| // |
| // pkg/front_end/testcases/extension_types/nullability.dart:16:15: Error: A value of type 'E3' can't be assigned to a variable of type 'Object' because 'E3' is nullable and 'Object' isn't. |
| // - 'Object' is from 'dart:core'. |
| // Object x3 = e3NNN; // Error. |
| // ^ |
| // |
| // pkg/front_end/testcases/extension_types/nullability.dart:17:15: Error: A value of type 'E4' can't be assigned to a variable of type 'Object' because 'E4' is nullable and 'Object' isn't. |
| // - 'Object' is from 'dart:core'. |
| // Object x4 = e4NNN; // Error. |
| // ^ |
| // |
| // pkg/front_end/testcases/extension_types/nullability.dart:18:15: Error: A value of type 'E5' can't be assigned to a variable of type 'Object' because 'E5' is nullable and 'Object' isn't. |
| // - 'Object' is from 'dart:core'. |
| // Object x5 = e5NNN; // Error. |
| // ^ |
| // |
| // pkg/front_end/testcases/extension_types/nullability.dart:26:21: Error: The value 'null' can't be assigned to a variable of type 'E1<num?>' because 'E1<num?>' is not nullable. |
| // e1numNullableNN = null; // Error. |
| // ^ |
| // |
| // pkg/front_end/testcases/extension_types/nullability.dart:27:16: Error: The value 'null' can't be assigned to a variable of type 'E1<double>' because 'E1<double>' is not nullable. |
| // e1doubleNN = null; // Error. |
| // ^ |
| // |
| // pkg/front_end/testcases/extension_types/nullability.dart:28:10: Error: The value 'null' can't be assigned to a variable of type 'E2' because 'E2' is not nullable. |
| // e2NN = null; // Error. |
| // ^ |
| // |
| // pkg/front_end/testcases/extension_types/nullability.dart:29:10: Error: The value 'null' can't be assigned to a variable of type 'E3' because 'E3' is not nullable. |
| // e3NN = null; // Error. |
| // ^ |
| // |
| // pkg/front_end/testcases/extension_types/nullability.dart:30:10: Error: The value 'null' can't be assigned to a variable of type 'E4' because 'E4' is not nullable. |
| // e4NN = null; // Error. |
| // ^ |
| // |
| // pkg/front_end/testcases/extension_types/nullability.dart:31:10: Error: The value 'null' can't be assigned to a variable of type 'E5' because 'E5' is not nullable. |
| // e5NN = null; // Error. |
| // ^ |
| // |
| // pkg/front_end/testcases/extension_types/nullability.dart:45:12: Error: Field 'e1numNullableA' should be initialized because its type 'E1<num?>' doesn't allow null. |
| // E1<num?> e1numNullableA; // Error. |
| // ^^^^^^^^^^^^^^ |
| // |
| // pkg/front_end/testcases/extension_types/nullability.dart:46:14: Error: Field 'e1doubleA' should be initialized because its type 'E1<double>' doesn't allow null. |
| // E1<double> e1doubleA; // Error. |
| // ^^^^^^^^^ |
| // |
| // pkg/front_end/testcases/extension_types/nullability.dart:47:6: Error: Field 'e2A' should be initialized because its type 'E2' doesn't allow null. |
| // E2 e2A; // Error. |
| // ^^^ |
| // |
| // pkg/front_end/testcases/extension_types/nullability.dart:48:6: Error: Field 'e3A' should be initialized because its type 'E3' doesn't allow null. |
| // E3 e3A; // Error. |
| // ^^^ |
| // |
| // pkg/front_end/testcases/extension_types/nullability.dart:49:6: Error: Field 'e4A' should be initialized because its type 'E4' doesn't allow null. |
| // E4 e4A; // Error. |
| // ^^^ |
| // |
| // pkg/front_end/testcases/extension_types/nullability.dart:50:6: Error: Field 'e5A' should be initialized because its type 'E5' doesn't allow null. |
| // E5 e5A; // Error. |
| // ^^^ |
| // |
| import self as self; |
| import "dart:core" as core; |
| |
| class A extends core::Object { |
| field self::E1<core::num?>% /* erasure=core::num?, declared=! */ e1numNullableA = null; |
| field self::E1<core::double>% /* erasure=core::double, declared=! */ e1doubleA = null; |
| field self::E2% /* erasure=core::Object?, declared=! */ e2A = null; |
| field self::E3% /* erasure=core::String?, declared=! */ e3A = null; |
| field self::E4% /* erasure=core::int, declared=! */ e4A = null; |
| field self::E5% /* erasure=core::Object?, declared=! */ e5A = null; |
| field self::E1<core::num?>? /* erasure=core::num? */ e1numNullableANullable = null; |
| field self::E1<core::double>? /* erasure=core::double? */ e1doubleANullable = null; |
| field self::E2? /* erasure=core::Object? */ e2ANullable = null; |
| field self::E3? /* erasure=core::String? */ e3ANullable = null; |
| field self::E4? /* erasure=core::int? */ e4ANullable = null; |
| field self::E5? /* erasure=core::Object? */ e5ANullable = null; |
| synthetic constructor •() → self::A |
| : super core::Object::•() |
| ; |
| } |
| extension type E1<T extends core::Object? = dynamic>(T% foo) { |
| abstract extension-type-member representation-field get foo() → T%; |
| constructor • = self::E1|constructor#; |
| constructor tearoff • = self::E1|constructor#_#new#tearOff; |
| } |
| extension type E2(core::Object? foo) { |
| abstract extension-type-member representation-field get foo() → core::Object?; |
| constructor • = self::E2|constructor#; |
| constructor tearoff • = self::E2|constructor#_#new#tearOff; |
| } |
| extension type E3(self::E1<core::String?>% /* erasure=core::String?, declared=! */ foo) { |
| abstract extension-type-member representation-field get foo() → self::E1<core::String?>% /* erasure=core::String?, declared=! */; |
| constructor • = self::E3|constructor#; |
| constructor tearoff • = self::E3|constructor#_#new#tearOff; |
| } |
| extension type E4(self::E1<core::int>% /* erasure=core::int, declared=! */ foo) { |
| abstract extension-type-member representation-field get foo() → self::E1<core::int>% /* erasure=core::int, declared=! */; |
| constructor • = self::E4|constructor#; |
| constructor tearoff • = self::E4|constructor#_#new#tearOff; |
| } |
| extension type E5(self::E2% /* erasure=core::Object?, declared=! */ foo) { |
| abstract extension-type-member representation-field get foo() → self::E2% /* erasure=core::Object?, declared=! */; |
| constructor • = self::E5|constructor#; |
| constructor tearoff • = self::E5|constructor#_#new#tearOff; |
| } |
| static extension-type-member method E1|constructor#<T extends core::Object? = dynamic>(self::E1|constructor#::T% foo) → self::E1<self::E1|constructor#::T%>% /* erasure=self::E1|constructor#::T%, declared=! */ { |
| lowered final self::E1<self::E1|constructor#::T%>% /* erasure=self::E1|constructor#::T%, declared=! */ #this = foo; |
| return #this; |
| } |
| static extension-type-member method E1|constructor#_#new#tearOff<T extends core::Object? = dynamic>(self::E1|constructor#_#new#tearOff::T% foo) → self::E1<self::E1|constructor#_#new#tearOff::T%>% /* erasure=self::E1|constructor#_#new#tearOff::T%, declared=! */ |
| return self::E1|constructor#<self::E1|constructor#_#new#tearOff::T%>(foo); |
| static extension-type-member method E2|constructor#(core::Object? foo) → self::E2% /* erasure=core::Object?, declared=! */ { |
| lowered final self::E2% /* erasure=core::Object?, declared=! */ #this = foo; |
| return #this; |
| } |
| static extension-type-member method E2|constructor#_#new#tearOff(core::Object? foo) → self::E2% /* erasure=core::Object?, declared=! */ |
| return self::E2|constructor#(foo); |
| static extension-type-member method E3|constructor#(self::E1<core::String?>% /* erasure=core::String?, declared=! */ foo) → self::E3% /* erasure=core::String?, declared=! */ { |
| lowered final self::E3% /* erasure=core::String?, declared=! */ #this = foo; |
| return #this; |
| } |
| static extension-type-member method E3|constructor#_#new#tearOff(self::E1<core::String?>% /* erasure=core::String?, declared=! */ foo) → self::E3% /* erasure=core::String?, declared=! */ |
| return self::E3|constructor#(foo); |
| static extension-type-member method E4|constructor#(self::E1<core::int>% /* erasure=core::int, declared=! */ foo) → self::E4% /* erasure=core::int, declared=! */ { |
| lowered final self::E4% /* erasure=core::int, declared=! */ #this = foo; |
| return #this; |
| } |
| static extension-type-member method E4|constructor#_#new#tearOff(self::E1<core::int>% /* erasure=core::int, declared=! */ foo) → self::E4% /* erasure=core::int, declared=! */ |
| return self::E4|constructor#(foo); |
| static extension-type-member method E5|constructor#(self::E2% /* erasure=core::Object?, declared=! */ foo) → self::E5% /* erasure=core::Object?, declared=! */ { |
| lowered final self::E5% /* erasure=core::Object?, declared=! */ #this = foo; |
| return #this; |
| } |
| static extension-type-member method E5|constructor#_#new#tearOff(self::E2% /* erasure=core::Object?, declared=! */ foo) → self::E5% /* erasure=core::Object?, declared=! */ |
| return self::E5|constructor#(foo); |
| static method testNotNonNullable(self::E1<core::num?>% /* erasure=core::num?, declared=! */ e1numNullableNNN, self::E1<core::double>% /* erasure=core::double, declared=! */ e1doubleNNN, self::E2% /* erasure=core::Object?, declared=! */ e2NNN, self::E3% /* erasure=core::String?, declared=! */ e3NNN, self::E4% /* erasure=core::int, declared=! */ e4NNN, self::E5% /* erasure=core::Object?, declared=! */ e5NNN) → dynamic { |
| core::Object x1numNullable = invalid-expression "pkg/front_end/testcases/extension_types/nullability.dart:13:26: Error: A value of type 'E1<num?>' can't be assigned to a variable of type 'Object' because 'E1<num?>' is nullable and 'Object' isn't. |
| - 'Object' is from 'dart:core'. |
| Object x1numNullable = e1numNullableNNN; // Error. |
| ^" in let self::E1<core::num?>% /* erasure=core::num?, declared=! */ #t1 = e1numNullableNNN in #t1 == null ?{core::Object} #t1 as{TypeError} core::Object : #t1{core::Object}; |
| core::Object x1double = invalid-expression "pkg/front_end/testcases/extension_types/nullability.dart:14:21: Error: A value of type 'E1<double>' can't be assigned to a variable of type 'Object' because 'E1<double>' is nullable and 'Object' isn't. |
| - 'Object' is from 'dart:core'. |
| Object x1double = e1doubleNNN; // Error. |
| ^" in let self::E1<core::double>% /* erasure=core::double, declared=! */ #t2 = e1doubleNNN in #t2 == null ?{core::Object} #t2 as{TypeError} core::Object : #t2{core::Object}; |
| core::Object x2 = invalid-expression "pkg/front_end/testcases/extension_types/nullability.dart:15:15: Error: A value of type 'E2' can't be assigned to a variable of type 'Object' because 'E2' is nullable and 'Object' isn't. |
| - 'Object' is from 'dart:core'. |
| Object x2 = e2NNN; // Error. |
| ^" in let self::E2% /* erasure=core::Object?, declared=! */ #t3 = e2NNN in #t3 == null ?{core::Object} #t3 as{TypeError} core::Object : #t3{core::Object}; |
| core::Object x3 = invalid-expression "pkg/front_end/testcases/extension_types/nullability.dart:16:15: Error: A value of type 'E3' can't be assigned to a variable of type 'Object' because 'E3' is nullable and 'Object' isn't. |
| - 'Object' is from 'dart:core'. |
| Object x3 = e3NNN; // Error. |
| ^" in let self::E3% /* erasure=core::String?, declared=! */ #t4 = e3NNN in #t4 == null ?{core::Object} #t4 as{TypeError} core::Object : #t4{core::Object}; |
| core::Object x4 = invalid-expression "pkg/front_end/testcases/extension_types/nullability.dart:17:15: Error: A value of type 'E4' can't be assigned to a variable of type 'Object' because 'E4' is nullable and 'Object' isn't. |
| - 'Object' is from 'dart:core'. |
| Object x4 = e4NNN; // Error. |
| ^" in let self::E4% /* erasure=core::int, declared=! */ #t5 = e4NNN in #t5 == null ?{core::Object} #t5 as{TypeError} core::Object : #t5{core::Object}; |
| core::Object x5 = invalid-expression "pkg/front_end/testcases/extension_types/nullability.dart:18:15: Error: A value of type 'E5' can't be assigned to a variable of type 'Object' because 'E5' is nullable and 'Object' isn't. |
| - 'Object' is from 'dart:core'. |
| Object x5 = e5NNN; // Error. |
| ^" in let self::E5% /* erasure=core::Object?, declared=! */ #t6 = e5NNN in #t6 == null ?{core::Object} #t6 as{TypeError} core::Object : #t6{core::Object}; |
| } |
| static method testNotNullable(self::E1<core::num?>% /* erasure=core::num?, declared=! */ e1numNullableNN, self::E1<core::double>% /* erasure=core::double, declared=! */ e1doubleNN, self::E2% /* erasure=core::Object?, declared=! */ e2NN, self::E3% /* erasure=core::String?, declared=! */ e3NN, self::E4% /* erasure=core::int, declared=! */ e4NN, self::E5% /* erasure=core::Object?, declared=! */ e5NN, self::E1<core::num?>? /* erasure=core::num? */ e1numNullableNNNullable, self::E1<core::double>? /* erasure=core::double? */ e1doubleNNNullable, self::E2? /* erasure=core::Object? */ e2NNNullable, self::E3? /* erasure=core::String? */ e3NNNullable, self::E4? /* erasure=core::int? */ e4NNNullable, self::E5? /* erasure=core::Object? */ e5NNNullable) → dynamic { |
| e1numNullableNN = invalid-expression "pkg/front_end/testcases/extension_types/nullability.dart:26:21: Error: The value 'null' can't be assigned to a variable of type 'E1<num?>' because 'E1<num?>' is not nullable. |
| e1numNullableNN = null; // Error. |
| ^" in let Null #t7 = null in #t7 == null ?{self::E1<core::num?>% /* erasure=core::num?, declared=! */} #t7 as{TypeError} self::E1<core::num?>% /* erasure=core::num?, declared=! */ : #t7{self::E1<core::num?>% /* erasure=core::num?, declared=! */}; |
| e1doubleNN = invalid-expression "pkg/front_end/testcases/extension_types/nullability.dart:27:16: Error: The value 'null' can't be assigned to a variable of type 'E1<double>' because 'E1<double>' is not nullable. |
| e1doubleNN = null; // Error. |
| ^" in let Null #t8 = null in #t8 == null ?{self::E1<core::double>% /* erasure=core::double, declared=! */} #t8 as{TypeError} self::E1<core::double>% /* erasure=core::double, declared=! */ : #t8{self::E1<core::double>% /* erasure=core::double, declared=! */}; |
| e2NN = invalid-expression "pkg/front_end/testcases/extension_types/nullability.dart:28:10: Error: The value 'null' can't be assigned to a variable of type 'E2' because 'E2' is not nullable. |
| e2NN = null; // Error. |
| ^" in let Null #t9 = null in #t9 == null ?{self::E2% /* erasure=core::Object?, declared=! */} #t9 as{TypeError} self::E2% /* erasure=core::Object?, declared=! */ : #t9{self::E2% /* erasure=core::Object?, declared=! */}; |
| e3NN = invalid-expression "pkg/front_end/testcases/extension_types/nullability.dart:29:10: Error: The value 'null' can't be assigned to a variable of type 'E3' because 'E3' is not nullable. |
| e3NN = null; // Error. |
| ^" in let Null #t10 = null in #t10 == null ?{self::E3% /* erasure=core::String?, declared=! */} #t10 as{TypeError} self::E3% /* erasure=core::String?, declared=! */ : #t10{self::E3% /* erasure=core::String?, declared=! */}; |
| e4NN = invalid-expression "pkg/front_end/testcases/extension_types/nullability.dart:30:10: Error: The value 'null' can't be assigned to a variable of type 'E4' because 'E4' is not nullable. |
| e4NN = null; // Error. |
| ^" in let Null #t11 = null in #t11 == null ?{self::E4% /* erasure=core::int, declared=! */} #t11 as{TypeError} self::E4% /* erasure=core::int, declared=! */ : #t11{self::E4% /* erasure=core::int, declared=! */}; |
| e5NN = invalid-expression "pkg/front_end/testcases/extension_types/nullability.dart:31:10: Error: The value 'null' can't be assigned to a variable of type 'E5' because 'E5' is not nullable. |
| e5NN = null; // Error. |
| ^" in let Null #t12 = null in #t12 == null ?{self::E5% /* erasure=core::Object?, declared=! */} #t12 as{TypeError} self::E5% /* erasure=core::Object?, declared=! */ : #t12{self::E5% /* erasure=core::Object?, declared=! */}; |
| e1numNullableNNNullable = null; |
| e1doubleNNNullable = null; |
| e2NNNullable = null; |
| e3NNNullable = null; |
| e4NNNullable = null; |
| e5NNNullable = null; |
| } |
| static method testOptionalPositional([self::E1<core::num?>% /* erasure=core::num?, declared=! */ e1numNullableOP = #C1, self::E1<core::double>% /* erasure=core::double, declared=! */ e1doubleOP = #C1, self::E2% /* erasure=core::Object?, declared=! */ e2OP = #C1, self::E3% /* erasure=core::String?, declared=! */ e3OP = #C1, self::E4% /* erasure=core::int, declared=! */ e4OP = #C1, self::E5% /* erasure=core::Object?, declared=! */ e5OP = #C1, self::E1<core::num?>? /* erasure=core::num? */ e1numNullableOPNullable = #C1, self::E1<core::double>? /* erasure=core::double? */ e1doubleOPNullable = #C1, self::E2? /* erasure=core::Object? */ e2OPNullable = #C1, self::E3? /* erasure=core::String? */ e3OPNullable = #C1, self::E4? /* erasure=core::int? */ e4OPNullable = #C1, self::E5? /* erasure=core::Object? */ e5OPNullable = #C1]) → dynamic {} |
| static method testNamedNotRequired({self::E1<core::num?>% /* erasure=core::num?, declared=! */ e1numNullableNNR = #C1, self::E1<core::double>% /* erasure=core::double, declared=! */ e1doubleNNR = #C1, self::E2% /* erasure=core::Object?, declared=! */ e2NNR = #C1, self::E3% /* erasure=core::String?, declared=! */ e3NNR = #C1, self::E4% /* erasure=core::int, declared=! */ e4NNR = #C1, self::E5% /* erasure=core::Object?, declared=! */ e5NNR = #C1, self::E1<core::num?>? /* erasure=core::num? */ e1numNullableNNRNullable = #C1, self::E1<core::double>? /* erasure=core::double? */ e1doubleNNRNullable = #C1, self::E2? /* erasure=core::Object? */ e2NNRNullable = #C1, self::E3? /* erasure=core::String? */ e3NNRNullable = #C1, self::E4? /* erasure=core::int? */ e4NNRNullable = #C1, self::E5? /* erasure=core::Object? */ e5NNRNullable = #C1}) → dynamic {} |
| |
| constants { |
| #C1 = null |
| } |