library test;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;

import "dart:async";

abstract class MyFuture extends core::Object implements asy::Future<core::int> {
  synthetic constructor •() → self::MyFuture
    : super core::Object::•()
    ;
}
static method test() → void async {
  core::int x0;
  asy::Future<core::int> x1;
  asy::Future<asy::Future<core::int>> x2;
  asy::Future<asy::FutureOr<core::int>> x3;
  asy::Future<self::MyFuture> x4;
  asy::FutureOr<core::int> x5;
  asy::FutureOr<asy::Future<core::int>> x6;
  asy::FutureOr<asy::FutureOr<core::int>> x7;
  asy::FutureOr<self::MyFuture> x8;
  self::MyFuture x9;
  function test0() → dynamic async 
    return x0;
  function test1() → dynamic async 
    return x1;
  function test2() → dynamic async 
    return x2;
  function test3() → dynamic async 
    return x3;
  function test4() → dynamic async 
    return x4;
  function test5() → dynamic async 
    return x5;
  function test6() → dynamic async 
    return x6;
  function test7() → dynamic async 
    return x7;
  function test8() → dynamic async 
    return x8;
  function test9() → dynamic async 
    return x9;
  dynamic y0 = await x0;
  dynamic y1 = await x1;
  dynamic y2 = await x2;
  dynamic y3 = await x3;
  dynamic y4 = await x4;
  dynamic y5 = await x5;
  dynamic y6 = await x6;
  dynamic y7 = await x7;
  dynamic y8 = await x8;
  dynamic y9 = await x9;
}
static method main() → dynamic {}
