blob: 2c6c33826cd4d8d30680e1fc7769de8348063a5c [file] [log] [blame] [edit]
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
}