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

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