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

static method f(core::Object x) → void {
  if(x is core::int) {
    if(x{core::int} is core::String) {
      core::int y = x{core::int};
    }
  }
}
static method g(core::int x) → void {
  if(x is core::String) {
    core::int y = x;
  }
}
static method main() → dynamic {}
