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

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