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

static method foo(core::int* x, core::int* y) → core::int* {
  dynamic z = x.+(y);
  return z.<<(4);
}
static method loop(core::List<dynamic>* xs) → void {
  core::int* _ = xs.length;
  for (core::int* i = 0; i.<(xs.length); i = i.+(1)) {
  }
}
static method main() → dynamic {
  self::foo(4, 5);
  self::foo(6, 7);
  self::loop(<dynamic>["dfg"]);
}
