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 {}
