|  | library test; | 
|  | // | 
|  | // Problems in library: | 
|  | // | 
|  | // pkg/front_end/testcases/inference/future_union_downwards.dart:21:44: Error: The argument type 'String' can't be assigned to the parameter type 'FutureOr<int>?'. | 
|  | //         new /*@typeArgs=int*/ Future.value('hi')); | 
|  | //                                            ^ | 
|  | // | 
|  | import self as self; | 
|  | import "dart:core" as core; | 
|  | import "dart:async" as asy; | 
|  |  | 
|  | import "dart:async"; | 
|  |  | 
|  | class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> { | 
|  | constructor •() → self::MyFuture<self::MyFuture::T%> | 
|  | : super core::Object::•() {} | 
|  | constructor value([dynamic x = #C1]) → self::MyFuture<self::MyFuture::T%> | 
|  | : super core::Object::•() {} | 
|  | method noSuchMethod(core::Invocation invocation) → dynamic | 
|  | return null; | 
|  | method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%> | 
|  | return throw ""; | 
|  | no-such-method-forwarder method catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%> | 
|  | return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol, dynamic>(<core::Symbol, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T%>; | 
|  | no-such-method-forwarder method whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%> | 
|  | return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T%>; | 
|  | no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T%> | 
|  | return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T%>; | 
|  | no-such-method-forwarder method timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%> | 
|  | return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol, dynamic>(<core::Symbol, dynamic>{#C10: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T%>; | 
|  | } | 
|  | static field self::MyFuture<dynamic> f = throw ""; | 
|  | static field asy::Future<core::int> t1 = self::f.{self::MyFuture::then}<core::int>((dynamic _#wc0#formal) → asy::Future<core::int> => asy::Future::value<core::int>(invalid-expression "pkg/front_end/testcases/inference/future_union_downwards.dart:21:44: Error: The argument type 'String' can't be assigned to the parameter type 'FutureOr<int>?'. | 
|  | new /*@typeArgs=int*/ Future.value('hi')); | 
|  | ^" in "hi" as{TypeError} FutureOr<core::int>?)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>}; | 
|  | static field asy::Future<core::List<core::int>> t2 = self::f.{self::MyFuture::then}<core::List<core::int>>((dynamic _#wc0#formal) → core::List<core::int> => core::_GrowableList::_literal1<core::int>(3)){((dynamic) → FutureOr<core::List<core::int>>, {onError: core::Function?}) → self::MyFuture<core::List<core::int>>}; | 
|  | static method g2() → asy::Future<core::List<core::int>> async /* emittedValueType= core::List<core::int> */ { | 
|  | return core::_GrowableList::_literal1<core::int>(3); | 
|  | } | 
|  | static method g3() → asy::Future<core::List<core::int>> async /* emittedValueType= core::List<core::int> */ { | 
|  | return asy::Future::value<core::List<core::int>>(core::_GrowableList::_literal1<core::int>(3)); | 
|  | } | 
|  | static method main() → dynamic {} | 
|  |  | 
|  | constants  { | 
|  | #C1 = null | 
|  | #C2 = #catchError | 
|  | #C3 = <core::Type>[] | 
|  | #C4 = #test | 
|  | #C5 = #whenComplete | 
|  | #C6 = <core::Symbol, dynamic>{} | 
|  | #C7 = #asStream | 
|  | #C8 = <dynamic>[] | 
|  | #C9 = #timeout | 
|  | #C10 = #onTimeout | 
|  | } |