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);
}
static method bar() → void {
  dynamic list;
  try {
    list = <core::String*>[];
  }
  on dynamic catch(final dynamic _) {
    return;
  }
  list.map((dynamic value) → core::String* => "${value}");
}
static method main() → dynamic {}

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