blob: 96aac877e763cba7b06e2cf6193a7ee656a512d2 [file] [log] [blame]
library;
//
// Problems in library:
//
// pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:14:15: Error: A value of type 'E1' can't be assigned to a variable of type 'Object' because 'E1' is nullable and 'Object' isn't.
// - 'Object' is from 'dart:core'.
// Object v1 = e1; // Error.
// ^
//
// pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:15:8: Error: The value 'null' can't be assigned to a variable of type 'E1' because 'E1' is not nullable.
// e1 = null; // Error.
// ^
//
// pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:18:8: Error: The value 'null' can't be assigned to a variable of type 'E2' because 'E2' is not nullable.
// e2 = null; // Error.
// ^
//
// pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:20: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 v3 = e3; // Error.
// ^
//
// pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:21:8: Error: The value 'null' can't be assigned to a variable of type 'E3' because 'E3' is not nullable.
// e3 = null; // Error.
// ^
//
// pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:24:8: Error: The value 'null' can't be assigned to a variable of type 'E4' because 'E4' is not nullable.
// e4 = null; // Error.
// ^
//
// pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:26:15: Error: A value of type 'E5<dynamic>' can't be assigned to a variable of type 'Object' because 'E5<dynamic>' is nullable and 'Object' isn't.
// - 'Object' is from 'dart:core'.
// Object v5 = e5; // Error.
// ^
//
// pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:27:8: Error: The value 'null' can't be assigned to a variable of type 'E5<dynamic>' because 'E5<dynamic>' is not nullable.
// e5 = null; // Error.
// ^
//
// pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:30:8: Error: The value 'null' can't be assigned to a variable of type 'E6<Object>' because 'E6<Object>' is not nullable.
// - 'Object' is from 'dart:core'.
// e6 = null; // Error.
// ^
//
// pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:33:8: Error: The value 'null' can't be assigned to a variable of type 'E7' because 'E7' is not nullable.
// e7 = null; // Error.
// ^
//
// pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:38:15: Error: A value of type 'X1' can't be assigned to a variable of type 'Object' because 'X1' is nullable and 'Object' isn't.
// - 'Object' is from 'dart:core'.
// Object v1 = x1; // Error.
// ^
//
// pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:39:8: Error: The value 'null' can't be assigned to a variable of type 'X1' because 'X1' is not nullable.
// x1 = null; // Error.
// ^
//
// pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:42:8: Error: The value 'null' can't be assigned to a variable of type 'X2' because 'X2' is not nullable.
// x2 = null; // Error.
// ^
//
// pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:44:15: Error: A value of type 'X3' can't be assigned to a variable of type 'Object' because 'X3' is nullable and 'Object' isn't.
// - 'Object' is from 'dart:core'.
// Object v3 = x3; // Error.
// ^
//
// pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:45:8: Error: The value 'null' can't be assigned to a variable of type 'X3' because 'X3' is not nullable.
// x3 = null; // Error.
// ^
//
// pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:48:8: Error: The value 'null' can't be assigned to a variable of type 'X4' because 'X4' is not nullable.
// x4 = null; // Error.
// ^
//
// pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:50:15: Error: A value of type 'X5' can't be assigned to a variable of type 'Object' because 'X5' is nullable and 'Object' isn't.
// - 'Object' is from 'dart:core'.
// Object v5 = x5; // Error.
// ^
//
// pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:51:8: Error: The value 'null' can't be assigned to a variable of type 'X5' because 'X5' is not nullable.
// x5 = null; // Error.
// ^
//
// pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:54:8: Error: The value 'null' can't be assigned to a variable of type 'X6' because 'X6' is not nullable.
// x6 = null; // Error.
// ^
//
// pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:57:8: Error: The value 'null' can't be assigned to a variable of type 'X7' because 'X7' is not nullable.
// x7 = null; // Error.
// ^
//
// pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:62:16: Error: A value of type 'Object?' can't be assigned to a variable of type 'Object' because 'Object?' is nullable and 'Object' isn't.
// - 'Object' is from 'dart:core'.
// Object v12 = v11; // Error.
// ^
//
// pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:67:9: Error: The value 'null' can't be assigned to a variable of type 'Object' because 'Object' is not nullable.
// - 'Object' is from 'dart:core'.
// v21 = null; // Error.
// ^
//
// pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:70:16: Error: A value of type 'Object?' can't be assigned to a variable of type 'Object' because 'Object?' is nullable and 'Object' isn't.
// - 'Object' is from 'dart:core'.
// Object v32 = v31; // Error.
// ^
//
// pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:75:9: Error: The value 'null' can't be assigned to a variable of type 'Object' because 'Object' is not nullable.
// - 'Object' is from 'dart:core'.
// v41 = null; // Error.
// ^
//
// pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:78:16: Error: A value of type 'Object?' can't be assigned to a variable of type 'Object' because 'Object?' is nullable and 'Object' isn't.
// - 'Object' is from 'dart:core'.
// Object v52 = v51; // Error.
// ^
//
// pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:83:9: Error: The value 'null' can't be assigned to a variable of type 'Object' because 'Object' is not nullable.
// - 'Object' is from 'dart:core'.
// v61 = null; // Error.
// ^
//
// pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:87:9: Error: The value 'null' can't be assigned to a variable of type 'Object' because 'Object' is not nullable.
// - 'Object' is from 'dart:core'.
// v71 = null; // Error.
// ^
//
import self as self;
import "dart:core" as core;
extension type E1(core::Object it) {
abstract extension-type-member representation-field get it() core::Object;
constructor = self::E1|constructor#;
constructor tearoff = self::E1|constructor#_#new#tearOff;
}
extension type E2(core::Object it) implements core::Object {
abstract extension-type-member representation-field get it() core::Object;
constructor = self::E2|constructor#;
constructor tearoff = self::E2|constructor#_#new#tearOff;
}
extension type E3(core::Object it) implements self::E1% /* erasure=core::Object, declared=! */ {
abstract extension-type-member representation-field get it() core::Object;
constructor = self::E3|constructor#;
constructor tearoff = self::E3|constructor#_#new#tearOff;
}
extension type E4(core::Object it) implements self::E2 /* erasure=core::Object */ {
abstract extension-type-member representation-field get it() core::Object;
constructor = self::E4|constructor#;
constructor tearoff = self::E4|constructor#_#new#tearOff;
}
extension type E5<X extends core::Object? = dynamic>(X% it) {
abstract extension-type-member representation-field get it() X%;
constructor = self::E5|constructor#;
constructor tearoff = self::E5|constructor#_#new#tearOff;
}
extension type E6<X extends core::Object>(X it) implements core::Object {
abstract extension-type-member representation-field get it() X;
constructor = self::E6|constructor#;
constructor tearoff = self::E6|constructor#_#new#tearOff;
}
extension type E7(core::num it) implements core::num {
abstract extension-type-member representation-field get it() core::num;
constructor = self::E7|constructor#;
constructor tearoff = self::E7|constructor#_#new#tearOff;
}
static extension-type-member method E1|constructor#(core::Object it) → self::E1% /* erasure=core::Object, declared=! */ {
lowered final self::E1% /* erasure=core::Object, declared=! */ #this = it;
return #this;
}
static extension-type-member method E1|constructor#_#new#tearOff(core::Object it) → self::E1% /* erasure=core::Object, declared=! */
return self::E1|constructor#(it);
static extension-type-member method E2|constructor#(core::Object it) → self::E2 /* erasure=core::Object */ {
lowered final self::E2 /* erasure=core::Object */ #this = it;
return #this;
}
static extension-type-member method E2|constructor#_#new#tearOff(core::Object it) → self::E2 /* erasure=core::Object */
return self::E2|constructor#(it);
static extension-type-member method E3|constructor#(core::Object it) → self::E3% /* erasure=core::Object, declared=! */ {
lowered final self::E3% /* erasure=core::Object, declared=! */ #this = it;
return #this;
}
static extension-type-member method E3|constructor#_#new#tearOff(core::Object it) → self::E3% /* erasure=core::Object, declared=! */
return self::E3|constructor#(it);
static extension-type-member method E4|constructor#(core::Object it) → self::E4 /* erasure=core::Object */ {
lowered final self::E4 /* erasure=core::Object */ #this = it;
return #this;
}
static extension-type-member method E4|constructor#_#new#tearOff(core::Object it) → self::E4 /* erasure=core::Object */
return self::E4|constructor#(it);
static extension-type-member method E5|constructor#<X extends core::Object? = dynamic>(self::E5|constructor#::X% it) → self::E5<self::E5|constructor#::X%>% /* erasure=self::E5|constructor#::X%, declared=! */ {
lowered final self::E5<self::E5|constructor#::X%>% /* erasure=self::E5|constructor#::X%, declared=! */ #this = it;
return #this;
}
static extension-type-member method E5|constructor#_#new#tearOff<X extends core::Object? = dynamic>(self::E5|constructor#_#new#tearOff::X% it) → self::E5<self::E5|constructor#_#new#tearOff::X%>% /* erasure=self::E5|constructor#_#new#tearOff::X%, declared=! */
return self::E5|constructor#<self::E5|constructor#_#new#tearOff::X%>(it);
static extension-type-member method E6|constructor#<X extends core::Object>(self::E6|constructor#::X it) → self::E6<self::E6|constructor#::X> /* erasure=self::E6|constructor#::X */ {
lowered final self::E6<self::E6|constructor#::X> /* erasure=self::E6|constructor#::X */ #this = it;
return #this;
}
static extension-type-member method E6|constructor#_#new#tearOff<X extends core::Object>(self::E6|constructor#_#new#tearOff::X it) → self::E6<self::E6|constructor#_#new#tearOff::X> /* erasure=self::E6|constructor#_#new#tearOff::X */
return self::E6|constructor#<self::E6|constructor#_#new#tearOff::X>(it);
static extension-type-member method E7|constructor#(core::num it) → self::E7 /* erasure=core::num */ {
lowered final self::E7 /* erasure=core::num */ #this = it;
return #this;
}
static extension-type-member method E7|constructor#_#new#tearOff(core::num it) → self::E7 /* erasure=core::num */
return self::E7|constructor#(it);
static method test1(self::E1% /* erasure=core::Object, declared=! */ e1, self::E2 /* erasure=core::Object */ e2, self::E3% /* erasure=core::Object, declared=! */ e3, self::E4 /* erasure=core::Object */ e4, self::E5<dynamic>% /* erasure=dynamic, declared=! */ e5, self::E6<core::Object> /* erasure=core::Object */ e6, self::E7 /* erasure=core::num */ e7) dynamic {
core::Object v1 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:14:15: Error: A value of type 'E1' can't be assigned to a variable of type 'Object' because 'E1' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
Object v1 = e1; // Error.
^" in e1 as{TypeError} core::Object;
e1 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:15:8: Error: The value 'null' can't be assigned to a variable of type 'E1' because 'E1' is not nullable.
e1 = null; // Error.
^" in null as{TypeError} self::E1% /* erasure=core::Object, declared=! */;
core::Object v2 = e2;
e2 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:18:8: Error: The value 'null' can't be assigned to a variable of type 'E2' because 'E2' is not nullable.
e2 = null; // Error.
^" in null as{TypeError} self::E2 /* erasure=core::Object */;
core::Object v3 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:20: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 v3 = e3; // Error.
^" in e3 as{TypeError} core::Object;
e3 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:21:8: Error: The value 'null' can't be assigned to a variable of type 'E3' because 'E3' is not nullable.
e3 = null; // Error.
^" in null as{TypeError} self::E3% /* erasure=core::Object, declared=! */;
core::Object v4 = e4;
e4 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:24:8: Error: The value 'null' can't be assigned to a variable of type 'E4' because 'E4' is not nullable.
e4 = null; // Error.
^" in null as{TypeError} self::E4 /* erasure=core::Object */;
core::Object v5 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:26:15: Error: A value of type 'E5<dynamic>' can't be assigned to a variable of type 'Object' because 'E5<dynamic>' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
Object v5 = e5; // Error.
^" in e5 as{TypeError} core::Object;
e5 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:27:8: Error: The value 'null' can't be assigned to a variable of type 'E5<dynamic>' because 'E5<dynamic>' is not nullable.
e5 = null; // Error.
^" in null as{TypeError} self::E5<dynamic>% /* erasure=dynamic, declared=! */;
core::Object v6 = e6;
e6 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:30:8: Error: The value 'null' can't be assigned to a variable of type 'E6<Object>' because 'E6<Object>' is not nullable.
- 'Object' is from 'dart:core'.
e6 = null; // Error.
^" in null as{TypeError} self::E6<core::Object> /* erasure=core::Object */;
core::Object v7 = e7;
e7 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:33:8: Error: The value 'null' can't be assigned to a variable of type 'E7' because 'E7' is not nullable.
e7 = null; // Error.
^" in null as{TypeError} self::E7 /* erasure=core::num */;
}
static method test2<X1 extends self::E1% /* erasure=core::Object, declared=! */, X2 extends self::E2 /* erasure=core::Object */, X3 extends self::E3% /* erasure=core::Object, declared=! */, X4 extends self::E4 /* erasure=core::Object */, X5 extends self::E5<dynamic>% /* erasure=dynamic, declared=! */, X6 extends self::E6<core::Object> /* erasure=core::Object */, X7 extends self::E7 /* erasure=core::num */>(self::test2::X1% x1, self::test2::X2 x2, self::test2::X3% x3, self::test2::X4 x4, self::test2::X5% x5, self::test2::X6 x6, self::test2::X7 x7) dynamic {
core::Object v1 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:38:15: Error: A value of type 'X1' can't be assigned to a variable of type 'Object' because 'X1' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
Object v1 = x1; // Error.
^" in x1 as{TypeError} core::Object;
x1 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:39:8: Error: The value 'null' can't be assigned to a variable of type 'X1' because 'X1' is not nullable.
x1 = null; // Error.
^" in null as{TypeError} Never;
core::Object v2 = x2;
x2 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:42:8: Error: The value 'null' can't be assigned to a variable of type 'X2' because 'X2' is not nullable.
x2 = null; // Error.
^" in null as{TypeError} Never;
core::Object v3 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:44:15: Error: A value of type 'X3' can't be assigned to a variable of type 'Object' because 'X3' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
Object v3 = x3; // Error.
^" in x3 as{TypeError} core::Object;
x3 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:45:8: Error: The value 'null' can't be assigned to a variable of type 'X3' because 'X3' is not nullable.
x3 = null; // Error.
^" in null as{TypeError} Never;
core::Object v4 = x4;
x4 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:48:8: Error: The value 'null' can't be assigned to a variable of type 'X4' because 'X4' is not nullable.
x4 = null; // Error.
^" in null as{TypeError} Never;
core::Object v5 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:50:15: Error: A value of type 'X5' can't be assigned to a variable of type 'Object' because 'X5' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
Object v5 = x5; // Error.
^" in x5 as{TypeError} core::Object;
x5 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:51:8: Error: The value 'null' can't be assigned to a variable of type 'X5' because 'X5' is not nullable.
x5 = null; // Error.
^" in null as{TypeError} Never;
core::Object v6 = x6;
x6 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:54:8: Error: The value 'null' can't be assigned to a variable of type 'X6' because 'X6' is not nullable.
x6 = null; // Error.
^" in null as{TypeError} Never;
core::Object v7 = x7;
x7 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:57:8: Error: The value 'null' can't be assigned to a variable of type 'X7' because 'X7' is not nullable.
x7 = null; // Error.
^" in null as{TypeError} Never;
}
static method test3(self::E1% /* erasure=core::Object, declared=! */ e1, self::E2 /* erasure=core::Object */ e2, self::E3% /* erasure=core::Object, declared=! */ e3, self::E4 /* erasure=core::Object */ e4, self::E5<dynamic>% /* erasure=dynamic, declared=! */ e5, self::E6<core::Object> /* erasure=core::Object */ e6, self::E7 /* erasure=core::num */ e7, core::String s, core::bool b) dynamic {
core::Object? v11 = b ?{core::Object?} e1 : s;
core::Object v12 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:62:16: Error: A value of type 'Object?' can't be assigned to a variable of type 'Object' because 'Object?' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
Object v12 = v11; // Error.
^" in v11 as{TypeError} core::Object;
v11 = null;
core::Object v21 = b ?{core::Object} e2 : s;
core::Object v22 = v21;
v21 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:67:9: Error: The value 'null' can't be assigned to a variable of type 'Object' because 'Object' is not nullable.
- 'Object' is from 'dart:core'.
v21 = null; // Error.
^" in null as{TypeError} core::Object;
core::Object? v31 = b ?{core::Object?} e3 : s;
core::Object v32 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:70:16: Error: A value of type 'Object?' can't be assigned to a variable of type 'Object' because 'Object?' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
Object v32 = v31; // Error.
^" in v31 as{TypeError} core::Object;
v31 = null;
core::Object v41 = b ?{core::Object} e4 : s;
core::Object v42 = v41;
v41 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:75:9: Error: The value 'null' can't be assigned to a variable of type 'Object' because 'Object' is not nullable.
- 'Object' is from 'dart:core'.
v41 = null; // Error.
^" in null as{TypeError} core::Object;
core::Object? v51 = b ?{core::Object?} e5 : s;
core::Object v52 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:78:16: Error: A value of type 'Object?' can't be assigned to a variable of type 'Object' because 'Object?' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
Object v52 = v51; // Error.
^" in v51 as{TypeError} core::Object;
v51 = null;
core::Object v61 = b ?{core::Object} e6 : s;
core::Object v62 = v61;
v61 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:83:9: Error: The value 'null' can't be assigned to a variable of type 'Object' because 'Object' is not nullable.
- 'Object' is from 'dart:core'.
v61 = null; // Error.
^" in null as{TypeError} core::Object;
core::Object v71 = b ?{core::Object} e7 : s;
core::Object v72 = v71;
v71 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:87:9: Error: The value 'null' can't be assigned to a variable of type 'Object' because 'Object' is not nullable.
- 'Object' is from 'dart:core'.
v71 = null; // Error.
^" in null as{TypeError} core::Object;
}