blob: 59c793fe618f88859906624075c35240090b0b15 [file] [log] [blame]
library;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
typedef E<invariant S extends core::Object? = dynamic> = (S%) S%;
extension Est<T extends core::Object? = dynamic> on T% {
method st = self::Est|st;
method tearoff st = self::Est|get#st;
}
extension type F(asy::Future<core::int> _) implements asy::Future<core::int> {
abstract extension-type-member representation-field get _() asy::Future<core::int>;
constructor = self::F|constructor#;
constructor tearoff = self::F|constructor#_#new#tearOff;
}
static method cfeAwait<XF extends self::F /* erasure=asy::Future<core::int> */>(self::cfeAwait::XF xf) void async /* emittedValueType= void */ {
self::Est|st<core::int, (core::int) core::int>(await xf);
self::Est|get#st<core::int>(await xf)<(core::int) → core::int>;
core::int v1 = await xf;
v1.{core::int::toRadixString}(16){(core::int) core::String};
core::int v2 = v1;
core::int? v3 = v1;
v1 = v3{core::int};
}
static extension-type-member method F|constructor#(asy::Future<core::int> _) → self::F /* erasure=asy::Future<core::int> */ {
lowered final self::F /* erasure=asy::Future<core::int> */ #this = _;
return #this;
}
static extension-type-member method F|constructor#_#new#tearOff(asy::Future<core::int> _) → self::F /* erasure=asy::Future<core::int> */
return self::F|constructor#(_);
static method main() void {
self::cfeAwait<self::F /* erasure=asy::Future<core::int> */>(self::F|constructor#(asy::Future::value<core::int>(1)));
}
static extension-member method Est|st<T extends core::Object? = dynamic, X extends (self::Est|st::T%) self::Est|st::T% = (dynamic) dynamic>(lowered final self::Est|st::T% #this) → void {}
static extension-member method Est|get#st<T extends core::Object? = dynamic>(lowered final self::Est|get#st::T% #this) → <X extends (self::Est|get#st::T%) → self::Est|get#st::T% = (dynamic) → dynamic>() → void
return <X extends (self::Est|get#st::T%) → self::Est|get#st::T% = (dynamic) → dynamic>() → void => self::Est|st<self::Est|get#st::T%, X>(#this);