| library; |
| import self as self; |
| import "dart:core" as core; |
| |
| typedef Exactly<invariant T extends core::Object? = dynamic> = (T%) → T%; |
| class C extends core::Object { |
| final field core::Object? _field; |
| constructor •([core::Object? _field = #C1]) → self::C |
| : self::C::_field = _field, super core::Object::•() |
| ; |
| method f([wildcard dynamic _#wc0#formal = #C1]) → void {} |
| } |
| extension StaticType<T extends core::Object? = dynamic> on T% { |
| method expectStaticType = self::StaticType|expectStaticType; |
| method tearoff expectStaticType = self::StaticType|get#expectStaticType; |
| } |
| static method fieldsPromotableWithinCascade(self::C c) → void { |
| let final self::C #t1 = c in #t1 == null ?{self::C} #t1 : block { |
| self::StaticType|expectStaticType<core::Object?, (core::Object?) → core::Object?>(#t1.{self::C::_field}{core::Object?}); |
| self::StaticType|expectStaticType<core::Object, (core::Object) → core::Object>(#t1.{self::C::_field}{core::Object?}!); |
| self::StaticType|expectStaticType<core::Object, (core::Object) → core::Object>(#t1.{self::C::_field}{core::Object?} as{Unchecked} core::Object); |
| } =>#t1; |
| let final self::C #t2 = c in #t2 == null ?{core::Object?} null : self::StaticType|expectStaticType<core::Object, (core::Object) → core::Object>(#t2.{self::C::_field}{core::Object?} as{Unchecked} core::Object); |
| } |
| static extension-member method StaticType|expectStaticType<T extends core::Object? = dynamic, R extends (self::StaticType|expectStaticType::T%) → self::StaticType|expectStaticType::T% = (dynamic) → dynamic>(lowered final self::StaticType|expectStaticType::T% #this) → self::StaticType|expectStaticType::T% { |
| return #this; |
| } |
| static extension-member method StaticType|get#expectStaticType<T extends core::Object? = dynamic>(lowered final self::StaticType|get#expectStaticType::T% #this) → <R extends (self::StaticType|get#expectStaticType::T%) → self::StaticType|get#expectStaticType::T% = (dynamic) → dynamic>() → self::StaticType|get#expectStaticType::T% |
| return <R extends (self::StaticType|get#expectStaticType::T%) → self::StaticType|get#expectStaticType::T% = (dynamic) → dynamic>() → self::StaticType|get#expectStaticType::T% => self::StaticType|expectStaticType<self::StaticType|get#expectStaticType::T%, R>(#this); |
| |
| constants { |
| #C1 = null |
| } |