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); x = x.{core::num::+}(1)) {
    if(x is core::int) {
      core::int y = x{core::int};
    }
  }
}
static method main() → dynamic {}
