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

import "dart:async";

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