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

Side by Side Diff: runtime/lib/array.dart

Issue 8424012: Add optional arguments to our indexOf/lastIndexOf methods. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: '' Created 9 years, 1 month 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 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 class ListFactory<T> { 5 class ListFactory<T> {
6 6
7 factory List.from(Iterable<T> other) { 7 factory List.from(Iterable<T> other) {
8 GrowableObjectArray<T> list = new GrowableObjectArray<T>(); 8 GrowableObjectArray<T> list = new GrowableObjectArray<T>();
9 for (final e in other) { 9 for (final e in other) {
10 list.add(e); 10 list.add(e);
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 } 109 }
110 110
111 bool isEmpty() { 111 bool isEmpty() {
112 return this.length === 0; 112 return this.length === 0;
113 } 113 }
114 114
115 void sort(int compare(T a, T b)) { 115 void sort(int compare(T a, T b)) {
116 DualPivotQuicksort.sort(this, compare); 116 DualPivotQuicksort.sort(this, compare);
117 } 117 }
118 118
119 int indexOf(T element, int startIndex) { 119 int indexOf(T element, [int start = 0]) {
120 return Arrays.indexOf(this, element, startIndex, this.length); 120 return Arrays.indexOf(this, element, start, this.length);
121 } 121 }
122 122
123 int lastIndexOf(T element, int startIndex) { 123 int lastIndexOf(T element, [int start = null]) {
124 return Arrays.lastIndexOf(this, element, startIndex); 124 if (start === null) start = length - 1;
125 return Arrays.lastIndexOf(this, element, start);
125 } 126 }
126 127
127 Iterator<T> iterator() { 128 Iterator<T> iterator() {
128 return new FixedSizeArrayIterator<T>(this); 129 return new FixedSizeArrayIterator<T>(this);
129 } 130 }
130 131
131 void add(T element) { 132 void add(T element) {
132 throw const UnsupportedOperationException( 133 throw const UnsupportedOperationException(
133 "Cannot add to a non-extendable array"); 134 "Cannot add to a non-extendable array");
134 } 135 }
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
236 237
237 void sort(int compare(T a, T b)) { 238 void sort(int compare(T a, T b)) {
238 throw const UnsupportedOperationException( 239 throw const UnsupportedOperationException(
239 "Cannot modify an immutable array"); 240 "Cannot modify an immutable array");
240 } 241 }
241 242
242 String toString() { 243 String toString() {
243 return "ImmutableArray"; 244 return "ImmutableArray";
244 } 245 }
245 246
246 int indexOf(T element, int startIndex) { 247 int indexOf(T element, [int start = 0]) {
247 return Arrays.indexOf(this, element, startIndex, this.length); 248 return Arrays.indexOf(this, element, start, this.length);
248 } 249 }
249 250
250 int lastIndexOf(T element, int startIndex) { 251 int lastIndexOf(T element, [int start = null]) {
251 return Arrays.lastIndexOf(this, element, startIndex); 252 if (start === null) start = length - 1;
253 return Arrays.lastIndexOf(this, element, start);
252 } 254 }
253 255
254 Iterator<T> iterator() { 256 Iterator<T> iterator() {
255 return new FixedSizeArrayIterator<T>(this); 257 return new FixedSizeArrayIterator<T>(this);
256 } 258 }
257 259
258 void add(T element) { 260 void add(T element) {
259 throw const UnsupportedOperationException( 261 throw const UnsupportedOperationException(
260 "Cannot add to an immutable array"); 262 "Cannot add to an immutable array");
261 } 263 }
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
305 if (!hasNext()) { 307 if (!hasNext()) {
306 throw const NoMoreElementsException(); 308 throw const NoMoreElementsException();
307 } 309 }
308 return _array[_pos++]; 310 return _array[_pos++];
309 } 311 }
310 312
311 final List<T> _array; 313 final List<T> _array;
312 final int _length; // Cache array length for faster access. 314 final int _length; // Cache array length for faster access.
313 int _pos; 315 int _pos;
314 } 316 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698