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

import "dart:async";

static method test() → dynamic {
  dynamic f = () → asy::Stream<dynamic> async* {
    yield 1;
    asy::Stream<core::double> s;
    yield* s;
  };
  asy::Stream<core::num> g = f.call();
  asy::Stream<core::int> h = f.call();
}
static method main() → dynamic {}
