| Index: tool/input_sdk/lib/internal/iterable.dart | 
| diff --git a/tool/input_sdk/lib/internal/iterable.dart b/tool/input_sdk/lib/internal/iterable.dart | 
| index 96d2dbc5306e3e6be42d7448fcf4c1bbd9c5eb1e..fe9bbabff17943500c092bdce527a37fa9dedd9a 100644 | 
| --- a/tool/input_sdk/lib/internal/iterable.dart | 
| +++ b/tool/input_sdk/lib/internal/iterable.dart | 
| @@ -25,7 +25,7 @@ abstract class EfficientLength { | 
| * including [iterator]. | 
| */ | 
| abstract class ListIterable<E> extends IterableBase<E> | 
| -                               implements EfficientLength { | 
| +    implements EfficientLength { | 
| int get length; | 
| E elementAt(int i); | 
|  | 
| @@ -94,7 +94,7 @@ abstract class ListIterable<E> extends IterableBase<E> | 
| return false; | 
| } | 
|  | 
| -  E firstWhere(bool test(E element), { E orElse() }) { | 
| +  E firstWhere(bool test(E element), {E orElse()}) { | 
| int length = this.length; | 
| for (int i = 0; i < length; i++) { | 
| E element = elementAt(i); | 
| @@ -107,7 +107,7 @@ abstract class ListIterable<E> extends IterableBase<E> | 
| throw IterableElementError.noElement(); | 
| } | 
|  | 
| -  E lastWhere(bool test(E element), { E orElse() }) { | 
| +  E lastWhere(bool test(E element), {E orElse()}) { | 
| int length = this.length; | 
| for (int i = length - 1; i >= 0; i--) { | 
| E element = elementAt(i); | 
| @@ -172,7 +172,8 @@ abstract class ListIterable<E> extends IterableBase<E> | 
|  | 
| Iterable<E> where(bool test(E element)) => super.where(test); | 
|  | 
| -  Iterable/*<T>*/ map/*<T>*/(/*=T*/f(E element)) => new MappedListIterable<E, dynamic/*=T*/>(this, f); | 
| +  Iterable/*<T>*/ map/*<T>*/(/*=T*/ f(E element)) => | 
| +      new MappedListIterable<E, dynamic/*=T*/ >(this, f); | 
|  | 
| E reduce(E combine(var value, E element)) { | 
| int length = this.length; | 
| @@ -183,12 +184,13 @@ abstract class ListIterable<E> extends IterableBase<E> | 
| if (length != this.length) { | 
| throw new ConcurrentModificationError(this); | 
| } | 
| - | 
| } | 
| return value; | 
| } | 
|  | 
| -  /*=T*/ fold/*<T>*/(var/*=T*/ initialValue, /*=T*/combine(var/*=T*/ previousValue, E element)) { | 
| +  /*=T*/ fold/*<T>*/( | 
| +      var/*=T*/ initialValue, /*=T*/ combine( | 
| +          var/*=T*/ previousValue, E element)) { | 
| var value = initialValue; | 
| int length = this.length; | 
| for (int i = 0; i < length; i++) { | 
| @@ -208,7 +210,7 @@ abstract class ListIterable<E> extends IterableBase<E> | 
|  | 
| Iterable<E> takeWhile(bool test(E element)) => super.takeWhile(test); | 
|  | 
| -  List<E> toList({ bool growable: true }) { | 
| +  List<E> toList({bool growable: true}) { | 
| List<E> result; | 
| if (growable) { | 
| result = new List<E>()..length = length; | 
| @@ -231,7 +233,7 @@ abstract class ListIterable<E> extends IterableBase<E> | 
| } | 
|  | 
| class SubListIterable<E> extends ListIterable<E> { | 
| -  final Iterable<E> _iterable;  // Has efficient length and elementAt. | 
| +  final Iterable<E> _iterable; // Has efficient length and elementAt. | 
| final int _start; | 
| /** If null, represents the length of the iterable. */ | 
| final int _endOrLength; | 
| @@ -301,8 +303,8 @@ class SubListIterable<E> extends ListIterable<E> { | 
| if (_endOrLength != null && _endOrLength < end) end = _endOrLength; | 
| int length = end - start; | 
| if (length < 0) length = 0; | 
| -    List result = growable ? (new List<E>()..length = length) | 
| -                           : new List<E>(length); | 
| +    List result = | 
| +        growable ? (new List<E>()..length = length) : new List<E>(length); | 
| for (int i = 0; i < length; i++) { | 
| result[i] = _iterable.elementAt(start + i); | 
| if (_iterable.length < end) throw new ConcurrentModificationError(this); | 
| @@ -325,7 +327,9 @@ class ListIterator<E> implements Iterator<E> { | 
| E _current; | 
|  | 
| ListIterator(Iterable<E> iterable) | 
| -      : _iterable = iterable, _length = iterable.length, _index = 0; | 
| +      : _iterable = iterable, | 
| +        _length = iterable.length, | 
| +        _index = 0; | 
|  | 
| E get current => _current; | 
|  | 
| @@ -373,7 +377,7 @@ class MappedIterable<S, T> extends IterableBase<T> { | 
| } | 
|  | 
| class EfficientLengthMappedIterable<S, T> extends MappedIterable<S, T> | 
| -                                          implements EfficientLength { | 
| +    implements EfficientLength { | 
| EfficientLengthMappedIterable(Iterable iterable, T function(S value)) | 
| : super._(iterable, function); | 
| } | 
| @@ -403,7 +407,7 @@ class MappedIterator<S, T> extends Iterator<T> { | 
| * Expects efficient `length` and `elementAt` on the source iterable. | 
| */ | 
| class MappedListIterable<S, T> extends ListIterable<T> | 
| -                               implements EfficientLength { | 
| +    implements EfficientLength { | 
| final Iterable<S> _source; | 
| final _Transformation<S, T> _f; | 
|  | 
| @@ -413,7 +417,6 @@ class MappedListIterable<S, T> extends ListIterable<T> | 
| T elementAt(int index) => _f(_source.elementAt(index)); | 
| } | 
|  | 
| - | 
| typedef bool _ElementPredicate<E>(E element); | 
|  | 
| class WhereIterable<E> extends IterableBase<E> { | 
| @@ -465,8 +468,7 @@ class ExpandIterator<S, T> implements Iterator<T> { | 
|  | 
| ExpandIterator(this._iterator, Iterable<T> this._f(S element)); | 
|  | 
| -  void _nextExpansion() { | 
| -  } | 
| +  void _nextExpansion() {} | 
|  | 
| T get current => _current; | 
|  | 
| @@ -510,7 +512,7 @@ class TakeIterable<E> extends IterableBase<E> { | 
| } | 
|  | 
| class EfficientLengthTakeIterable<E> extends TakeIterable<E> | 
| -                                     implements EfficientLength { | 
| +    implements EfficientLength { | 
| EfficientLengthTakeIterable(Iterable<E> iterable, int takeCount) | 
| : super._(iterable, takeCount); | 
|  | 
| @@ -521,7 +523,6 @@ class EfficientLengthTakeIterable<E> extends TakeIterable<E> | 
| } | 
| } | 
|  | 
| - | 
| class TakeIterator<E> extends Iterator<E> { | 
| final Iterator<E> _iterator; | 
| int _remaining; | 
| @@ -610,7 +611,7 @@ class SkipIterable<E> extends IterableBase<E> { | 
| } | 
|  | 
| class EfficientLengthSkipIterable<E> extends SkipIterable<E> | 
| -                                     implements EfficientLength { | 
| +    implements EfficientLength { | 
| EfficientLengthSkipIterable(Iterable<E> iterable, int skipCount) | 
| : super._(iterable, skipCount); | 
|  | 
| @@ -683,13 +684,21 @@ class EmptyIterable<E> extends IterableBase<E> implements EfficientLength { | 
|  | 
| int get length => 0; | 
|  | 
| -  E get first { throw IterableElementError.noElement(); } | 
| +  E get first { | 
| +    throw IterableElementError.noElement(); | 
| +  } | 
|  | 
| -  E get last { throw IterableElementError.noElement(); } | 
| +  E get last { | 
| +    throw IterableElementError.noElement(); | 
| +  } | 
|  | 
| -  E get single { throw IterableElementError.noElement(); } | 
| +  E get single { | 
| +    throw IterableElementError.noElement(); | 
| +  } | 
|  | 
| -  E elementAt(int index) { throw new RangeError.range(index, 0, 0, "index"); } | 
| +  E elementAt(int index) { | 
| +    throw new RangeError.range(index, 0, 0, "index"); | 
| +  } | 
|  | 
| bool contains(Object element) => false; | 
|  | 
| @@ -697,17 +706,17 @@ class EmptyIterable<E> extends IterableBase<E> implements EfficientLength { | 
|  | 
| bool any(bool test(E element)) => false; | 
|  | 
| -  E firstWhere(bool test(E element), { E orElse() }) { | 
| +  E firstWhere(bool test(E element), {E orElse()}) { | 
| if (orElse != null) return orElse(); | 
| throw IterableElementError.noElement(); | 
| } | 
|  | 
| -  E lastWhere(bool test(E element), { E orElse() }) { | 
| +  E lastWhere(bool test(E element), {E orElse()}) { | 
| if (orElse != null) return orElse(); | 
| throw IterableElementError.noElement(); | 
| } | 
|  | 
| -  E singleWhere(bool test(E element), { E orElse() }) { | 
| +  E singleWhere(bool test(E element), {E orElse()}) { | 
| if (orElse != null) return orElse(); | 
| throw IterableElementError.noElement(); | 
| } | 
| @@ -722,7 +731,9 @@ class EmptyIterable<E> extends IterableBase<E> implements EfficientLength { | 
| throw IterableElementError.noElement(); | 
| } | 
|  | 
| -  /*=T*/ fold/*<T>*/(var/*=T*/ initialValue, /*=T*/ combine(var/*=T*/ previousValue, E element)) { | 
| +  /*=T*/ fold/*<T>*/( | 
| +      var/*=T*/ initialValue, /*=T*/ combine( | 
| +          var/*=T*/ previousValue, E element)) { | 
| return initialValue; | 
| } | 
|  | 
| @@ -740,7 +751,7 @@ class EmptyIterable<E> extends IterableBase<E> implements EfficientLength { | 
|  | 
| Iterable<E> takeWhile(bool test(E element)) => this; | 
|  | 
| -  List<E> toList({ bool growable: true }) => growable ? <E>[] : new List<E>(0); | 
| +  List<E> toList({bool growable: true}) => growable ? <E>[] : new List<E>(0); | 
|  | 
| Set<E> toSet() => new Set<E>(); | 
| } | 
| @@ -791,7 +802,7 @@ class IterableMixinWorkaround<T> { | 
| } | 
|  | 
| static dynamic/*=E*/ reduce/*<E>*/(Iterable/*<E>*/ iterable, | 
| -                                  dynamic/*=E*/ combine(/*=E*/previousValue, /*=E*/element)) { | 
| +      dynamic/*=E*/ combine(/*=E*/ previousValue, /*=E*/ element)) { | 
| Iterator/*<E>*/ iterator = iterable.iterator; | 
| if (!iterator.moveNext()) throw IterableElementError.noElement(); | 
| var value = iterator.current; | 
| @@ -801,9 +812,10 @@ class IterableMixinWorkaround<T> { | 
| return value; | 
| } | 
|  | 
| -  static /*=V*/ fold/*<E, V>*/(Iterable/*<E>*/ iterable, | 
| -                               dynamic/*=V*/ initialValue, | 
| -                               dynamic/*=V*/ combine(dynamic/*=V*/ previousValue, /*=E*/element)) { | 
| +  static/*=V*/ fold/*<E, V>*/( | 
| +      Iterable/*<E>*/ iterable, | 
| +      dynamic/*=V*/ initialValue, | 
| +      dynamic/*=V*/ combine(dynamic/*=V*/ previousValue, /*=E*/ element)) { | 
| for (final element in iterable) { | 
| initialValue = combine(initialValue, element); | 
| } | 
| @@ -817,7 +829,8 @@ class IterableMixinWorkaround<T> { | 
| * to the [test] function. First the elements to retain are found, and then | 
| * the original list is updated to contain those elements. | 
| */ | 
| -  static void removeWhereList/*<E>*/(List/*<E>*/ list, bool test(var/*=E*/ element)) { | 
| +  static void removeWhereList/*<E>*/( | 
| +      List/*<E>*/ list, bool test(var/*=E*/ element)) { | 
| List/*<E>*/ retained = []; | 
| int length = list.length; | 
| for (int i = 0; i < length; i++) { | 
| @@ -856,7 +869,7 @@ class IterableMixinWorkaround<T> { | 
| var/*=E*/ result; | 
| do { | 
| result = it.current; | 
| -    } while(it.moveNext()); | 
| +    } while (it.moveNext()); | 
| return result; | 
| } | 
|  | 
| @@ -869,8 +882,7 @@ class IterableMixinWorkaround<T> { | 
| } | 
|  | 
| static dynamic/*=E*/ firstWhere/*<E>*/(Iterable/*<E>*/ iterable, | 
| -                                         bool test(dynamic/*=E*/ value), | 
| -                                         dynamic/*=E*/ orElse()) { | 
| +      bool test(dynamic/*=E*/ value), dynamic/*=E*/ orElse()) { | 
| for (var element in iterable) { | 
| if (test(element)) return element; | 
| } | 
| @@ -879,8 +891,7 @@ class IterableMixinWorkaround<T> { | 
| } | 
|  | 
| static dynamic/*=E*/ lastWhere/*<E>*/(Iterable/*<E>*/ iterable, | 
| -                           bool test(dynamic/*=E*/ value), | 
| -                           dynamic/*=E*/ orElse()) { | 
| +      bool test(dynamic/*=E*/ value), dynamic/*=E*/ orElse()) { | 
| dynamic/*=E*/ result = null; | 
| bool foundMatching = false; | 
| for (var element in iterable) { | 
| @@ -895,8 +906,7 @@ class IterableMixinWorkaround<T> { | 
| } | 
|  | 
| static dynamic/*=E*/ lastWhereList/*<E>*/(List/*<E>*/ list, | 
| -                               bool test(dynamic/*=E*/ value), | 
| -                               dynamic/*=E*/ orElse()) { | 
| +      bool test(dynamic/*=E*/ value), dynamic/*=E*/ orElse()) { | 
| // TODO(floitsch): check that arguments are of correct type? | 
| for (int i = list.length - 1; i >= 0; i--) { | 
| var element = list[i]; | 
| @@ -906,7 +916,8 @@ class IterableMixinWorkaround<T> { | 
| throw IterableElementError.noElement(); | 
| } | 
|  | 
| -  static dynamic/*=E*/ singleWhere/*<E>*/(Iterable/*<E>*/ iterable, bool test(dynamic/*=E*/ value)) { | 
| +  static dynamic/*=E*/ singleWhere/*<E>*/( | 
| +      Iterable/*<E>*/ iterable, bool test(dynamic/*=E*/ value)) { | 
| dynamic/*=E*/ result = null; | 
| bool foundMatching = false; | 
| for (var element in iterable) { | 
| @@ -961,15 +972,18 @@ class IterableMixinWorkaround<T> { | 
| return new WhereIterable<T>(iterable, f); | 
| } | 
|  | 
| -  static Iterable/*<V>*/ map/*<E, V>*/(Iterable/*<E>*/ iterable, /*=V*/ f(var/*=E*/ element)) { | 
| +  static Iterable/*<V>*/ map/*<E, V>*/( | 
| +      Iterable/*<E>*/ iterable, /*=V*/ f(var/*=E*/ element)) { | 
| return new MappedIterable/*<E, V>*/(iterable, f); | 
| } | 
|  | 
| -  static Iterable/*<V>*/ mapList/*<E, V>*/(List/*<E>*/ list, /*=V*/ f(var/*=E*/ element)) { | 
| +  static Iterable/*<V>*/ mapList/*<E, V>*/( | 
| +      List/*<E>*/ list, /*=V*/ f(var/*=E*/ element)) { | 
| return new MappedListIterable/*<E, V>*/(list, f); | 
| } | 
|  | 
| -  static Iterable/*<V>*/ expand/*<E, V>*/(Iterable/*<E>*/ iterable, Iterable/*<V>*/ f(var/*=E*/ element)) { | 
| +  static Iterable/*<V>*/ expand/*<E, V>*/( | 
| +      Iterable/*<E>*/ iterable, Iterable/*<V>*/ f(var/*=E*/ element)) { | 
| return new ExpandIterable/*<E, V>*/(iterable, f); | 
| } | 
|  | 
| @@ -1033,8 +1047,8 @@ class IterableMixinWorkaround<T> { | 
| return new SubListIterable<T>(list, start, end); | 
| } | 
|  | 
| -  static void setRangeList(List list, int start, int end, | 
| -                           Iterable from, int skipCount) { | 
| +  static void setRangeList( | 
| +      List list, int start, int end, Iterable from, int skipCount) { | 
| _rangeCheck(list, start, end); | 
| int length = end - start; | 
| if (length == 0) return; | 
| @@ -1057,8 +1071,8 @@ class IterableMixinWorkaround<T> { | 
| Lists.copy(otherList, otherStart, list, start, length); | 
| } | 
|  | 
| -  static void replaceRangeList(List list, int start, int end, | 
| -                               Iterable iterable) { | 
| +  static void replaceRangeList( | 
| +      List list, int start, int end, Iterable iterable) { | 
| _rangeCheck(list, start, end); | 
| if (iterable is! EfficientLength) { | 
| iterable = iterable.toList(); | 
| @@ -1077,7 +1091,7 @@ class IterableMixinWorkaround<T> { | 
| } else { | 
| int delta = insertLength - removeLength; | 
| int newLength = list.length + delta; | 
| -      int insertEnd = start + insertLength;  // aka. end + delta. | 
| +      int insertEnd = start + insertLength; // aka. end + delta. | 
| list.length = newLength; | 
| list.setRange(insertEnd, newLength, list, end); | 
| list.setRange(start, insertEnd, iterable); | 
|  |