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

static method test() → void {
  core::num* x;
  for (final core::int* #t1 = x = 0; x.{core::num::<}(10){(core::num*) →* core::bool*}; x = x.{core::num::+}(1){(core::num*) →* core::num*}) {
    if(x is core::int*) {
      core::int* y = x{core::int*};
    }
  }
}
static method main() → dynamic {}
