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

static method test1(dynamic x) → dynamic {
  {
    final synthesized dynamic #0#0 = x;
    {
      hoisted dynamic y;
      if(!(#0#0 == null)) {
        y = #0#0;
        {}
      }
    }
  }
  {
    final synthesized dynamic #1#0 = x;
    {
      hoisted core::int y;
      if(!(#1#0 == null) && #1#0 is core::int) {
        y = #1#0{core::int};
        {}
      }
    }
  }
}
static method test2(core::num x) → dynamic {
  {
    final synthesized core::num #0#0 = x;
    {
      hoisted core::num y;
      if(!(#0#0 == null)) {
        y = #0#0;
        {}
      }
    }
  }
  {
    final synthesized core::num #1#0 = x;
    {
      hoisted core::int y;
      if(!(#1#0 == null) && #1#0 is core::int) {
        y = #1#0{core::int};
        {}
      }
    }
  }
  {
    final synthesized core::num #2#0 = x;
    {
      hoisted core::String y;
      if(!(#2#0 == null) && #2#0 is core::String) {
        y = #2#0{core::String};
        {}
      }
    }
  }
}
