| library; |
| import self as self; |
| import "dart:core" as core; |
| import "dart:_internal" as _in; |
| |
| static method main() → void { |
| { |
| synthesized core::Iterator<(core::Iterable<core::int>, core::Iterable<core::int>)> :sync-for-iterator = self::split<core::int>(core::_GrowableList::_literal3<core::int>(1, 2, 3)).{core::Iterable::iterator}{core::Iterator<(core::Iterable<core::int>, core::Iterable<core::int>)>}; |
| for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) { |
| (core::Iterable<core::int>, core::Iterable<core::int>) _ = :sync-for-iterator.{core::Iterator::current}{(core::Iterable<core::int>, core::Iterable<core::int>)}; |
| {} |
| } |
| } |
| } |
| static method split<A extends core::Object? = dynamic>(core::Iterable<self::split::A%> it) → core::Iterable<(core::Iterable<self::split::A%>, core::Iterable<self::split::A%>)> |
| return block { |
| core::Iterable<(core::Iterable<self::split::A%>, core::Iterable<self::split::A%>)> #t1; |
| final synthesized core::Iterable<self::split::A%> #1#0 = it; |
| #L1: |
| { |
| { |
| if(#C1 =={core::Object::==}{(core::Object) → core::bool} #1#0.{core::Iterable::isEmpty}{core::bool}) { |
| #t1 = core::_GrowableList::_literal1<(core::Iterable<self::split::A%>, core::Iterable<self::split::A%>)>((new _in::EmptyIterable::•<self::split::A%>(), new _in::EmptyIterable::•<self::split::A%>())); |
| break #L1; |
| } |
| } |
| { |
| hoisted self::split::A% x; |
| if(true) { |
| x = #1#0.{core::Iterable::first}{self::split::A%}; |
| #t1 = (() → core::Iterable<(core::Iterable<self::split::A%>, core::Iterable<self::split::A%>)> sync* /* emittedValueType= (core::Iterable<self::split::A%>, core::Iterable<self::split::A%>) */ { |
| yield(new _in::EmptyIterable::•<self::split::A%>(), it); |
| { |
| synthesized core::Iterator<(core::Iterable<self::split::A%>, core::Iterable<self::split::A%>)> :sync-for-iterator = self::split<self::split::A%>(it.{core::Iterable::skip}(1){(core::int) → core::Iterable<self::split::A%>}).{core::Iterable::iterator}{core::Iterator<(core::Iterable<self::split::A%>, core::Iterable<self::split::A%>)>}; |
| for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) { |
| final(core::Iterable<self::split::A%>, core::Iterable<self::split::A%>) #t2 = :sync-for-iterator.{core::Iterator::current}{(core::Iterable<self::split::A%>, core::Iterable<self::split::A%>)}; |
| { |
| hoisted core::Iterable<self::split::A%> ls; |
| hoisted core::Iterable<self::split::A%> rs; |
| { |
| final synthesized(core::Iterable<self::split::A%>, core::Iterable<self::split::A%>) #0#0 = #t2; |
| ls = #0#0.$1{core::Iterable<self::split::A%>}; |
| rs = #0#0.$2{core::Iterable<self::split::A%>}; |
| } |
| yield( block { |
| final core::List<self::split::A%> #t3 = core::_GrowableList::_literal1<self::split::A%>(x); |
| #t3.{core::List::addAll}{Invariant}(ls){(core::Iterable<self::split::A%>) → void}; |
| } =>#t3, rs); |
| } |
| } |
| } |
| })(){() → core::Iterable<(core::Iterable<self::split::A%>, core::Iterable<self::split::A%>)>}; |
| break #L1; |
| } |
| } |
| } |
| } =>#t1; |
| |
| constants { |
| #C1 = true |
| } |