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

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