blob: 560964afa79ca0d3ab74f69ecec24cda59adfc0c [file] [log] [blame]
library;
//
// Problems in library:
//
// pkg/front_end/testcases/extension_types/built_in_types.dart:43:18: Error: A value of type 'bool' can't be assigned to a variable of type 'BoolET'.
// BoolET b2 = e2 == e2; /* Error */
// ^
//
import self as self;
import "dart:core" as core;
class A extends core::Object {
synthetic constructor •() self::A
: super core::Object::•()
;
}
class B extends core::Object implements self::A {
synthetic constructor •() self::B
: super core::Object::•()
;
@#C1
get hashCode() self::IntET /* erasure=core::int */
return self::IntET|constructor#(super.{core::Object::hashCode});
@#C1
get runtimeType() self::TypeET /* erasure=core::Type */
return self::TypeET|constructor#(super.{core::Object::runtimeType});
@#C1
operator ==(core::Object? other) self::BoolET /* erasure=core::bool */
return self::BoolET|constructor#(other =={core::Object::==}{(core::Object) → core::bool} this);
}
extension type ET1(self::B b) implements self::A {
abstract extension-type-member representation-field get b() self::B;
constructor = self::ET1|constructor#;
constructor tearoff = self::ET1|constructor#_#new#tearOff;
}
extension type ET2(self::B b) implements self::ET1 /* erasure=self::B */, self::B {
abstract extension-type-member representation-field get b() self::B;
constructor = self::ET2|constructor#;
constructor tearoff = self::ET2|constructor#_#new#tearOff;
}
extension type IntET(core::int i) implements core::int {
abstract extension-type-member representation-field get i() core::int;
constructor = self::IntET|constructor#;
constructor tearoff = self::IntET|constructor#_#new#tearOff;
}
extension type TypeET(core::Type t) implements core::Type {
abstract extension-type-member representation-field get t() core::Type;
constructor = self::TypeET|constructor#;
constructor tearoff = self::TypeET|constructor#_#new#tearOff;
}
extension type BoolET(core::bool b) implements core::bool {
abstract extension-type-member representation-field get b() core::bool;
constructor = self::BoolET|constructor#;
constructor tearoff = self::BoolET|constructor#_#new#tearOff;
}
static extension-type-member method ET1|constructor#(self::B b) → self::ET1 /* erasure=self::B */ {
lowered final self::ET1 /* erasure=self::B */ #this = b;
return #this;
}
static extension-type-member method ET1|constructor#_#new#tearOff(self::B b) → self::ET1 /* erasure=self::B */
return self::ET1|constructor#(b);
static extension-type-member method ET2|constructor#(self::B b) → self::ET2 /* erasure=self::B */ {
lowered final self::ET2 /* erasure=self::B */ #this = b;
return #this;
}
static extension-type-member method ET2|constructor#_#new#tearOff(self::B b) → self::ET2 /* erasure=self::B */
return self::ET2|constructor#(b);
static extension-type-member method IntET|constructor#(core::int i) → self::IntET /* erasure=core::int */ {
lowered final self::IntET /* erasure=core::int */ #this = i;
return #this;
}
static extension-type-member method IntET|constructor#_#new#tearOff(core::int i) → self::IntET /* erasure=core::int */
return self::IntET|constructor#(i);
static extension-type-member method TypeET|constructor#(core::Type t) → self::TypeET /* erasure=core::Type */ {
lowered final self::TypeET /* erasure=core::Type */ #this = t;
return #this;
}
static extension-type-member method TypeET|constructor#_#new#tearOff(core::Type t) → self::TypeET /* erasure=core::Type */
return self::TypeET|constructor#(t);
static extension-type-member method BoolET|constructor#(core::bool b) → self::BoolET /* erasure=core::bool */ {
lowered final self::BoolET /* erasure=core::bool */ #this = b;
return #this;
}
static extension-type-member method BoolET|constructor#_#new#tearOff(core::bool b) → self::BoolET /* erasure=core::bool */
return self::BoolET|constructor#(b);
static method test() void {
self::ET2 /* erasure=self::B */ e2 = self::ET2|constructor#(new self::B::•());
self::ET1 /* erasure=self::B */ e1 = e2;
core::int hc1 = e1.{core::Object::hashCode}{core::int};
self::IntET /* erasure=core::int */ hc2 = e2.{self::B::hashCode}{self::IntET /* erasure=core::int */};
core::Type t1 = e1.{core::Object::runtimeType}{core::Type};
self::TypeET /* erasure=core::Type */ t2 = e2.{self::B::runtimeType}{self::TypeET /* erasure=core::Type */};
core::bool b1 = e1 =={core::Object::==}{(core::Object) core::bool} e1;
self::BoolET /* erasure=core::bool */ b2 = invalid-expression "pkg/front_end/testcases/extension_types/built_in_types.dart:43:18: Error: A value of type 'bool' can't be assigned to a variable of type 'BoolET'.
BoolET b2 = e2 == e2; /* Error */
^" in (e2 =={self::B::==}{(core::Object?) self::BoolET /* erasure=core::bool */} e2) as{TypeError} self::BoolET /* erasure=core::bool */;
}
constants {
#C1 = core::_Override {}
}