class A {} | |
class B implements A { | |
@override | |
BoolET operator ==(Object? other) => BoolET(other == this); | |
@override | |
IntET get hashCode => IntET(super.hashCode); | |
@override | |
TypeET get runtimeType => TypeET(super.runtimeType); | |
} | |
extension type BoolET(bool b) implements bool {} | |
extension type ET1(B b) implements A {} | |
extension type ET2(B b) implements ET1, B {} | |
extension type IntET(int i) implements int {} | |
extension type TypeET(Type t) implements Type {} | |
void test() {} |