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