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

class A extends core::Object {
  synthetic constructor •() → self::A
    : super core::Object::•()
    ;
  method foo(dynamic x) → asy::Future<void> async /* emittedValueType= void */ {}
}
class B extends core::Object {
  synthetic constructor •() → self::B
    : super core::Object::•()
    ;
  method bar(dynamic x) → asy::Future<void> async /* emittedValueType= void */ {}
}
static method main() → dynamic async /* emittedValueType= dynamic */ 
  return <asy::Future<void>>[new self::A::•().{self::A::foo}(await null /* runtimeCheckType= asy::Future<Null> */ ){(dynamic) → asy::Future<void>}, new self::B::•().{self::B::bar}(await null /* runtimeCheckType= asy::Future<Null> */ ){(dynamic) → asy::Future<void>}];
