Skip to content

Commit 63b49df

Browse files
kallentuCommit Queue
authored andcommitted
Deprecate checkValidIndex and avoid using it in the core library.
TEST=No new behaviour, existing tests pass. Change-Id: Ia7a8e58543bd5e1d8dd14bd46c5083759333845b Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/259104 Reviewed-by: Nate Bosch <nbosch@google.com> Reviewed-by: Lasse Nielsen <lrn@google.com> Commit-Queue: Kallen Tu <kallentu@google.com> Reviewed-by: Leaf Petersen <leafp@google.com>
1 parent e61ac81 commit 63b49df

File tree

31 files changed

+407
-225
lines changed

31 files changed

+407
-225
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,9 @@
6666
- Deprecated `FallThroughError`. Has not been thrown since Dart 2.0
6767
(see [#49529]).
6868
- Added `copyWith` extension method on `DateTime` (see [#24644]).
69+
- Deprecated `RangeError.checkValidIndex` in favor of `IndexError.check`.
70+
- Deprecated `IndexError` constructor in favor of `IndexError.withLength`
71+
constructor.
6972

7073
[#49529]: https://github.com/dart-lang/sdk/issues/49529
7174
[#24644]: https://github.com/dart-lang/sdk/issues/24644

pkg/analyzer/lib/src/utilities/extensions/library_element.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ extension _ElementExtension on Element {
2121
/// is a match up to [thisIndex].
2222
Element? _locateElement(ElementLocation location, int thisIndex) {
2323
final components = location.components;
24-
RangeError.checkValidIndex(thisIndex, components);
24+
IndexError.check(thisIndex, components.length, indexable: components);
2525

2626
final nextIndex = thisIndex + 1;
2727
if (nextIndex == components.length) {

runtime/tests/vm/dart/regress_47010_test.dart

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,10 @@ ArgumentError var46 = ArgumentError.value(22, 'K90\u{1f600}QtS', 33);
6161
ArgumentError? var47 = ArgumentError.notNull(')');
6262
RangeError var48 = RangeError.range(2, 23, 36, 'H', 'w&');
6363
RangeError? var49 = new RangeError(22);
64-
IndexError var50 = IndexError(15, 14, 'ZuC', '#1z9xJ', 1);
65-
IndexError? var51 = IndexError(14, 36, 'V(', '9Jf!0\u2665', 2);
64+
IndexError var50 =
65+
IndexError.withLength(15, 1, indexable: 14, name: 'ZuC', message: '#1z9xJ');
66+
IndexError? var51 = IndexError.withLength(14, 2,
67+
indexable: 36, name: 'V(', message: '9Jf!0\u2665');
6668
FallThroughError var52 = FallThroughError();
6769
FallThroughError? var53 = FallThroughError();
6870
AbstractClassInstantiationError var54 = AbstractClassInstantiationError('J!');

runtime/tests/vm/dart_2/regress_40462_test.dart

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,10 @@ TypeError var22 = TypeError();
5151
CastError var23 = CastError();
5252
NullThrownError var24 = new NullThrownError();
5353
ArgumentError var25 = ArgumentError.value(27, '', 18);
54-
RangeError var26 = RangeError.index(1, 42, '+m', 'JjY', 46);
55-
IndexError var27 = IndexError(38, 29, 'R1Z', 'VnR7', 13);
54+
RangeError var26 =
55+
IndexError.withLength(1, 46, indexable: 42, name: '+m', message: 'JjY');
56+
IndexError var27 =
57+
IndexError.withLength(38, 13, indexable: 29, name: 'R1Z', message: 'VnR7');
5658
FallThroughError var28 = new FallThroughError();
5759
AbstractClassInstantiationError var29 = AbstractClassInstantiationError('Sq');
5860
UnsupportedError var30 = UnsupportedError('(OXv');
@@ -899,7 +901,8 @@ class X1 extends X0 {
899901

900902
@override
901903
Int32x4List call(int par1) {
902-
var26 ??= IndexError(27, 18, '+Qy9', '', 6);
904+
var26 ??=
905+
IndexError.withLength(27, 6, indexable: 18, name: '+Qy9', message: '');
903906
{
904907
int loc0 = 41;
905908
while (--loc0 > 0) {
@@ -939,7 +942,10 @@ class X1 extends X0 {
939942
((loc0).modInverse(loc1) as int)))
940943
.isNegative),
941944
('D\u2665Sp' ==
942-
IndexError(14, 12, 'PDTOXf', '&5e', 13))
945+
IndexError.withLength(14, 13,
946+
indexable: 12,
947+
name: 'PDTOXf',
948+
message: '&5e'))
943949
]) ??
944950
[true, (!(false))])
945951
: [true]));
@@ -984,7 +990,8 @@ extension XE1 on X1 {
984990
: CastError());
985991
}
986992
}
987-
return IndexError(15, 17, 'yw', '', 20);
993+
return IndexError.withLength(15, 20,
994+
indexable: 17, name: 'yw', message: '');
988995
}
989996

990997
Expando<String> foo1_Extension1() {

runtime/vm/compiler/recognized_methods_list.h

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -384,40 +384,40 @@ namespace dart {
384384
V(_IntegerImplementation, <<, Integer_shl, 0x4a95c65b) \
385385

386386
#define GRAPH_TYPED_DATA_INTRINSICS_LIST(V) \
387-
V(_Int8List, [], Int8ArrayGetIndexed, 0x35f3fab6) \
388-
V(_Int8List, []=, Int8ArraySetIndexed, 0x6e4fdaa7) \
389-
V(_Uint8List, [], Uint8ArrayGetIndexed, 0x9b6c7e76) \
390-
V(_Uint8List, []=, Uint8ArraySetIndexed, 0xbadee66b) \
391-
V(_ExternalUint8Array, [], ExternalUint8ArrayGetIndexed, 0x9b6c7e76) \
392-
V(_ExternalUint8Array, []=, ExternalUint8ArraySetIndexed, 0xbadee66b) \
393-
V(_Uint8ClampedList, [], Uint8ClampedArrayGetIndexed, 0x9b6c7e76) \
394-
V(_Uint8ClampedList, []=, Uint8ClampedArraySetIndexed, 0xb0de9c0b) \
387+
V(_Int8List, [], Int8ArrayGetIndexed, 0x3cf7f9ce) \
388+
V(_Int8List, []=, Int8ArraySetIndexed, 0xf6867b8f) \
389+
V(_Uint8List, [], Uint8ArrayGetIndexed, 0xa2707d8e) \
390+
V(_Uint8List, []=, Uint8ArraySetIndexed, 0x43158753) \
391+
V(_ExternalUint8Array, [], ExternalUint8ArrayGetIndexed, 0xa2707d8e) \
392+
V(_ExternalUint8Array, []=, ExternalUint8ArraySetIndexed, 0x43158753) \
393+
V(_Uint8ClampedList, [], Uint8ClampedArrayGetIndexed, 0xa2707d8e) \
394+
V(_Uint8ClampedList, []=, Uint8ClampedArraySetIndexed, 0x39153cf3) \
395395
V(_ExternalUint8ClampedArray, [], ExternalUint8ClampedArrayGetIndexed, \
396-
0x9b6c7e76) \
396+
0xa2707d8e) \
397397
V(_ExternalUint8ClampedArray, []=, ExternalUint8ClampedArraySetIndexed, \
398-
0xb0de9c0b) \
399-
V(_Int16List, [], Int16ArrayGetIndexed, 0x15f25a16) \
400-
V(_Int16List, []=, Int16ArraySetIndexed, 0xfecf9e32) \
401-
V(_Uint16List, [], Uint16ArrayGetIndexed, 0xf9cb3616) \
402-
V(_Uint16List, []=, Uint16ArraySetIndexed, 0xe71245a9) \
403-
V(_Int32List, [], Int32ArrayGetIndexed, 0x178fffb5) \
404-
V(_Int32List, []=, Int32ArraySetIndexed, 0xdd041ad1) \
405-
V(_Uint32List, [], Uint32ArrayGetIndexed, 0x66e26555) \
406-
V(_Uint32List, []=, Uint32ArraySetIndexed, 0xc8a78f51) \
407-
V(_Int64List, [], Int64ArrayGetIndexed, 0x505859f5) \
408-
V(_Int64List, []=, Int64ArraySetIndexed, 0x5a2e23b7) \
409-
V(_Uint64List, [], Uint64ArrayGetIndexed, 0x8d1cbf75) \
410-
V(_Uint64List, []=, Uint64ArraySetIndexed, 0x258f94ef) \
411-
V(_Float64List, [], Float64ArrayGetIndexed, 0x6d778ebc) \
412-
V(_Float64List, []=, Float64ArraySetIndexed, 0xed47a595) \
413-
V(_Float32List, [], Float32ArrayGetIndexed, 0x43758fdc) \
414-
V(_Float32List, []=, Float32ArraySetIndexed, 0x489602c3) \
415-
V(_Float32x4List, [], Float32x4ArrayGetIndexed, 0xed5d8d35) \
416-
V(_Float32x4List, []=, Float32x4ArraySetIndexed, 0x0b093d30) \
417-
V(_Int32x4List, [], Int32x4ArrayGetIndexed, 0x834607ad) \
418-
V(_Int32x4List, []=, Int32x4ArraySetIndexed, 0x17a2cbc0) \
419-
V(_Float64x2List, [], Float64x2ArrayGetIndexed, 0xea0577df) \
420-
V(_Float64x2List, []=, Float64x2ArraySetIndexed, 0x8af8aa58) \
398+
0x39153cf3) \
399+
V(_Int16List, [], Int16ArrayGetIndexed, 0x1cf6592e) \
400+
V(_Int16List, []=, Int16ArraySetIndexed, 0x87063f1a) \
401+
V(_Uint16List, [], Uint16ArrayGetIndexed, 0x00cf352e) \
402+
V(_Uint16List, []=, Uint16ArraySetIndexed, 0x6f48e691) \
403+
V(_Int32List, [], Int32ArrayGetIndexed, 0x1e93fecd) \
404+
V(_Int32List, []=, Int32ArraySetIndexed, 0x653abbb9) \
405+
V(_Uint32List, [], Uint32ArrayGetIndexed, 0x6de6646d) \
406+
V(_Uint32List, []=, Uint32ArraySetIndexed, 0x50de3039) \
407+
V(_Int64List, [], Int64ArrayGetIndexed, 0x575c590d) \
408+
V(_Int64List, []=, Int64ArraySetIndexed, 0x905d6bcf) \
409+
V(_Uint64List, [], Uint64ArrayGetIndexed, 0x9420be8d) \
410+
V(_Uint64List, []=, Uint64ArraySetIndexed, 0x5bbedd07) \
411+
V(_Float64List, [], Float64ArrayGetIndexed, 0x91192954) \
412+
V(_Float64List, []=, Float64ArraySetIndexed, 0x8f1ba92d) \
413+
V(_Float32List, [], Float32ArrayGetIndexed, 0x67172a74) \
414+
V(_Float32List, []=, Float32ArraySetIndexed, 0xea6a065b) \
415+
V(_Float32x4List, [], Float32x4ArrayGetIndexed, 0x68d7290d) \
416+
V(_Float32x4List, []=, Float32x4ArraySetIndexed, 0x6eb9f208) \
417+
V(_Int32x4List, [], Int32x4ArrayGetIndexed, 0x7e4ff185) \
418+
V(_Int32x4List, []=, Int32x4ArraySetIndexed, 0x58084e98) \
419+
V(_Float64x2List, [], Float64x2ArrayGetIndexed, 0xb2996c37) \
420+
V(_Float64x2List, []=, Float64x2ArraySetIndexed, 0x5e8f97b0) \
421421
V(_TypedListBase, get:length, TypedListBaseLength, 0x5850f06b) \
422422
V(_ByteDataView, get:length, ByteDataViewLength, 0x5850f06b) \
423423
V(_Float32x4, get:x, Float32x4GetX, 0x3a398530) \

sdk/lib/_internal/js_dev_runtime/private/js_array.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -626,12 +626,12 @@ class JSArray<E> implements List<E>, JSIndexable<E> {
626626
}
627627

628628
void set first(E element) {
629-
if (this.isEmpty) throw RangeError.index(0, this);
629+
if (this.isEmpty) throw IndexError.withLength(0, length, indexable: this);
630630
this[0] = element;
631631
}
632632

633633
void set last(E element) {
634-
if (this.isEmpty) throw RangeError.index(0, this);
634+
if (this.isEmpty) throw IndexError.withLength(0, length, indexable: this);
635635
this[this.length - 1] = element;
636636
}
637637
}

sdk/lib/_internal/js_dev_runtime/private/js_helper.dart

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -478,9 +478,11 @@ class Primitives {
478478
Error diagnoseIndexError(indexable, int index) {
479479
int length = indexable.length;
480480
// The following returns the same error that would be thrown by calling
481-
// [RangeError.checkValidIndex] with no optional parameters provided.
481+
// [IndexError.check] with no optional parameters
482+
// provided.
482483
if (index < 0 || index >= length) {
483-
return RangeError.index(index, indexable, 'index', null, length);
484+
return IndexError.withLength(index, length,
485+
indexable: indexable, name: 'index');
484486
}
485487
// The above should always match, but if it does not, use the following.
486488
return RangeError.value(index, 'index');

sdk/lib/_internal/js_dev_runtime/private/js_string.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ class JSString extends Interceptor implements String, JSIndexable<String> {
2020
// (JS String.length cannot be null).
2121
final len = this.length;
2222
if (index < 0 || index >= len) {
23-
throw RangeError.index(index, this, 'index', null, len);
23+
throw IndexError.withLength(index, len, indexable: this, name: 'index');
2424
}
2525
return JS<int>('!', r'#.charCodeAt(#)', this, index);
2626
}

sdk/lib/_internal/js_runtime/lib/js_helper.dart

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1047,9 +1047,11 @@ Error diagnoseIndexError(indexable, index) {
10471047
if (index is! int) return new ArgumentError.value(index, 'index');
10481048
int length = indexable.length;
10491049
// The following returns the same error that would be thrown by calling
1050-
// [RangeError.checkValidIndex] with no optional parameters provided.
1050+
// [IndexError.check] with no optional parameters
1051+
// provided.
10511052
if (index < 0 || index >= length) {
1052-
return new RangeError.index(index, indexable, 'index', null, length);
1053+
return new IndexError.withLength(index, length,
1054+
indexable: indexable, name: 'index');
10531055
}
10541056
// The above should always match, but if it does not, use the following.
10551057
return new RangeError.value(index, 'index');

0 commit comments

Comments
 (0)