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

static method warning(core::String s, core::List<core::String> l) → dynamic {
  let final core::String #t1 = s in #t1.{core::String::==}(null) ?{core::int?} null : #t1.{core::String::length};
  let final core::String #t2 = s in #t2.{core::String::==}(null) ?{core::String} null : let final void #t3 = #t2.{core::String::length} in #t2;
  let final core::String #t4 = s in #t4.{core::String::==}(null) ?{core::String} "foo" : #t4;
  s.{core::String::==}(null) ?{core::String} s = "foo" : null;
  block {
    final core::List<core::String> #t5 = <core::String>[];
    final core::Iterable<core::String>? #t6 = l;
    if(!#t6.{core::Object::==}(null))
      for (final core::String #t7 in #t6{core::Iterable<core::String>})
        #t5.{core::List::add}(#t7);
  } =>#t5;
  s!;
}
static method main() → dynamic {}
