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

abstract class MyStream<T extends core::Object> extends asy::Stream<self::MyStream::T> {
  static factory •<T extends core::Object>() → self::MyStream<self::MyStream::•::T>
    return null;
}
static method foo() → asy::Stream<core::List<core::int>> async* {
  yield<dynamic>[];
  yield self::MyStream::•<dynamic>();
  yield*<dynamic>[];
  yield* self::MyStream::•<dynamic>();
}
static method bar() → core::Iterable<core::Map<core::int, core::int>> sync* {
  yield<dynamic, dynamic>{};
  yield core::List::•<dynamic>();
  yield*<dynamic, dynamic>{};
  yield* core::List::•<dynamic>();
}
static method main() → dynamic {}
