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

static method test1() → dynamic {
  core::List<core::int*>* o;
  core::Iterable<core::Null*>* y = o.{core::Iterable::map}<core::Null*>((core::int* x) → core::Null* {});
  core::Iterable<core::int*>* z = y;
}
static method main() → dynamic {}
