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

static method getListOfString() → core::List<core::String*>*
  return #C1;
static method foo() → void {
  core::List<dynamic>* myList = self::getListOfString();
  myList.{core::Iterable::map}<core::int*>((dynamic type) → core::int* => 42){((dynamic) →* core::int*) →* core::Iterable<core::int*>*};
}
static method bar() → void {
  dynamic list;
  try {
    list = <core::String*>[];
  }
  on dynamic catch(final dynamic _) {
    return;
  }
  list{dynamic}.map((dynamic value) → core::String* => "${value}");
}
static method main() → dynamic {}

constants  {
  #C1 = <core::String*>[]
}
