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

static method test() → dynamic async {
  core::Object o;
  for (dynamic x in o as{TypeError} core::Iterable<dynamic>) {
  }
  await for (dynamic x in o as{TypeError} asy::Stream<dynamic>) {
  }
  core::int y;
  for (final dynamic #t1 in o as{TypeError} core::Iterable<dynamic>) {
    y = #t1 as{TypeError} core::int;
  }
  await for (final dynamic #t2 in o as{TypeError} asy::Stream<dynamic>) {
    y = #t2 as{TypeError} core::int;
  }
}
static method main() → dynamic {}
