Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(339)

Side by Side Diff: tools/dom/templates/immutable_list_mixin.darttemplate

Issue 14065011: Implement getRange (returning an Iterable). (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Address comments. Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // -- start List<$E> mixins. 1 // -- start List<$E> mixins.
2 // $E is the element type. 2 // $E is the element type.
3 3
4 // From Iterable<$E>: 4 // From Iterable<$E>:
5 5
6 Iterator<$E> get iterator { 6 Iterator<$E> get iterator {
7 // Note: NodeLists are not fixed size. And most probably length shouldn't 7 // Note: NodeLists are not fixed size. And most probably length shouldn't
8 // be cached in both iterator _and_ forEach method. For now caching it 8 // be cached in both iterator _and_ forEach method. For now caching it
9 // for consistency. 9 // for consistency.
10 return new FixedSizeListIterator<$E>(this); 10 return new FixedSizeListIterator<$E>(this);
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 } 176 }
177 177
178 void removeRange(int start, int rangeLength) { 178 void removeRange(int start, int rangeLength) {
179 throw new UnsupportedError("Cannot removeRange on immutable List."); 179 throw new UnsupportedError("Cannot removeRange on immutable List.");
180 } 180 }
181 181
182 void insertRange(int start, int rangeLength, [$E initialValue]) { 182 void insertRange(int start, int rangeLength, [$E initialValue]) {
183 throw new UnsupportedError("Cannot insertRange on immutable List."); 183 throw new UnsupportedError("Cannot insertRange on immutable List.");
184 } 184 }
185 185
186 Iterable<$E> getRange(int start, int end) =>
187 IterableMixinWorkaround.getRangeList(this, start, end);
188
186 List<$E> sublist(int start, [int end]) { 189 List<$E> sublist(int start, [int end]) {
187 if (end == null) end = length; 190 if (end == null) end = length;
188 return Lists.getRange(this, start, end, <$E>[]); 191 return Lists.getRange(this, start, end, <$E>[]);
189 } 192 }
190 193
191 List<$E> getRange(int start, int rangeLength) =>
192 sublist(start, start + rangeLength);
193
194 Map<int, $E> asMap() => 194 Map<int, $E> asMap() =>
195 IterableMixinWorkaround.asMapList(this); 195 IterableMixinWorkaround.asMapList(this);
196 196
197 String toString() { 197 String toString() {
198 StringBuffer buffer = new StringBuffer('['); 198 StringBuffer buffer = new StringBuffer('[');
199 buffer.writeAll(this, ', '); 199 buffer.writeAll(this, ', ');
200 buffer.write(']'); 200 buffer.write(']');
201 return buffer.toString(); 201 return buffer.toString();
202 } 202 }
203 203
204 // -- end List<$E> mixins. 204 // -- end List<$E> mixins.
OLDNEW
« no previous file with comments | « tools/dom/templates/html/impl/impl_Node.darttemplate ('k') | tools/testing/dart/test_runner.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698