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

static method test() → void {
  core::int i = 0;
  for (final core::int #t1 = i = i.{core::num::+}(1); i.{core::num::<}(10); i = i.{core::num::+}(1)) {
  }
  for (final core::int #t2 = i = i.{core::num::+}(1); i.{core::num::<}(10); i = i.{core::num::+}(1)) {
  }
  for (final core::int #t3 = i = i.{core::num::-}(1); i.{core::num::>=}(0); i = i.{core::num::-}(1)) {
  }
  for (final core::int #t4 = i = i.{core::num::-}(1); i.{core::num::>=}(0); i = i.{core::num::-}(1)) {
  }
}
static method main() → dynamic {}
