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

static method id<T extends core::Object = dynamic>(self::id::T x) → self::id::T
  return x;
static method test() → dynamic async {
  asy::Future<core::String> f;
  core::String s = await self::id<asy::FutureOr<core::String>>(f);
}
static method main() → dynamic {}
