| library; |
| import self as self; |
| import "dart:core" as core; |
| import "dart:async" as asy; |
| |
| import "dart:async"; |
| |
| static method f() → FutureOr<core::Iterable<core::int>> sync* /* emittedValueType= core::int */ { |
| yield("Hello!" as dynamic) as{TypeError,ForDynamic} core::int; |
| } |
| static method g() → FutureOr<asy::Stream<core::int>> async* /* emittedValueType= core::int */ { |
| yield*("Hello!" as dynamic) as{TypeError,ForDynamic} asy::Stream<core::int>; |
| } |
| static method main() → dynamic async /* emittedValueType= dynamic */ { |
| FutureOr<core::Iterable<core::int>>iterable = self::f(); |
| if(iterable is asy::Future<core::Object?>) |
| return; |
| self::expectThrows(() → Null { |
| core::int i = iterable{core::Iterable<core::int>}.{core::Iterable::first}{core::int}; |
| }); |
| FutureOr<asy::Stream<core::int>>stream = self::g(); |
| if(stream is asy::Future<core::Object?>) |
| return; |
| await self::expectAsyncThrows(() → asy::Future<Null> async /* emittedValueType= Null */ { |
| core::int i = await stream{asy::Stream<core::int>}.{asy::Stream::first}{asy::Future<core::int>}; |
| }) /* runtimeCheckType= asy::Future<dynamic> */ ; |
| } |
| static method expectThrows(dynamic f) → dynamic { |
| core::bool hasThrown = true; |
| try { |
| f{dynamic}(); |
| hasThrown = false; |
| } |
| on core::Object catch(final core::Object e) { |
| } |
| if(!hasThrown) { |
| throw "Expected the function to throw."; |
| } |
| } |
| static method expectAsyncThrows(dynamic f) → dynamic async /* emittedValueType= dynamic */ { |
| core::bool hasThrown = true; |
| try { |
| await f{dynamic}() /* runtimeCheckType= asy::Future<dynamic> */ ; |
| hasThrown = false; |
| } |
| on core::Object catch(final core::Object e) { |
| } |
| if(!hasThrown) { |
| throw "Expected the function to throw."; |
| } |
| } |