library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;

static method strings() → core::List<core::String> {
  core::Iterable<core::String> stuff = <dynamic>[].{core::Iterable::expand}<core::String>((dynamic i) → core::List<core::String> {
    return <core::String>[];
  }){((dynamic) → core::Iterable<core::String>) → core::Iterable<core::String>};
  return stuff.{core::Iterable::toList}(){({growable: core::bool}) → core::List<core::String>};
}
static method main() → dynamic {
  self::strings();
}
