| library; |
| import self as self; |
| import "dart:core" as core; |
| |
| typedef Function1<O extends core::Object? = dynamic, contravariant I extends core::Object? = dynamic> = (I%) → self::Class2<O%>?; |
| abstract class Class1 extends core::Object { |
| synthetic constructor •() → self::Class1 |
| ; |
| abstract get field1() → core::String; |
| } |
| abstract class Class2<V extends core::Object? = dynamic> extends core::Object { |
| synthetic constructor •() → self::Class2<self::Class2::V%> |
| ; |
| } |
| class Class3<V extends core::Object? = dynamic, D extends core::Object? = dynamic> extends core::Object { |
| synthetic constructor •() → self::Class3<self::Class3::V%, self::Class3::D%> |
| ; |
| } |
| class Class4<K extends core::Object? = dynamic, V extends core::Object? = dynamic> extends core::Object { |
| synthetic constructor •() → self::Class4<self::Class4::K%, self::Class4::V%> |
| ; |
| operator [](covariant-by-class self::Class4::K% key) → self::Class2<self::Class4::V%> |
| ; |
| } |
| class Class5 extends core::Object { |
| late final field self::Class4<core::String?, core::bool> field2; |
| late final field self::Class3<core::bool, self::Class1?> field3; |
| synthetic constructor •() → self::Class5 |
| ; |
| method method2() → dynamic |
| ; |
| get getter1() → self::Class2<self::Class1?> |
| ; |
| } |
| extension Extension1<V extends core::Object? = dynamic> on self::Class2<V%> { |
| method method1 = self::Extension1|method1; |
| method tearoff method1 = self::Extension1|get#method1; |
| } |
| static extension-member method Extension1|method1<V extends core::Object? = dynamic, M extends core::Object? = dynamic>(lowered final self::Class2<self::Extension1|method1::V%> #this, (self::Extension1|method1::V%) → self::Class2<self::Extension1|method1::M%>? f) → self::Class3<self::Extension1|method1::M%, self::Extension1|method1::V%> |
| ; |
| static extension-member method Extension1|get#method1<V extends core::Object? = dynamic>(lowered final self::Class2<self::Extension1|get#method1::V%> #this) → <M extends core::Object? = dynamic>((self::Extension1|get#method1::V%) → self::Class2<M%>?) → self::Class3<M%, self::Extension1|get#method1::V%> |
| return <M extends core::Object? = dynamic>((self::Extension1|get#method1::V%) → self::Class2<M%>? f) → self::Class3<M%, self::Extension1|get#method1::V%> => self::Extension1|method1<self::Extension1|get#method1::V%, M%>(#this, f); |