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

static method test(core::List<core::num> nums) → invalid-type {
  for (core::num x in nums) {
    if(x is core::int) {
      core::int y = x{core::int};
    }
  }
}
static method main() → dynamic {}
