1
0
mirror of https://github.com/dart-lang/sdk synced 2024-07-03 00:08:46 +00:00

[typed_data] Remove UnmodifiableXXXView classes

In most cases, the (now removed) SDK class was patched so that the constructor redirected to a platform-specific implementation of the unmodifiable view. Uses of the SDK class in the platform code could be rewritten to the more direct use of the implementation class.

The big +/- file changes are from moving the implementation classes from the patch file (typed_data_patch.dart), where they are no longer needed, to the internal file (typed_data.dart).

TEST=ci
Bug: #53785
Change-Id: Iaa7370de25b7fc2d26b24f7733c2892868e593cb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/370661
Reviewed-by: Ömer Ağacan <omersa@google.com>
Reviewed-by: Lasse Nielsen <lrn@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
Reviewed-by: Brian Quinlan <bquinlan@google.com>
This commit is contained in:
Stephen Adams 2024-06-13 22:18:29 +00:00 committed by Commit Queue
parent 7ae9900059
commit 18994e6e46
22 changed files with 993 additions and 2144 deletions

View File

@ -36,6 +36,16 @@
[#44876]: https://github.com/dart-lang/sdk/issues/44876
#### `dart:typed_data`
- **BREAKING CHANGE** [#53785][]: The unmodifiable view classes for typed data
have been removed. These classes were deprecated in Dart 3.4.
To create an unmodifiable view of a typed-data object, use the
`asUnmodifiableView()` methods added in Dart 3.3.
[#53785]: https://github.com/dart-lang/sdk/issues/53785
### Tools
#### Linter

View File

@ -2064,7 +2064,7 @@ TEST_CASE(DartAPI_UnmodifiableTypedDataViewListIsTypedData) {
"import 'dart:typed_data';\n"
"List testMain(int size) {\n"
" var a = new Int8List(size);\n"
" var view = new UnmodifiableInt8ListView(a);\n"
" var view = a.asUnmodifiableView();\n"
" return view;\n"
"}\n";
// Create a test library and Load up a test script in it.
@ -2709,7 +2709,7 @@ static void TestUnmodifiableTypedDataViewDirectAccess() {
" for (var i = 0; i < 100; i++) {"
" list[i] = i;"
" }"
" return new UnmodifiableInt8ListView(list);"
" return list.asUnmodifiableView();"
"}\n";
// Create a test library and Load up a test script in it.
Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, nullptr);

View File

@ -4,7 +4,6 @@
import 'dart:_internal' show patch;
import 'dart:_native_typed_data';
import "dart:_internal" show UnmodifiableListBase;
@patch
class ByteData {
@ -189,495 +188,3 @@ class Float64x2 {
@patch
factory Float64x2.fromFloat32x4(Float32x4 v) = NativeFloat64x2.fromFloat32x4;
}
/// A read-only view of a [ByteBuffer].
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableByteBufferView.
final class _UnmodifiableByteBufferView
implements ByteBuffer, UnmodifiableByteBufferView {
final ByteBuffer _data;
_UnmodifiableByteBufferView(ByteBuffer data) : _data = data;
int get lengthInBytes => _data.lengthInBytes;
Uint8List asUint8List([int offsetInBytes = 0, int? length]) =>
UnmodifiableUint8ListView(_data.asUint8List(offsetInBytes, length));
Int8List asInt8List([int offsetInBytes = 0, int? length]) =>
UnmodifiableInt8ListView(_data.asInt8List(offsetInBytes, length));
Uint8ClampedList asUint8ClampedList([int offsetInBytes = 0, int? length]) =>
UnmodifiableUint8ClampedListView(
_data.asUint8ClampedList(offsetInBytes, length));
Uint16List asUint16List([int offsetInBytes = 0, int? length]) =>
UnmodifiableUint16ListView(_data.asUint16List(offsetInBytes, length));
Int16List asInt16List([int offsetInBytes = 0, int? length]) =>
UnmodifiableInt16ListView(_data.asInt16List(offsetInBytes, length));
Uint32List asUint32List([int offsetInBytes = 0, int? length]) =>
UnmodifiableUint32ListView(_data.asUint32List(offsetInBytes, length));
Int32List asInt32List([int offsetInBytes = 0, int? length]) =>
UnmodifiableInt32ListView(_data.asInt32List(offsetInBytes, length));
Uint64List asUint64List([int offsetInBytes = 0, int? length]) =>
UnmodifiableUint64ListView(_data.asUint64List(offsetInBytes, length));
Int64List asInt64List([int offsetInBytes = 0, int? length]) =>
UnmodifiableInt64ListView(_data.asInt64List(offsetInBytes, length));
Int32x4List asInt32x4List([int offsetInBytes = 0, int? length]) =>
UnmodifiableInt32x4ListView(_data.asInt32x4List(offsetInBytes, length));
Float32List asFloat32List([int offsetInBytes = 0, int? length]) =>
UnmodifiableFloat32ListView(_data.asFloat32List(offsetInBytes, length));
Float64List asFloat64List([int offsetInBytes = 0, int? length]) =>
UnmodifiableFloat64ListView(_data.asFloat64List(offsetInBytes, length));
Float32x4List asFloat32x4List([int offsetInBytes = 0, int? length]) =>
UnmodifiableFloat32x4ListView(
_data.asFloat32x4List(offsetInBytes, length));
Float64x2List asFloat64x2List([int offsetInBytes = 0, int? length]) =>
UnmodifiableFloat64x2ListView(
_data.asFloat64x2List(offsetInBytes, length));
ByteData asByteData([int offsetInBytes = 0, int? length]) =>
UnmodifiableByteDataView(_data.asByteData(offsetInBytes, length));
}
/// A read-only view of a [ByteData].
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableByteDataView.
final class _UnmodifiableByteDataView
implements ByteData, UnmodifiableByteDataView {
final ByteData _data;
_UnmodifiableByteDataView(ByteData data) : _data = data;
ByteData asUnmodifiableView() => this;
int getInt8(int byteOffset) => _data.getInt8(byteOffset);
void setInt8(int byteOffset, int value) => _unsupported();
int getUint8(int byteOffset) => _data.getUint8(byteOffset);
void setUint8(int byteOffset, int value) => _unsupported();
int getInt16(int byteOffset, [Endian endian = Endian.big]) =>
_data.getInt16(byteOffset, endian);
void setInt16(int byteOffset, int value, [Endian endian = Endian.big]) =>
_unsupported();
int getUint16(int byteOffset, [Endian endian = Endian.big]) =>
_data.getUint16(byteOffset, endian);
void setUint16(int byteOffset, int value, [Endian endian = Endian.big]) =>
_unsupported();
int getInt32(int byteOffset, [Endian endian = Endian.big]) =>
_data.getInt32(byteOffset, endian);
void setInt32(int byteOffset, int value, [Endian endian = Endian.big]) =>
_unsupported();
int getUint32(int byteOffset, [Endian endian = Endian.big]) =>
_data.getUint32(byteOffset, endian);
void setUint32(int byteOffset, int value, [Endian endian = Endian.big]) =>
_unsupported();
int getInt64(int byteOffset, [Endian endian = Endian.big]) =>
_data.getInt64(byteOffset, endian);
void setInt64(int byteOffset, int value, [Endian endian = Endian.big]) =>
_unsupported();
int getUint64(int byteOffset, [Endian endian = Endian.big]) =>
_data.getUint64(byteOffset, endian);
void setUint64(int byteOffset, int value, [Endian endian = Endian.big]) =>
_unsupported();
double getFloat32(int byteOffset, [Endian endian = Endian.big]) =>
_data.getFloat32(byteOffset, endian);
void setFloat32(int byteOffset, double value, [Endian endian = Endian.big]) =>
_unsupported();
double getFloat64(int byteOffset, [Endian endian = Endian.big]) =>
_data.getFloat64(byteOffset, endian);
void setFloat64(int byteOffset, double value, [Endian endian = Endian.big]) =>
_unsupported();
int get elementSizeInBytes => _data.elementSizeInBytes;
int get offsetInBytes => _data.offsetInBytes;
int get lengthInBytes => _data.lengthInBytes;
ByteBuffer get buffer => UnmodifiableByteBufferView(_data.buffer);
void _unsupported() {
throw UnsupportedError("An UnmodifiableByteDataView may not be modified");
}
}
mixin _UnmodifiableListMixin<N, L extends List<N>, TD extends TypedData> {
L get _list;
TD get _data => (_list as TD);
int get length => _list.length;
N operator [](int index) => _list[index];
int get elementSizeInBytes => _data.elementSizeInBytes;
int get offsetInBytes => _data.offsetInBytes;
int get lengthInBytes => _data.lengthInBytes;
ByteBuffer get buffer => UnmodifiableByteBufferView(_data.buffer);
L _createList(int length);
L sublist(int start, [int? end]) {
// NNBD: Spurious error at `end`, `checkValidRange` is legacy.
int endIndex = RangeError.checkValidRange(start, end!, length);
int sublistLength = endIndex - start;
L result = _createList(sublistLength);
result.setRange(0, sublistLength, _list, start);
return result;
}
}
/// View of a [Uint8List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableUint8ListView.
final class _UnmodifiableUint8ListView extends UnmodifiableListBase<int>
with _UnmodifiableListMixin<int, Uint8List, Uint8List>
implements UnmodifiableUint8ListView {
final Uint8List _list;
_UnmodifiableUint8ListView(Uint8List list) : _list = list;
Uint8List asUnmodifiableView() => this;
Uint8List _createList(int length) => Uint8List(length);
}
/// View of a [Int8List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableInt8ListView.
final class _UnmodifiableInt8ListView extends UnmodifiableListBase<int>
with _UnmodifiableListMixin<int, Int8List, Int8List>
implements UnmodifiableInt8ListView {
final Int8List _list;
_UnmodifiableInt8ListView(Int8List list) : _list = list;
Int8List asUnmodifiableView() => this;
Int8List _createList(int length) => Int8List(length);
}
/// View of a [Uint8ClampedList] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableUint8ClampedListView.
final class _UnmodifiableUint8ClampedListView extends UnmodifiableListBase<int>
with _UnmodifiableListMixin<int, Uint8ClampedList, Uint8ClampedList>
implements UnmodifiableUint8ClampedListView {
final Uint8ClampedList _list;
_UnmodifiableUint8ClampedListView(Uint8ClampedList list) : _list = list;
Uint8ClampedList asUnmodifiableView() => this;
Uint8ClampedList _createList(int length) => Uint8ClampedList(length);
}
/// View of a [Uint16List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableUint16ListView.
final class _UnmodifiableUint16ListView extends UnmodifiableListBase<int>
with _UnmodifiableListMixin<int, Uint16List, Uint16List>
implements UnmodifiableUint16ListView {
final Uint16List _list;
_UnmodifiableUint16ListView(Uint16List list) : _list = list;
Uint16List asUnmodifiableView() => this;
Uint16List _createList(int length) => Uint16List(length);
}
/// View of a [Int16List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableInt16ListView.
final class _UnmodifiableInt16ListView extends UnmodifiableListBase<int>
with _UnmodifiableListMixin<int, Int16List, Int16List>
implements UnmodifiableInt16ListView {
final Int16List _list;
_UnmodifiableInt16ListView(Int16List list) : _list = list;
Int16List asUnmodifiableView() => this;
Int16List _createList(int length) => Int16List(length);
}
/// View of a [Uint32List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableUint32ListView.
final class _UnmodifiableUint32ListView extends UnmodifiableListBase<int>
with _UnmodifiableListMixin<int, Uint32List, Uint32List>
implements UnmodifiableUint32ListView {
final Uint32List _list;
_UnmodifiableUint32ListView(Uint32List list) : _list = list;
Uint32List asUnmodifiableView() => this;
Uint32List _createList(int length) => Uint32List(length);
}
/// View of a [Int32List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableInt32ListView.
final class _UnmodifiableInt32ListView extends UnmodifiableListBase<int>
with _UnmodifiableListMixin<int, Int32List, Int32List>
implements UnmodifiableInt32ListView {
final Int32List _list;
_UnmodifiableInt32ListView(Int32List list) : _list = list;
Int32List asUnmodifiableView() => this;
Int32List _createList(int length) => Int32List(length);
}
/// View of a [Uint64List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableUint64ListView.
final class _UnmodifiableUint64ListView extends UnmodifiableListBase<int>
with _UnmodifiableListMixin<int, Uint64List, Uint64List>
implements UnmodifiableUint64ListView {
final Uint64List _list;
_UnmodifiableUint64ListView(Uint64List list) : _list = list;
Uint64List asUnmodifiableView() => this;
Uint64List _createList(int length) => Uint64List(length);
}
/// View of a [Int64List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableInt64ListView.
final class _UnmodifiableInt64ListView extends UnmodifiableListBase<int>
with _UnmodifiableListMixin<int, Int64List, Int64List>
implements UnmodifiableInt64ListView {
final Int64List _list;
_UnmodifiableInt64ListView(Int64List list) : _list = list;
Int64List asUnmodifiableView() => this;
Int64List _createList(int length) => Int64List(length);
}
/// View of a [Int32x4List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableInt32x4ListView.
final class _UnmodifiableInt32x4ListView extends UnmodifiableListBase<Int32x4>
with _UnmodifiableListMixin<Int32x4, Int32x4List, Int32x4List>
implements UnmodifiableInt32x4ListView {
final Int32x4List _list;
_UnmodifiableInt32x4ListView(Int32x4List list) : _list = list;
Int32x4List asUnmodifiableView() => this;
Int32x4List _createList(int length) => Int32x4List(length);
}
/// View of a [Float32x4List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableFloat32x4ListView.
final class _UnmodifiableFloat32x4ListView
extends UnmodifiableListBase<Float32x4>
with _UnmodifiableListMixin<Float32x4, Float32x4List, Float32x4List>
implements UnmodifiableFloat32x4ListView {
final Float32x4List _list;
_UnmodifiableFloat32x4ListView(Float32x4List list) : _list = list;
Float32x4List asUnmodifiableView() => this;
Float32x4List _createList(int length) => Float32x4List(length);
}
/// View of a [Float64x2List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableFloat64x2ListView.
final class _UnmodifiableFloat64x2ListView
extends UnmodifiableListBase<Float64x2>
with _UnmodifiableListMixin<Float64x2, Float64x2List, Float64x2List>
implements UnmodifiableFloat64x2ListView {
final Float64x2List _list;
_UnmodifiableFloat64x2ListView(Float64x2List list) : _list = list;
Float64x2List asUnmodifiableView() => this;
Float64x2List _createList(int length) => Float64x2List(length);
}
/// View of a [Float32List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableFloat32ListView.
final class _UnmodifiableFloat32ListView extends UnmodifiableListBase<double>
with _UnmodifiableListMixin<double, Float32List, Float32List>
implements UnmodifiableFloat32ListView {
final Float32List _list;
_UnmodifiableFloat32ListView(Float32List list) : _list = list;
Float32List asUnmodifiableView() => this;
Float32List _createList(int length) => Float32List(length);
}
/// View of a [Float64List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableFloat64ListView.
final class _UnmodifiableFloat64ListView extends UnmodifiableListBase<double>
with _UnmodifiableListMixin<double, Float64List, Float64List>
implements UnmodifiableFloat64ListView {
final Float64List _list;
_UnmodifiableFloat64ListView(Float64List list) : _list = list;
Float64List asUnmodifiableView() => this;
Float64List _createList(int length) => Float64List(length);
}
@patch
abstract class UnmodifiableByteBufferView implements Uint8List {
@patch
factory UnmodifiableByteBufferView(ByteBuffer data) =
_UnmodifiableByteBufferView;
}
@patch
abstract class UnmodifiableByteDataView implements Uint8List {
@patch
factory UnmodifiableByteDataView(ByteData data) = _UnmodifiableByteDataView;
}
@patch
abstract class UnmodifiableUint8ListView implements Uint8List {
@patch
factory UnmodifiableUint8ListView(Uint8List list) =
_UnmodifiableUint8ListView;
}
@patch
abstract class UnmodifiableInt8ListView implements Int8List {
@patch
factory UnmodifiableInt8ListView(Int8List list) = _UnmodifiableInt8ListView;
}
@patch
abstract class UnmodifiableUint8ClampedListView implements Uint8ClampedList {
@patch
factory UnmodifiableUint8ClampedListView(Uint8ClampedList list) =
_UnmodifiableUint8ClampedListView;
}
@patch
abstract class UnmodifiableUint16ListView implements Uint16List {
@patch
factory UnmodifiableUint16ListView(Uint16List list) =
_UnmodifiableUint16ListView;
}
@patch
abstract class UnmodifiableInt16ListView implements Int16List {
@patch
factory UnmodifiableInt16ListView(Int16List list) =
_UnmodifiableInt16ListView;
}
@patch
abstract class UnmodifiableUint32ListView implements Uint32List {
@patch
factory UnmodifiableUint32ListView(Uint32List list) =
_UnmodifiableUint32ListView;
}
@patch
abstract class UnmodifiableInt32ListView implements Int32List {
@patch
factory UnmodifiableInt32ListView(Int32List list) =
_UnmodifiableInt32ListView;
}
@patch
abstract class UnmodifiableUint64ListView implements Uint64List {
@patch
factory UnmodifiableUint64ListView(Uint64List list) =
_UnmodifiableUint64ListView;
}
@patch
abstract class UnmodifiableInt64ListView implements Int64List {
@patch
factory UnmodifiableInt64ListView(Int64List list) =
_UnmodifiableInt64ListView;
}
@patch
abstract class UnmodifiableInt32x4ListView implements Int32x4List {
@patch
factory UnmodifiableInt32x4ListView(Int32x4List list) =
_UnmodifiableInt32x4ListView;
}
@patch
abstract class UnmodifiableFloat32x4ListView implements Float32x4List {
@patch
factory UnmodifiableFloat32x4ListView(Float32x4List list) =
_UnmodifiableFloat32x4ListView;
}
@patch
abstract class UnmodifiableFloat64x2ListView implements Float64x2List {
@patch
factory UnmodifiableFloat64x2ListView(Float64x2List list) =
_UnmodifiableFloat64x2ListView;
}
@patch
abstract class UnmodifiableFloat32ListView implements Float32List {
@patch
factory UnmodifiableFloat32ListView(Float32List list) =
_UnmodifiableFloat32ListView;
}
@patch
abstract class UnmodifiableFloat64ListView implements Float64List {
@patch
factory UnmodifiableFloat64ListView(Float64List list) =
_UnmodifiableFloat64ListView;
}

View File

@ -162,7 +162,7 @@ final class NativeFloat32x4List extends Object
_storage[(index * 4) + 3] = value.w;
}
Float32x4List asUnmodifiableView() => UnmodifiableFloat32x4ListView(this);
Float32x4List asUnmodifiableView() => _UnmodifiableFloat32x4ListView(this);
Float32x4List sublist(int start, [int? end]) {
var stop = _checkValidRange(start, end, this.length);
@ -236,7 +236,7 @@ final class NativeInt32x4List extends Object
_storage[(index * 4) + 3] = value.w;
}
Int32x4List asUnmodifiableView() => UnmodifiableInt32x4ListView(this);
Int32x4List asUnmodifiableView() => _UnmodifiableInt32x4ListView(this);
Int32x4List sublist(int start, [int? end]) {
var stop = _checkValidRange(start, end, this.length);
@ -304,7 +304,7 @@ final class NativeFloat64x2List extends Object
_storage[(index * 2) + 1] = value.y;
}
Float64x2List asUnmodifiableView() => UnmodifiableFloat64x2ListView(this);
Float64x2List asUnmodifiableView() => _UnmodifiableFloat64x2ListView(this);
Float64x2List sublist(int start, [int? end]) {
var stop = _checkValidRange(start, end, this.length);
@ -413,7 +413,7 @@ final class NativeByteData extends NativeTypedData implements ByteData {
int get elementSizeInBytes => 1;
ByteData asUnmodifiableView() => UnmodifiableByteDataView(this);
ByteData asUnmodifiableView() => _UnmodifiableByteDataView(this);
/// Returns the floating point number represented by the four bytes at
/// the specified [byteOffset] in this object, in IEEE 754
@ -765,7 +765,7 @@ final class NativeFloat32List extends NativeTypedArrayOfDouble
Type get runtimeType => Float32List;
Float32List asUnmodifiableView() => UnmodifiableFloat32ListView(this);
Float32List asUnmodifiableView() => _UnmodifiableFloat32ListView(this);
Float32List sublist(int start, [int? end]) {
var stop = _checkValidRange(start, end, this.length);
@ -799,7 +799,7 @@ final class NativeFloat64List extends NativeTypedArrayOfDouble
Type get runtimeType => Float64List;
Float64List asUnmodifiableView() => UnmodifiableFloat64ListView(this);
Float64List asUnmodifiableView() => _UnmodifiableFloat64ListView(this);
Float64List sublist(int start, [int? end]) {
var stop = _checkValidRange(start, end, this.length);
@ -836,7 +836,7 @@ final class NativeInt16List extends NativeTypedArrayOfInt implements Int16List {
return JS<int>('!', '#[#]', this, index);
}
Int16List asUnmodifiableView() => UnmodifiableInt16ListView(this);
Int16List asUnmodifiableView() => _UnmodifiableInt16ListView(this);
Int16List sublist(int start, [int? end]) {
var stop = _checkValidRange(start, end, this.length);
@ -873,7 +873,7 @@ final class NativeInt32List extends NativeTypedArrayOfInt implements Int32List {
return JS<int>('!', '#[#]', this, index);
}
Int32List asUnmodifiableView() => UnmodifiableInt32ListView(this);
Int32List asUnmodifiableView() => _UnmodifiableInt32ListView(this);
Int32List sublist(int start, [int? end]) {
var stop = _checkValidRange(start, end, this.length);
@ -911,7 +911,7 @@ final class NativeInt8List extends NativeTypedArrayOfInt implements Int8List {
return JS<int>('!', '#[#]', this, index);
}
Int8List asUnmodifiableView() => UnmodifiableInt8ListView(this);
Int8List asUnmodifiableView() => _UnmodifiableInt8ListView(this);
Int8List sublist(int start, [int? end]) {
var stop = _checkValidRange(start, end, this.length);
@ -952,7 +952,7 @@ final class NativeUint16List extends NativeTypedArrayOfInt
return JS<int>('!', '#[#]', this, index);
}
Uint16List asUnmodifiableView() => UnmodifiableUint16ListView(this);
Uint16List asUnmodifiableView() => _UnmodifiableUint16ListView(this);
Uint16List sublist(int start, [int? end]) {
var stop = _checkValidRange(start, end, this.length);
@ -991,7 +991,7 @@ final class NativeUint32List extends NativeTypedArrayOfInt
return JS<int>('!', '#[#]', this, index);
}
Uint32List asUnmodifiableView() => UnmodifiableUint32ListView(this);
Uint32List asUnmodifiableView() => _UnmodifiableUint32ListView(this);
Uint32List sublist(int start, [int? end]) {
var stop = _checkValidRange(start, end, this.length);
@ -1033,7 +1033,7 @@ final class NativeUint8ClampedList extends NativeTypedArrayOfInt
}
Uint8ClampedList asUnmodifiableView() =>
UnmodifiableUint8ClampedListView(this);
_UnmodifiableUint8ClampedListView(this);
Uint8ClampedList sublist(int start, [int? end]) {
var stop = _checkValidRange(start, end, this.length);
@ -1085,7 +1085,7 @@ final class NativeUint8List extends NativeTypedArrayOfInt implements Uint8List {
return JS<int>('!', '#[#]', this, index);
}
Uint8List asUnmodifiableView() => UnmodifiableUint8ListView(this);
Uint8List asUnmodifiableView() => _UnmodifiableUint8ListView(this);
Uint8List sublist(int start, [int? end]) {
var stop = _checkValidRange(start, end, this.length);
@ -1849,3 +1849,309 @@ int _checkValidRange(int start, int? end, int length) {
if (end == null) return length;
return end;
}
/// A read-only view of a [ByteBuffer].
final class _UnmodifiableByteBufferView implements ByteBuffer {
final ByteBuffer _data;
_UnmodifiableByteBufferView(ByteBuffer data) : _data = data;
int get lengthInBytes => _data.lengthInBytes;
Uint8List asUint8List([int offsetInBytes = 0, int? length]) =>
_UnmodifiableUint8ListView(_data.asUint8List(offsetInBytes, length));
Int8List asInt8List([int offsetInBytes = 0, int? length]) =>
_UnmodifiableInt8ListView(_data.asInt8List(offsetInBytes, length));
Uint8ClampedList asUint8ClampedList([int offsetInBytes = 0, int? length]) =>
_UnmodifiableUint8ClampedListView(
_data.asUint8ClampedList(offsetInBytes, length));
Uint16List asUint16List([int offsetInBytes = 0, int? length]) =>
_UnmodifiableUint16ListView(_data.asUint16List(offsetInBytes, length));
Int16List asInt16List([int offsetInBytes = 0, int? length]) =>
_UnmodifiableInt16ListView(_data.asInt16List(offsetInBytes, length));
Uint32List asUint32List([int offsetInBytes = 0, int? length]) =>
_UnmodifiableUint32ListView(_data.asUint32List(offsetInBytes, length));
Int32List asInt32List([int offsetInBytes = 0, int? length]) =>
_UnmodifiableInt32ListView(_data.asInt32List(offsetInBytes, length));
Uint64List asUint64List([int offsetInBytes = 0, int? length]) =>
_UnmodifiableUint64ListView(_data.asUint64List(offsetInBytes, length));
Int64List asInt64List([int offsetInBytes = 0, int? length]) =>
_UnmodifiableInt64ListView(_data.asInt64List(offsetInBytes, length));
Int32x4List asInt32x4List([int offsetInBytes = 0, int? length]) =>
_UnmodifiableInt32x4ListView(_data.asInt32x4List(offsetInBytes, length));
Float32List asFloat32List([int offsetInBytes = 0, int? length]) =>
_UnmodifiableFloat32ListView(_data.asFloat32List(offsetInBytes, length));
Float64List asFloat64List([int offsetInBytes = 0, int? length]) =>
_UnmodifiableFloat64ListView(_data.asFloat64List(offsetInBytes, length));
Float32x4List asFloat32x4List([int offsetInBytes = 0, int? length]) =>
_UnmodifiableFloat32x4ListView(
_data.asFloat32x4List(offsetInBytes, length));
Float64x2List asFloat64x2List([int offsetInBytes = 0, int? length]) =>
_UnmodifiableFloat64x2ListView(
_data.asFloat64x2List(offsetInBytes, length));
ByteData asByteData([int offsetInBytes = 0, int? length]) =>
_UnmodifiableByteDataView(_data.asByteData(offsetInBytes, length));
}
/// A read-only view of a [ByteData].
final class _UnmodifiableByteDataView implements ByteData {
final ByteData _data;
_UnmodifiableByteDataView(ByteData data) : _data = data;
ByteData asUnmodifiableView() => this;
int getInt8(int byteOffset) => _data.getInt8(byteOffset);
void setInt8(int byteOffset, int value) => _unsupported();
int getUint8(int byteOffset) => _data.getUint8(byteOffset);
void setUint8(int byteOffset, int value) => _unsupported();
int getInt16(int byteOffset, [Endian endian = Endian.big]) =>
_data.getInt16(byteOffset, endian);
void setInt16(int byteOffset, int value, [Endian endian = Endian.big]) =>
_unsupported();
int getUint16(int byteOffset, [Endian endian = Endian.big]) =>
_data.getUint16(byteOffset, endian);
void setUint16(int byteOffset, int value, [Endian endian = Endian.big]) =>
_unsupported();
int getInt32(int byteOffset, [Endian endian = Endian.big]) =>
_data.getInt32(byteOffset, endian);
void setInt32(int byteOffset, int value, [Endian endian = Endian.big]) =>
_unsupported();
int getUint32(int byteOffset, [Endian endian = Endian.big]) =>
_data.getUint32(byteOffset, endian);
void setUint32(int byteOffset, int value, [Endian endian = Endian.big]) =>
_unsupported();
int getInt64(int byteOffset, [Endian endian = Endian.big]) =>
_data.getInt64(byteOffset, endian);
void setInt64(int byteOffset, int value, [Endian endian = Endian.big]) =>
_unsupported();
int getUint64(int byteOffset, [Endian endian = Endian.big]) =>
_data.getUint64(byteOffset, endian);
void setUint64(int byteOffset, int value, [Endian endian = Endian.big]) =>
_unsupported();
double getFloat32(int byteOffset, [Endian endian = Endian.big]) =>
_data.getFloat32(byteOffset, endian);
void setFloat32(int byteOffset, double value, [Endian endian = Endian.big]) =>
_unsupported();
double getFloat64(int byteOffset, [Endian endian = Endian.big]) =>
_data.getFloat64(byteOffset, endian);
void setFloat64(int byteOffset, double value, [Endian endian = Endian.big]) =>
_unsupported();
int get elementSizeInBytes => _data.elementSizeInBytes;
int get offsetInBytes => _data.offsetInBytes;
int get lengthInBytes => _data.lengthInBytes;
ByteBuffer get buffer => _UnmodifiableByteBufferView(_data.buffer);
void _unsupported() {
throw UnsupportedError("An UnmodifiableByteDataView may not be modified");
}
}
mixin _UnmodifiableTypedListMixin<N, L extends List<N>, TD extends TypedData> {
L get _list;
TD get _data => (_list as TD);
int get length => _list.length;
N operator [](int index) => _list[index];
int get elementSizeInBytes => _data.elementSizeInBytes;
int get offsetInBytes => _data.offsetInBytes;
int get lengthInBytes => _data.lengthInBytes;
TD asUnmodifiableView() => unsafeCast<TD>(this);
ByteBuffer get buffer => _UnmodifiableByteBufferView(_data.buffer);
L _createList(int length);
L sublist(int start, [int? end]) {
// NNBD: Spurious error at `end`, `checkValidRange` is legacy.
int endIndex = RangeError.checkValidRange(start, end!, length);
int sublistLength = endIndex - start;
L result = _createList(sublistLength);
result.setRange(0, sublistLength, _list, start);
return result;
}
}
/// View of a [Uint8List] that disallows modification.
final class _UnmodifiableUint8ListView extends UnmodifiableListBase<int>
with _UnmodifiableTypedListMixin<int, Uint8List, Uint8List>
implements Uint8List {
final Uint8List _list;
_UnmodifiableUint8ListView(Uint8List list) : _list = list;
Uint8List _createList(int length) => Uint8List(length);
}
/// View of a [Int8List] that disallows modification.
final class _UnmodifiableInt8ListView extends UnmodifiableListBase<int>
with _UnmodifiableTypedListMixin<int, Int8List, Int8List>
implements Int8List {
final Int8List _list;
_UnmodifiableInt8ListView(Int8List list) : _list = list;
Int8List _createList(int length) => Int8List(length);
}
/// View of a [Uint8ClampedList] that disallows modification.
final class _UnmodifiableUint8ClampedListView extends UnmodifiableListBase<int>
with _UnmodifiableTypedListMixin<int, Uint8ClampedList, Uint8ClampedList>
implements Uint8ClampedList {
final Uint8ClampedList _list;
_UnmodifiableUint8ClampedListView(Uint8ClampedList list) : _list = list;
Uint8ClampedList _createList(int length) => Uint8ClampedList(length);
}
/// View of a [Uint16List] that disallows modification.
final class _UnmodifiableUint16ListView extends UnmodifiableListBase<int>
with _UnmodifiableTypedListMixin<int, Uint16List, Uint16List>
implements Uint16List {
final Uint16List _list;
_UnmodifiableUint16ListView(Uint16List list) : _list = list;
Uint16List _createList(int length) => Uint16List(length);
}
/// View of a [Int16List] that disallows modification.
final class _UnmodifiableInt16ListView extends UnmodifiableListBase<int>
with _UnmodifiableTypedListMixin<int, Int16List, Int16List>
implements Int16List {
final Int16List _list;
_UnmodifiableInt16ListView(Int16List list) : _list = list;
Int16List _createList(int length) => Int16List(length);
}
/// View of a [Uint32List] that disallows modification.
final class _UnmodifiableUint32ListView extends UnmodifiableListBase<int>
with _UnmodifiableTypedListMixin<int, Uint32List, Uint32List>
implements Uint32List {
final Uint32List _list;
_UnmodifiableUint32ListView(Uint32List list) : _list = list;
Uint32List _createList(int length) => Uint32List(length);
}
/// View of a [Int32List] that disallows modification.
final class _UnmodifiableInt32ListView extends UnmodifiableListBase<int>
with _UnmodifiableTypedListMixin<int, Int32List, Int32List>
implements Int32List {
final Int32List _list;
_UnmodifiableInt32ListView(Int32List list) : _list = list;
Int32List _createList(int length) => Int32List(length);
}
/// View of a [Uint64List] that disallows modification.
final class _UnmodifiableUint64ListView extends UnmodifiableListBase<int>
with _UnmodifiableTypedListMixin<int, Uint64List, Uint64List>
implements Uint64List {
final Uint64List _list;
_UnmodifiableUint64ListView(Uint64List list) : _list = list;
Uint64List _createList(int length) => Uint64List(length);
}
/// View of a [Int64List] that disallows modification.
final class _UnmodifiableInt64ListView extends UnmodifiableListBase<int>
with _UnmodifiableTypedListMixin<int, Int64List, Int64List>
implements Int64List {
final Int64List _list;
_UnmodifiableInt64ListView(Int64List list) : _list = list;
Int64List _createList(int length) => Int64List(length);
}
/// View of a [Int32x4List] that disallows modification.
final class _UnmodifiableInt32x4ListView extends UnmodifiableListBase<Int32x4>
with _UnmodifiableTypedListMixin<Int32x4, Int32x4List, Int32x4List>
implements Int32x4List {
final Int32x4List _list;
_UnmodifiableInt32x4ListView(Int32x4List list) : _list = list;
Int32x4List _createList(int length) => Int32x4List(length);
}
/// View of a [Float32x4List] that disallows modification.
final class _UnmodifiableFloat32x4ListView
extends UnmodifiableListBase<Float32x4>
with _UnmodifiableTypedListMixin<Float32x4, Float32x4List, Float32x4List>
implements Float32x4List {
final Float32x4List _list;
_UnmodifiableFloat32x4ListView(Float32x4List list) : _list = list;
Float32x4List _createList(int length) => Float32x4List(length);
}
/// View of a [Float64x2List] that disallows modification.
final class _UnmodifiableFloat64x2ListView
extends UnmodifiableListBase<Float64x2>
with _UnmodifiableTypedListMixin<Float64x2, Float64x2List, Float64x2List>
implements Float64x2List {
final Float64x2List _list;
_UnmodifiableFloat64x2ListView(Float64x2List list) : _list = list;
Float64x2List _createList(int length) => Float64x2List(length);
}
/// View of a [Float32List] that disallows modification.
final class _UnmodifiableFloat32ListView extends UnmodifiableListBase<double>
with _UnmodifiableTypedListMixin<double, Float32List, Float32List>
implements Float32List {
final Float32List _list;
_UnmodifiableFloat32ListView(Float32List list) : _list = list;
Float32List _createList(int length) => Float32List(length);
}
/// View of a [Float64List] that disallows modification.
final class _UnmodifiableFloat64ListView extends UnmodifiableListBase<double>
with _UnmodifiableTypedListMixin<double, Float64List, Float64List>
implements Float64List {
final Float64List _list;
_UnmodifiableFloat64ListView(Float64List list) : _list = list;
Float64List _createList(int length) => Float64List(length);
}

View File

@ -168,7 +168,7 @@ final class NativeFloat32x4List extends Object
_storage[(index * 4) + 3] = value.w;
}
Float32x4List asUnmodifiableView() => UnmodifiableFloat32x4ListView(this);
Float32x4List asUnmodifiableView() => _UnmodifiableFloat32x4ListView(this);
Float32x4List sublist(int start, [int? end]) {
var stop = _checkValidRange(start, end, this.length);
@ -242,7 +242,7 @@ final class NativeInt32x4List extends Object
_storage[(index * 4) + 3] = value.w;
}
Int32x4List asUnmodifiableView() => UnmodifiableInt32x4ListView(this);
Int32x4List asUnmodifiableView() => _UnmodifiableInt32x4ListView(this);
Int32x4List sublist(int start, [int? end]) {
var stop = _checkValidRange(start, end, this.length);
@ -310,7 +310,7 @@ final class NativeFloat64x2List extends Object
_storage[(index * 2) + 1] = value.y;
}
Float64x2List asUnmodifiableView() => UnmodifiableFloat64x2ListView(this);
Float64x2List asUnmodifiableView() => _UnmodifiableFloat64x2ListView(this);
Float64x2List sublist(int start, [int? end]) {
var stop = _checkValidRange(start, end, this.length);
@ -420,7 +420,7 @@ final class NativeByteData extends NativeTypedData
int get elementSizeInBytes => 1;
ByteData asUnmodifiableView() => UnmodifiableByteDataView(this);
ByteData asUnmodifiableView() => _UnmodifiableByteDataView(this);
/// Returns the floating point number represented by the four bytes at
/// the specified [byteOffset] in this object, in IEEE 754
@ -768,7 +768,7 @@ final class NativeFloat32List extends NativeTypedArrayOfDouble
Type get runtimeType => Float32List;
Float32List asUnmodifiableView() => UnmodifiableFloat32ListView(this);
Float32List asUnmodifiableView() => _UnmodifiableFloat32ListView(this);
Float32List sublist(int start, [int? end]) {
var stop = _checkValidRange(start, end, this.length);
@ -806,7 +806,7 @@ final class NativeFloat64List extends NativeTypedArrayOfDouble
Type get runtimeType => Float64List;
Float64List asUnmodifiableView() => UnmodifiableFloat64ListView(this);
Float64List asUnmodifiableView() => _UnmodifiableFloat64ListView(this);
Float64List sublist(int start, [int? end]) {
var stop = _checkValidRange(start, end, this.length);
@ -849,7 +849,7 @@ final class NativeInt16List extends NativeTypedArrayOfInt
return JS('int', '#[#]', this, index);
}
Int16List asUnmodifiableView() => UnmodifiableInt16ListView(this);
Int16List asUnmodifiableView() => _UnmodifiableInt16ListView(this);
Int16List sublist(int start, [int? end]) {
var stop = _checkValidRange(start, end, this.length);
@ -892,7 +892,7 @@ final class NativeInt32List extends NativeTypedArrayOfInt
return JS('int', '#[#]', this, index);
}
Int32List asUnmodifiableView() => UnmodifiableInt32ListView(this);
Int32List asUnmodifiableView() => _UnmodifiableInt32ListView(this);
Int32List sublist(int start, [int? end]) {
var stop = _checkValidRange(start, end, this.length);
@ -935,7 +935,7 @@ final class NativeInt8List extends NativeTypedArrayOfInt
return JS('int', '#[#]', this, index);
}
Int8List asUnmodifiableView() => UnmodifiableInt8ListView(this);
Int8List asUnmodifiableView() => _UnmodifiableInt8ListView(this);
Int8List sublist(int start, [int? end]) {
var stop = _checkValidRange(start, end, this.length);
@ -981,7 +981,7 @@ final class NativeUint16List extends NativeTypedArrayOfInt
return JS('JSUInt31', '#[#]', this, index);
}
Uint16List asUnmodifiableView() => UnmodifiableUint16ListView(this);
Uint16List asUnmodifiableView() => _UnmodifiableUint16ListView(this);
Uint16List sublist(int start, [int? end]) {
var stop = _checkValidRange(start, end, this.length);
@ -1024,7 +1024,7 @@ final class NativeUint32List extends NativeTypedArrayOfInt
return JS('JSUInt32', '#[#]', this, index);
}
Uint32List asUnmodifiableView() => UnmodifiableUint32ListView(this);
Uint32List asUnmodifiableView() => _UnmodifiableUint32ListView(this);
Uint32List sublist(int start, [int? end]) {
var stop = _checkValidRange(start, end, this.length);
@ -1071,7 +1071,7 @@ final class NativeUint8ClampedList extends NativeTypedArrayOfInt
}
Uint8ClampedList asUnmodifiableView() =>
UnmodifiableUint8ClampedListView(this);
_UnmodifiableUint8ClampedListView(this);
Uint8ClampedList sublist(int start, [int? end]) {
var stop = _checkValidRange(start, end, this.length);
@ -1128,7 +1128,7 @@ final class NativeUint8List extends NativeTypedArrayOfInt
return JS('JSUInt31', '#[#]', this, index);
}
Uint8List asUnmodifiableView() => UnmodifiableUint8ListView(this);
Uint8List asUnmodifiableView() => _UnmodifiableUint8ListView(this);
Uint8List sublist(int start, [int? end]) {
var stop = _checkValidRange(start, end, this.length);
@ -1888,3 +1888,335 @@ int _checkValidRange(int start, int? end, int length) {
if (end == null) return length;
return end;
}
/// A read-only view of a [ByteBuffer].
final class _UnmodifiableByteBufferView implements ByteBuffer {
final ByteBuffer _data;
_UnmodifiableByteBufferView(ByteBuffer data) : _data = data;
int get lengthInBytes => _data.lengthInBytes;
Uint8List asUint8List([int offsetInBytes = 0, int? length]) =>
_UnmodifiableUint8ListView(_data.asUint8List(offsetInBytes, length));
Int8List asInt8List([int offsetInBytes = 0, int? length]) =>
_UnmodifiableInt8ListView(_data.asInt8List(offsetInBytes, length));
Uint8ClampedList asUint8ClampedList([int offsetInBytes = 0, int? length]) =>
_UnmodifiableUint8ClampedListView(
_data.asUint8ClampedList(offsetInBytes, length));
Uint16List asUint16List([int offsetInBytes = 0, int? length]) =>
_UnmodifiableUint16ListView(_data.asUint16List(offsetInBytes, length));
Int16List asInt16List([int offsetInBytes = 0, int? length]) =>
_UnmodifiableInt16ListView(_data.asInt16List(offsetInBytes, length));
Uint32List asUint32List([int offsetInBytes = 0, int? length]) =>
_UnmodifiableUint32ListView(_data.asUint32List(offsetInBytes, length));
Int32List asInt32List([int offsetInBytes = 0, int? length]) =>
_UnmodifiableInt32ListView(_data.asInt32List(offsetInBytes, length));
Uint64List asUint64List([int offsetInBytes = 0, int? length]) =>
_UnmodifiableUint64ListView(_data.asUint64List(offsetInBytes, length));
Int64List asInt64List([int offsetInBytes = 0, int? length]) =>
_UnmodifiableInt64ListView(_data.asInt64List(offsetInBytes, length));
Int32x4List asInt32x4List([int offsetInBytes = 0, int? length]) =>
_UnmodifiableInt32x4ListView(_data.asInt32x4List(offsetInBytes, length));
Float32List asFloat32List([int offsetInBytes = 0, int? length]) =>
_UnmodifiableFloat32ListView(_data.asFloat32List(offsetInBytes, length));
Float64List asFloat64List([int offsetInBytes = 0, int? length]) =>
_UnmodifiableFloat64ListView(_data.asFloat64List(offsetInBytes, length));
Float32x4List asFloat32x4List([int offsetInBytes = 0, int? length]) =>
_UnmodifiableFloat32x4ListView(
_data.asFloat32x4List(offsetInBytes, length));
Float64x2List asFloat64x2List([int offsetInBytes = 0, int? length]) =>
_UnmodifiableFloat64x2ListView(
_data.asFloat64x2List(offsetInBytes, length));
ByteData asByteData([int offsetInBytes = 0, int? length]) =>
_UnmodifiableByteDataView(_data.asByteData(offsetInBytes, length));
}
/// A read-only view of a [ByteData].
final class _UnmodifiableByteDataView implements ByteData {
final ByteData _data;
_UnmodifiableByteDataView(ByteData data) : _data = data;
ByteData asUnmodifiableView() => this;
int getInt8(int byteOffset) => _data.getInt8(byteOffset);
void setInt8(int byteOffset, int value) => _unsupported();
int getUint8(int byteOffset) => _data.getUint8(byteOffset);
void setUint8(int byteOffset, int value) => _unsupported();
int getInt16(int byteOffset, [Endian endian = Endian.big]) =>
_data.getInt16(byteOffset, endian);
void setInt16(int byteOffset, int value, [Endian endian = Endian.big]) =>
_unsupported();
int getUint16(int byteOffset, [Endian endian = Endian.big]) =>
_data.getUint16(byteOffset, endian);
void setUint16(int byteOffset, int value, [Endian endian = Endian.big]) =>
_unsupported();
int getInt32(int byteOffset, [Endian endian = Endian.big]) =>
_data.getInt32(byteOffset, endian);
void setInt32(int byteOffset, int value, [Endian endian = Endian.big]) =>
_unsupported();
int getUint32(int byteOffset, [Endian endian = Endian.big]) =>
_data.getUint32(byteOffset, endian);
void setUint32(int byteOffset, int value, [Endian endian = Endian.big]) =>
_unsupported();
int getInt64(int byteOffset, [Endian endian = Endian.big]) =>
_data.getInt64(byteOffset, endian);
void setInt64(int byteOffset, int value, [Endian endian = Endian.big]) =>
_unsupported();
int getUint64(int byteOffset, [Endian endian = Endian.big]) =>
_data.getUint64(byteOffset, endian);
void setUint64(int byteOffset, int value, [Endian endian = Endian.big]) =>
_unsupported();
double getFloat32(int byteOffset, [Endian endian = Endian.big]) =>
_data.getFloat32(byteOffset, endian);
void setFloat32(int byteOffset, double value, [Endian endian = Endian.big]) =>
_unsupported();
double getFloat64(int byteOffset, [Endian endian = Endian.big]) =>
_data.getFloat64(byteOffset, endian);
void setFloat64(int byteOffset, double value, [Endian endian = Endian.big]) =>
_unsupported();
int get elementSizeInBytes => _data.elementSizeInBytes;
int get offsetInBytes => _data.offsetInBytes;
int get lengthInBytes => _data.lengthInBytes;
ByteBuffer get buffer => _UnmodifiableByteBufferView(_data.buffer);
void _unsupported() {
throw UnsupportedError("An UnmodifiableByteDataView may not be modified");
}
}
mixin _UnmodifiableListMixin<N, L extends List<N>, TD extends TypedData> {
L get _list;
TD get _data => (_list as TD);
int get length => _list.length;
N operator [](int index) => _list[index];
int get elementSizeInBytes => _data.elementSizeInBytes;
int get offsetInBytes => _data.offsetInBytes;
int get lengthInBytes => _data.lengthInBytes;
ByteBuffer get buffer => _UnmodifiableByteBufferView(_data.buffer);
L _createList(int length);
L sublist(int start, [int? end]) {
// NNBD: Spurious error at `end`, `checkValidRange` is legacy.
int endIndex = RangeError.checkValidRange(start, end!, length);
int sublistLength = endIndex - start;
L result = _createList(sublistLength);
result.setRange(0, sublistLength, _list, start);
return result;
}
}
/// View of a [Uint8List] that disallows modification.
final class _UnmodifiableUint8ListView extends UnmodifiableListBase<int>
with _UnmodifiableListMixin<int, Uint8List, Uint8List>
implements Uint8List {
final Uint8List _list;
_UnmodifiableUint8ListView(Uint8List list) : _list = list;
Uint8List asUnmodifiableView() => this;
Uint8List _createList(int length) => Uint8List(length);
}
/// View of a [Int8List] that disallows modification.
final class _UnmodifiableInt8ListView extends UnmodifiableListBase<int>
with _UnmodifiableListMixin<int, Int8List, Int8List>
implements Int8List {
final Int8List _list;
_UnmodifiableInt8ListView(Int8List list) : _list = list;
Int8List asUnmodifiableView() => this;
Int8List _createList(int length) => Int8List(length);
}
/// View of a [Uint8ClampedList] that disallows modification.
final class _UnmodifiableUint8ClampedListView extends UnmodifiableListBase<int>
with _UnmodifiableListMixin<int, Uint8ClampedList, Uint8ClampedList>
implements Uint8ClampedList {
final Uint8ClampedList _list;
_UnmodifiableUint8ClampedListView(Uint8ClampedList list) : _list = list;
Uint8ClampedList asUnmodifiableView() => this;
Uint8ClampedList _createList(int length) => Uint8ClampedList(length);
}
/// View of a [Uint16List] that disallows modification.
final class _UnmodifiableUint16ListView extends UnmodifiableListBase<int>
with _UnmodifiableListMixin<int, Uint16List, Uint16List>
implements Uint16List {
final Uint16List _list;
_UnmodifiableUint16ListView(Uint16List list) : _list = list;
Uint16List asUnmodifiableView() => this;
Uint16List _createList(int length) => Uint16List(length);
}
/// View of a [Int16List] that disallows modification.
final class _UnmodifiableInt16ListView extends UnmodifiableListBase<int>
with _UnmodifiableListMixin<int, Int16List, Int16List>
implements Int16List {
final Int16List _list;
_UnmodifiableInt16ListView(Int16List list) : _list = list;
Int16List asUnmodifiableView() => this;
Int16List _createList(int length) => Int16List(length);
}
/// View of a [Uint32List] that disallows modification.
final class _UnmodifiableUint32ListView extends UnmodifiableListBase<int>
with _UnmodifiableListMixin<int, Uint32List, Uint32List>
implements Uint32List {
final Uint32List _list;
_UnmodifiableUint32ListView(Uint32List list) : _list = list;
Uint32List asUnmodifiableView() => this;
Uint32List _createList(int length) => Uint32List(length);
}
/// View of a [Int32List] that disallows modification.
final class _UnmodifiableInt32ListView extends UnmodifiableListBase<int>
with _UnmodifiableListMixin<int, Int32List, Int32List>
implements Int32List {
final Int32List _list;
_UnmodifiableInt32ListView(Int32List list) : _list = list;
Int32List asUnmodifiableView() => this;
Int32List _createList(int length) => Int32List(length);
}
/// View of a [Uint64List] that disallows modification.
final class _UnmodifiableUint64ListView extends UnmodifiableListBase<int>
with _UnmodifiableListMixin<int, Uint64List, Uint64List>
implements Uint64List {
final Uint64List _list;
_UnmodifiableUint64ListView(Uint64List list) : _list = list;
Uint64List asUnmodifiableView() => this;
Uint64List _createList(int length) => Uint64List(length);
}
/// View of a [Int64List] that disallows modification.
final class _UnmodifiableInt64ListView extends UnmodifiableListBase<int>
with _UnmodifiableListMixin<int, Int64List, Int64List>
implements Int64List {
final Int64List _list;
_UnmodifiableInt64ListView(Int64List list) : _list = list;
Int64List asUnmodifiableView() => this;
Int64List _createList(int length) => Int64List(length);
}
/// View of a [Int32x4List] that disallows modification.
final class _UnmodifiableInt32x4ListView extends UnmodifiableListBase<Int32x4>
with _UnmodifiableListMixin<Int32x4, Int32x4List, Int32x4List>
implements Int32x4List {
final Int32x4List _list;
_UnmodifiableInt32x4ListView(Int32x4List list) : _list = list;
Int32x4List asUnmodifiableView() => this;
Int32x4List _createList(int length) => Int32x4List(length);
}
/// View of a [Float32x4List] that disallows modification.
final class _UnmodifiableFloat32x4ListView
extends UnmodifiableListBase<Float32x4>
with _UnmodifiableListMixin<Float32x4, Float32x4List, Float32x4List>
implements Float32x4List {
final Float32x4List _list;
_UnmodifiableFloat32x4ListView(Float32x4List list) : _list = list;
Float32x4List asUnmodifiableView() => this;
Float32x4List _createList(int length) => Float32x4List(length);
}
/// View of a [Float64x2List] that disallows modification.
final class _UnmodifiableFloat64x2ListView
extends UnmodifiableListBase<Float64x2>
with _UnmodifiableListMixin<Float64x2, Float64x2List, Float64x2List>
implements Float64x2List {
final Float64x2List _list;
_UnmodifiableFloat64x2ListView(Float64x2List list) : _list = list;
Float64x2List asUnmodifiableView() => this;
Float64x2List _createList(int length) => Float64x2List(length);
}
/// View of a [Float32List] that disallows modification.
final class _UnmodifiableFloat32ListView extends UnmodifiableListBase<double>
with _UnmodifiableListMixin<double, Float32List, Float32List>
implements Float32List {
final Float32List _list;
_UnmodifiableFloat32ListView(Float32List list) : _list = list;
Float32List asUnmodifiableView() => this;
Float32List _createList(int length) => Float32List(length);
}
/// View of a [Float64List] that disallows modification.
final class _UnmodifiableFloat64ListView extends UnmodifiableListBase<double>
with _UnmodifiableListMixin<double, Float64List, Float64List>
implements Float64List {
final Float64List _list;
_UnmodifiableFloat64ListView(Float64List list) : _list = list;
Float64List asUnmodifiableView() => this;
Float64List _createList(int length) => Float64List(length);
}

View File

@ -189,495 +189,3 @@ class Float64x2 {
@patch
factory Float64x2.fromFloat32x4(Float32x4 v) = NativeFloat64x2.fromFloat32x4;
}
/// A read-only view of a [ByteBuffer].
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableByteBufferView.
final class _UnmodifiableByteBufferView
implements ByteBuffer, UnmodifiableByteBufferView {
final ByteBuffer _data;
_UnmodifiableByteBufferView(ByteBuffer data) : _data = data;
int get lengthInBytes => _data.lengthInBytes;
Uint8List asUint8List([int offsetInBytes = 0, int? length]) =>
UnmodifiableUint8ListView(_data.asUint8List(offsetInBytes, length));
Int8List asInt8List([int offsetInBytes = 0, int? length]) =>
UnmodifiableInt8ListView(_data.asInt8List(offsetInBytes, length));
Uint8ClampedList asUint8ClampedList([int offsetInBytes = 0, int? length]) =>
UnmodifiableUint8ClampedListView(
_data.asUint8ClampedList(offsetInBytes, length));
Uint16List asUint16List([int offsetInBytes = 0, int? length]) =>
UnmodifiableUint16ListView(_data.asUint16List(offsetInBytes, length));
Int16List asInt16List([int offsetInBytes = 0, int? length]) =>
UnmodifiableInt16ListView(_data.asInt16List(offsetInBytes, length));
Uint32List asUint32List([int offsetInBytes = 0, int? length]) =>
UnmodifiableUint32ListView(_data.asUint32List(offsetInBytes, length));
Int32List asInt32List([int offsetInBytes = 0, int? length]) =>
UnmodifiableInt32ListView(_data.asInt32List(offsetInBytes, length));
Uint64List asUint64List([int offsetInBytes = 0, int? length]) =>
UnmodifiableUint64ListView(_data.asUint64List(offsetInBytes, length));
Int64List asInt64List([int offsetInBytes = 0, int? length]) =>
UnmodifiableInt64ListView(_data.asInt64List(offsetInBytes, length));
Int32x4List asInt32x4List([int offsetInBytes = 0, int? length]) =>
UnmodifiableInt32x4ListView(_data.asInt32x4List(offsetInBytes, length));
Float32List asFloat32List([int offsetInBytes = 0, int? length]) =>
UnmodifiableFloat32ListView(_data.asFloat32List(offsetInBytes, length));
Float64List asFloat64List([int offsetInBytes = 0, int? length]) =>
UnmodifiableFloat64ListView(_data.asFloat64List(offsetInBytes, length));
Float32x4List asFloat32x4List([int offsetInBytes = 0, int? length]) =>
UnmodifiableFloat32x4ListView(
_data.asFloat32x4List(offsetInBytes, length));
Float64x2List asFloat64x2List([int offsetInBytes = 0, int? length]) =>
UnmodifiableFloat64x2ListView(
_data.asFloat64x2List(offsetInBytes, length));
ByteData asByteData([int offsetInBytes = 0, int? length]) =>
UnmodifiableByteDataView(_data.asByteData(offsetInBytes, length));
}
/// A read-only view of a [ByteData].
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableByteDataView.
final class _UnmodifiableByteDataView
implements ByteData, UnmodifiableByteDataView {
final ByteData _data;
_UnmodifiableByteDataView(ByteData data) : _data = data;
ByteData asUnmodifiableView() => this;
int getInt8(int byteOffset) => _data.getInt8(byteOffset);
void setInt8(int byteOffset, int value) => _unsupported();
int getUint8(int byteOffset) => _data.getUint8(byteOffset);
void setUint8(int byteOffset, int value) => _unsupported();
int getInt16(int byteOffset, [Endian endian = Endian.big]) =>
_data.getInt16(byteOffset, endian);
void setInt16(int byteOffset, int value, [Endian endian = Endian.big]) =>
_unsupported();
int getUint16(int byteOffset, [Endian endian = Endian.big]) =>
_data.getUint16(byteOffset, endian);
void setUint16(int byteOffset, int value, [Endian endian = Endian.big]) =>
_unsupported();
int getInt32(int byteOffset, [Endian endian = Endian.big]) =>
_data.getInt32(byteOffset, endian);
void setInt32(int byteOffset, int value, [Endian endian = Endian.big]) =>
_unsupported();
int getUint32(int byteOffset, [Endian endian = Endian.big]) =>
_data.getUint32(byteOffset, endian);
void setUint32(int byteOffset, int value, [Endian endian = Endian.big]) =>
_unsupported();
int getInt64(int byteOffset, [Endian endian = Endian.big]) =>
_data.getInt64(byteOffset, endian);
void setInt64(int byteOffset, int value, [Endian endian = Endian.big]) =>
_unsupported();
int getUint64(int byteOffset, [Endian endian = Endian.big]) =>
_data.getUint64(byteOffset, endian);
void setUint64(int byteOffset, int value, [Endian endian = Endian.big]) =>
_unsupported();
double getFloat32(int byteOffset, [Endian endian = Endian.big]) =>
_data.getFloat32(byteOffset, endian);
void setFloat32(int byteOffset, double value, [Endian endian = Endian.big]) =>
_unsupported();
double getFloat64(int byteOffset, [Endian endian = Endian.big]) =>
_data.getFloat64(byteOffset, endian);
void setFloat64(int byteOffset, double value, [Endian endian = Endian.big]) =>
_unsupported();
int get elementSizeInBytes => _data.elementSizeInBytes;
int get offsetInBytes => _data.offsetInBytes;
int get lengthInBytes => _data.lengthInBytes;
ByteBuffer get buffer => UnmodifiableByteBufferView(_data.buffer);
void _unsupported() {
throw UnsupportedError("An UnmodifiableByteDataView may not be modified");
}
}
mixin _UnmodifiableListMixin<N, L extends List<N>, TD extends TypedData> {
L get _list;
TD get _data => (_list as TD);
int get length => _list.length;
N operator [](int index) => _list[index];
int get elementSizeInBytes => _data.elementSizeInBytes;
int get offsetInBytes => _data.offsetInBytes;
int get lengthInBytes => _data.lengthInBytes;
ByteBuffer get buffer => UnmodifiableByteBufferView(_data.buffer);
L _createList(int length);
L sublist(int start, [int? end]) {
// NNBD: Spurious error at `end`, `checkValidRange` is legacy.
int endIndex = RangeError.checkValidRange(start, end!, length);
int sublistLength = endIndex - start;
L result = _createList(sublistLength);
result.setRange(0, sublistLength, _list, start);
return result;
}
}
/// View of a [Uint8List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableUint8ListView.
final class _UnmodifiableUint8ListView extends UnmodifiableListBase<int>
with _UnmodifiableListMixin<int, Uint8List, Uint8List>
implements UnmodifiableUint8ListView {
final Uint8List _list;
_UnmodifiableUint8ListView(Uint8List list) : _list = list;
Uint8List asUnmodifiableView() => this;
Uint8List _createList(int length) => Uint8List(length);
}
/// View of a [Int8List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableInt8ListView.
final class _UnmodifiableInt8ListView extends UnmodifiableListBase<int>
with _UnmodifiableListMixin<int, Int8List, Int8List>
implements UnmodifiableInt8ListView {
final Int8List _list;
_UnmodifiableInt8ListView(Int8List list) : _list = list;
Int8List asUnmodifiableView() => this;
Int8List _createList(int length) => Int8List(length);
}
/// View of a [Uint8ClampedList] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableUint8ClampedListView.
final class _UnmodifiableUint8ClampedListView extends UnmodifiableListBase<int>
with _UnmodifiableListMixin<int, Uint8ClampedList, Uint8ClampedList>
implements UnmodifiableUint8ClampedListView {
final Uint8ClampedList _list;
_UnmodifiableUint8ClampedListView(Uint8ClampedList list) : _list = list;
Uint8ClampedList asUnmodifiableView() => this;
Uint8ClampedList _createList(int length) => Uint8ClampedList(length);
}
/// View of a [Uint16List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableUint16ListView.
final class _UnmodifiableUint16ListView extends UnmodifiableListBase<int>
with _UnmodifiableListMixin<int, Uint16List, Uint16List>
implements UnmodifiableUint16ListView {
final Uint16List _list;
_UnmodifiableUint16ListView(Uint16List list) : _list = list;
Uint16List asUnmodifiableView() => this;
Uint16List _createList(int length) => Uint16List(length);
}
/// View of a [Int16List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableInt16ListView.
final class _UnmodifiableInt16ListView extends UnmodifiableListBase<int>
with _UnmodifiableListMixin<int, Int16List, Int16List>
implements UnmodifiableInt16ListView {
final Int16List _list;
_UnmodifiableInt16ListView(Int16List list) : _list = list;
Int16List asUnmodifiableView() => this;
Int16List _createList(int length) => Int16List(length);
}
/// View of a [Uint32List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableUint32ListView.
final class _UnmodifiableUint32ListView extends UnmodifiableListBase<int>
with _UnmodifiableListMixin<int, Uint32List, Uint32List>
implements UnmodifiableUint32ListView {
final Uint32List _list;
_UnmodifiableUint32ListView(Uint32List list) : _list = list;
Uint32List asUnmodifiableView() => this;
Uint32List _createList(int length) => Uint32List(length);
}
/// View of a [Int32List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableInt32ListView.
final class _UnmodifiableInt32ListView extends UnmodifiableListBase<int>
with _UnmodifiableListMixin<int, Int32List, Int32List>
implements UnmodifiableInt32ListView {
final Int32List _list;
_UnmodifiableInt32ListView(Int32List list) : _list = list;
Int32List asUnmodifiableView() => this;
Int32List _createList(int length) => Int32List(length);
}
/// View of a [Uint64List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableUint64ListView.
final class _UnmodifiableUint64ListView extends UnmodifiableListBase<int>
with _UnmodifiableListMixin<int, Uint64List, Uint64List>
implements UnmodifiableUint64ListView {
final Uint64List _list;
_UnmodifiableUint64ListView(Uint64List list) : _list = list;
Uint64List asUnmodifiableView() => this;
Uint64List _createList(int length) => Uint64List(length);
}
/// View of a [Int64List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableInt64ListView.
final class _UnmodifiableInt64ListView extends UnmodifiableListBase<int>
with _UnmodifiableListMixin<int, Int64List, Int64List>
implements UnmodifiableInt64ListView {
final Int64List _list;
_UnmodifiableInt64ListView(Int64List list) : _list = list;
Int64List asUnmodifiableView() => this;
Int64List _createList(int length) => Int64List(length);
}
/// View of a [Int32x4List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableInt32x4ListView.
final class _UnmodifiableInt32x4ListView extends UnmodifiableListBase<Int32x4>
with _UnmodifiableListMixin<Int32x4, Int32x4List, Int32x4List>
implements UnmodifiableInt32x4ListView {
final Int32x4List _list;
_UnmodifiableInt32x4ListView(Int32x4List list) : _list = list;
Int32x4List asUnmodifiableView() => this;
Int32x4List _createList(int length) => Int32x4List(length);
}
/// View of a [Float32x4List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableFloat32x4ListView.
final class _UnmodifiableFloat32x4ListView
extends UnmodifiableListBase<Float32x4>
with _UnmodifiableListMixin<Float32x4, Float32x4List, Float32x4List>
implements UnmodifiableFloat32x4ListView {
final Float32x4List _list;
_UnmodifiableFloat32x4ListView(Float32x4List list) : _list = list;
Float32x4List asUnmodifiableView() => this;
Float32x4List _createList(int length) => Float32x4List(length);
}
/// View of a [Float64x2List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableFloat64x2ListView.
final class _UnmodifiableFloat64x2ListView
extends UnmodifiableListBase<Float64x2>
with _UnmodifiableListMixin<Float64x2, Float64x2List, Float64x2List>
implements UnmodifiableFloat64x2ListView {
final Float64x2List _list;
_UnmodifiableFloat64x2ListView(Float64x2List list) : _list = list;
Float64x2List asUnmodifiableView() => this;
Float64x2List _createList(int length) => Float64x2List(length);
}
/// View of a [Float32List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableFloat32ListView.
final class _UnmodifiableFloat32ListView extends UnmodifiableListBase<double>
with _UnmodifiableListMixin<double, Float32List, Float32List>
implements UnmodifiableFloat32ListView {
final Float32List _list;
_UnmodifiableFloat32ListView(Float32List list) : _list = list;
Float32List asUnmodifiableView() => this;
Float32List _createList(int length) => Float32List(length);
}
/// View of a [Float64List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableFloat64ListView.
final class _UnmodifiableFloat64ListView extends UnmodifiableListBase<double>
with _UnmodifiableListMixin<double, Float64List, Float64List>
implements UnmodifiableFloat64ListView {
final Float64List _list;
_UnmodifiableFloat64ListView(Float64List list) : _list = list;
Float64List asUnmodifiableView() => this;
Float64List _createList(int length) => Float64List(length);
}
@patch
abstract class UnmodifiableByteBufferView implements Uint8List {
@patch
factory UnmodifiableByteBufferView(ByteBuffer data) =
_UnmodifiableByteBufferView;
}
@patch
abstract class UnmodifiableByteDataView implements Uint8List {
@patch
factory UnmodifiableByteDataView(ByteData data) = _UnmodifiableByteDataView;
}
@patch
abstract class UnmodifiableUint8ListView implements Uint8List {
@patch
factory UnmodifiableUint8ListView(Uint8List list) =
_UnmodifiableUint8ListView;
}
@patch
abstract class UnmodifiableInt8ListView implements Int8List {
@patch
factory UnmodifiableInt8ListView(Int8List list) = _UnmodifiableInt8ListView;
}
@patch
abstract class UnmodifiableUint8ClampedListView implements Uint8ClampedList {
@patch
factory UnmodifiableUint8ClampedListView(Uint8ClampedList list) =
_UnmodifiableUint8ClampedListView;
}
@patch
abstract class UnmodifiableUint16ListView implements Uint16List {
@patch
factory UnmodifiableUint16ListView(Uint16List list) =
_UnmodifiableUint16ListView;
}
@patch
abstract class UnmodifiableInt16ListView implements Int16List {
@patch
factory UnmodifiableInt16ListView(Int16List list) =
_UnmodifiableInt16ListView;
}
@patch
abstract class UnmodifiableUint32ListView implements Uint32List {
@patch
factory UnmodifiableUint32ListView(Uint32List list) =
_UnmodifiableUint32ListView;
}
@patch
abstract class UnmodifiableInt32ListView implements Int32List {
@patch
factory UnmodifiableInt32ListView(Int32List list) =
_UnmodifiableInt32ListView;
}
@patch
abstract class UnmodifiableUint64ListView implements Uint64List {
@patch
factory UnmodifiableUint64ListView(Uint64List list) =
_UnmodifiableUint64ListView;
}
@patch
abstract class UnmodifiableInt64ListView implements Int64List {
@patch
factory UnmodifiableInt64ListView(Int64List list) =
_UnmodifiableInt64ListView;
}
@patch
abstract class UnmodifiableInt32x4ListView implements Int32x4List {
@patch
factory UnmodifiableInt32x4ListView(Int32x4List list) =
_UnmodifiableInt32x4ListView;
}
@patch
abstract class UnmodifiableFloat32x4ListView implements Float32x4List {
@patch
factory UnmodifiableFloat32x4ListView(Float32x4List list) =
_UnmodifiableFloat32x4ListView;
}
@patch
abstract class UnmodifiableFloat64x2ListView implements Float64x2List {
@patch
factory UnmodifiableFloat64x2ListView(Float64x2List list) =
_UnmodifiableFloat64x2ListView;
}
@patch
abstract class UnmodifiableFloat32ListView implements Float32List {
@patch
factory UnmodifiableFloat32ListView(Float32List list) =
_UnmodifiableFloat32ListView;
}
@patch
abstract class UnmodifiableFloat64ListView implements Float64List {
@patch
factory UnmodifiableFloat64ListView(Float64List list) =
_UnmodifiableFloat64ListView;
}

View File

@ -2282,7 +2282,7 @@ final class _Int8List extends _TypedList
}
// Method(s) implementing the Int8List interface.
Int8List asUnmodifiableView() => UnmodifiableInt8ListView(this);
Int8List asUnmodifiableView() => _UnmodifiableInt8ArrayView(this);
// Internal utility methods.
Int8List _createList(int length) {
@ -2337,7 +2337,7 @@ final class _Uint8List extends _TypedList
}
// Method(s) implementing the Uint8List interface.
Uint8List asUnmodifiableView() => UnmodifiableUint8ListView(this);
Uint8List asUnmodifiableView() => _UnmodifiableUint8ArrayView(this);
// Internal utility methods.
Uint8List _createList(int length) {
@ -2396,7 +2396,7 @@ final class _Uint8ClampedList extends _TypedList
// Method(s) implementing the Uint8ClampedList interface.
Uint8ClampedList asUnmodifiableView() =>
UnmodifiableUint8ClampedListView(this);
_UnmodifiableUint8ClampedArrayView(this);
// Internal utility methods.
Uint8ClampedList _createList(int length) {
@ -2469,7 +2469,7 @@ final class _Int16List extends _TypedList
}
// Method(s) implementing the Int16List interface.
Int16List asUnmodifiableView() => UnmodifiableInt16ListView(this);
Int16List asUnmodifiableView() => _UnmodifiableInt16ArrayView(this);
// Internal utility methods.
Int16List _createList(int length) {
@ -2537,7 +2537,7 @@ final class _Uint16List extends _TypedList
}
// Method(s) implementing the Uint16List interface.
Uint16List asUnmodifiableView() => UnmodifiableUint16ListView(this);
Uint16List asUnmodifiableView() => _UnmodifiableUint16ArrayView(this);
// Internal utility methods.
Uint16List _createList(int length) {
@ -2591,7 +2591,7 @@ final class _Int32List extends _TypedList
}
// Method(s) implementing the Int32List interface.
Int32List asUnmodifiableView() => UnmodifiableInt32ListView(this);
Int32List asUnmodifiableView() => _UnmodifiableInt32ArrayView(this);
// Internal utility methods.
Int32List _createList(int length) {
@ -2645,7 +2645,7 @@ final class _Uint32List extends _TypedList
}
// Method(s) implementing the Uint32List interface.
Uint32List asUnmodifiableView() => UnmodifiableUint32ListView(this);
Uint32List asUnmodifiableView() => _UnmodifiableUint32ArrayView(this);
// Internal utility methods.
Uint32List _createList(int length) {
@ -2699,7 +2699,7 @@ final class _Int64List extends _TypedList
}
// Method(s) implementing the Int64List interface.
Int64List asUnmodifiableView() => UnmodifiableInt64ListView(this);
Int64List asUnmodifiableView() => _UnmodifiableInt64ArrayView(this);
// Internal utility methods.
Int64List _createList(int length) {
@ -2753,7 +2753,7 @@ final class _Uint64List extends _TypedList
}
// Method(s) implementing the Uint64List interface.
Uint64List asUnmodifiableView() => UnmodifiableUint64ListView(this);
Uint64List asUnmodifiableView() => _UnmodifiableUint64ArrayView(this);
// Internal utility methods.
Uint64List _createList(int length) {
@ -2808,7 +2808,7 @@ final class _Float32List extends _TypedList
}
// Method(s) implementing the Float32List interface.
Float32List asUnmodifiableView() => UnmodifiableFloat32ListView(this);
Float32List asUnmodifiableView() => _UnmodifiableFloat32ArrayView(this);
// Internal utility methods.
Float32List _createList(int length) {
@ -2863,7 +2863,7 @@ final class _Float64List extends _TypedList
}
// Method(s) implementing the Float64List interface.
Float64List asUnmodifiableView() => UnmodifiableFloat64ListView(this);
Float64List asUnmodifiableView() => _UnmodifiableFloat64ArrayView(this);
// Internal utility methods.
Float64List _createList(int length) {
@ -2917,7 +2917,7 @@ final class _Float32x4List extends _TypedList
}
// Method(s) implementing the Float32x4List interface.
Float32x4List asUnmodifiableView() => UnmodifiableFloat32x4ListView(this);
Float32x4List asUnmodifiableView() => _UnmodifiableFloat32x4ArrayView(this);
// Internal utility methods.
Float32x4List _createList(int length) {
@ -2971,7 +2971,7 @@ final class _Int32x4List extends _TypedList
}
// Method(s) implementing the Int32x4List interface.
Int32x4List asUnmodifiableView() => UnmodifiableInt32x4ListView(this);
Int32x4List asUnmodifiableView() => _UnmodifiableInt32x4ArrayView(this);
// Internal utility methods.
Int32x4List _createList(int length) {
@ -3025,7 +3025,7 @@ final class _Float64x2List extends _TypedList
}
// Method(s) implementing the Float64x2List interface.
Float64x2List asUnmodifiableView() => UnmodifiableFloat64x2ListView(this);
Float64x2List asUnmodifiableView() => _UnmodifiableFloat64x2ArrayView(this);
// Internal utility methods.
Float64x2List _createList(int length) {
@ -3064,7 +3064,7 @@ final class _ExternalInt8Array extends _TypedList
}
// Method(s) implementing the Int8List interface.
Int8List asUnmodifiableView() => UnmodifiableInt8ListView(this);
Int8List asUnmodifiableView() => _UnmodifiableInt8ArrayView(this);
// Internal utility methods.
Int8List _createList(int length) {
@ -3104,7 +3104,7 @@ final class _ExternalUint8Array extends _TypedList
}
// Method(s) implementing the Uint8ClampedList interface.
Uint8List asUnmodifiableView() => UnmodifiableUint8ListView(this);
Uint8List asUnmodifiableView() => _UnmodifiableUint8ArrayView(this);
// Internal utility methods.
Uint8List _createList(int length) {
@ -3148,7 +3148,7 @@ final class _ExternalUint8ClampedArray extends _TypedList
// Method(s) implementing the Uint8ClampedList interface.
Uint8ClampedList asUnmodifiableView() =>
UnmodifiableUint8ClampedListView(this);
_UnmodifiableUint8ClampedArrayView(this);
// Internal utility methods.
Uint8ClampedList _createList(int length) {
@ -3192,7 +3192,7 @@ final class _ExternalInt16Array extends _TypedList
}
// Method(s) implementing the Int16List interface.
Int16List asUnmodifiableView() => UnmodifiableInt16ListView(this);
Int16List asUnmodifiableView() => _UnmodifiableInt16ArrayView(this);
// Internal utility methods.
Int16List _createList(int length) {
@ -3231,7 +3231,7 @@ final class _ExternalUint16Array extends _TypedList
}
// Method(s) implementing the Uint16List interface.
Uint16List asUnmodifiableView() => UnmodifiableUint16ListView(this);
Uint16List asUnmodifiableView() => _UnmodifiableUint16ArrayView(this);
// Internal utility methods.
Uint16List _createList(int length) {
@ -3269,7 +3269,7 @@ final class _ExternalInt32Array extends _TypedList
}
// Method(s) implementing the Int32List interface.
Int32List asUnmodifiableView() => UnmodifiableInt32ListView(this);
Int32List asUnmodifiableView() => _UnmodifiableInt32ArrayView(this);
// Internal utility methods.
Int32List _createList(int length) {
@ -3307,7 +3307,7 @@ final class _ExternalUint32Array extends _TypedList
}
// Method(s) implementing the Uint32List interface.
Uint32List asUnmodifiableView() => UnmodifiableUint32ListView(this);
Uint32List asUnmodifiableView() => _UnmodifiableUint32ArrayView(this);
// Internal utility methods.
Uint32List _createList(int length) {
@ -3345,7 +3345,7 @@ final class _ExternalInt64Array extends _TypedList
}
// Method(s) implementing the Int64List interface.
Int64List asUnmodifiableView() => UnmodifiableInt64ListView(this);
Int64List asUnmodifiableView() => _UnmodifiableInt64ArrayView(this);
// Internal utility methods.
Int64List _createList(int length) {
@ -3383,7 +3383,7 @@ final class _ExternalUint64Array extends _TypedList
}
// Method(s) implementing the Uint64List interface.
Uint64List asUnmodifiableView() => UnmodifiableUint64ListView(this);
Uint64List asUnmodifiableView() => _UnmodifiableUint64ArrayView(this);
// Internal utility methods.
Uint64List _createList(int length) {
@ -3422,7 +3422,7 @@ final class _ExternalFloat32Array extends _TypedList
}
// Method(s) implementing the Float32List interface.
Float32List asUnmodifiableView() => UnmodifiableFloat32ListView(this);
Float32List asUnmodifiableView() => _UnmodifiableFloat32ArrayView(this);
// Internal utility methods.
Float32List _createList(int length) {
@ -3461,7 +3461,7 @@ final class _ExternalFloat64Array extends _TypedList
}
// Method(s) implementing the Float64List interface.
Float64List asUnmodifiableView() => UnmodifiableFloat64ListView(this);
Float64List asUnmodifiableView() => _UnmodifiableFloat64ArrayView(this);
// Internal utility methods.
Float64List _createList(int length) {
@ -3500,7 +3500,7 @@ final class _ExternalFloat32x4Array extends _TypedList
}
// Method(s) implementing the Float32x4 interface.
Float32x4List asUnmodifiableView() => UnmodifiableFloat32x4ListView(this);
Float32x4List asUnmodifiableView() => _UnmodifiableFloat32x4ArrayView(this);
// Internal utility methods.
Float32x4List _createList(int length) {
@ -3539,7 +3539,7 @@ final class _ExternalInt32x4Array extends _TypedList
}
// Method(s) implementing the Int32x4List interface.
Int32x4List asUnmodifiableView() => UnmodifiableInt32x4ListView(this);
Int32x4List asUnmodifiableView() => _UnmodifiableInt32x4ArrayView(this);
// Internal utility methods.
Int32x4List _createList(int length) {
@ -3578,7 +3578,7 @@ final class _ExternalFloat64x2Array extends _TypedList
}
// Method(s) implementing the Float64x2List interface.
Float64x2List asUnmodifiableView() => UnmodifiableFloat64x2ListView(this);
Float64x2List asUnmodifiableView() => _UnmodifiableFloat64x2ArrayView(this);
// Internal utility methods.
Float64x2List _createList(int length) {
@ -4179,7 +4179,7 @@ final class _Int8ArrayView extends _TypedListView
}
// Method(s) implementing the Int8List interface.
Int8List asUnmodifiableView() => UnmodifiableInt8ListView(this);
Int8List asUnmodifiableView() => _UnmodifiableInt8ArrayView(this);
// Internal utility methods.
Int8List _createList(int length) {
@ -4224,7 +4224,7 @@ final class _Uint8ArrayView extends _TypedListView
}
// Method(s) implementing the Uint8List interface.
Uint8List asUnmodifiableView() => UnmodifiableUint8ListView(this);
Uint8List asUnmodifiableView() => _UnmodifiableUint8ArrayView(this);
// Internal utility methods.
Uint8List _createList(int length) {
@ -4273,7 +4273,7 @@ final class _Uint8ClampedArrayView extends _TypedListView
// Method(s) implementing the Uint8ClampedList interface.
Uint8ClampedList asUnmodifiableView() =>
UnmodifiableUint8ClampedListView(this);
_UnmodifiableUint8ClampedArrayView(this);
// Internal utility methods.
Uint8ClampedList _createList(int length) {
@ -4337,7 +4337,7 @@ final class _Int16ArrayView extends _TypedListView
}
// Method(s) implementing the Int16List interface.
Int16List asUnmodifiableView() => UnmodifiableInt16ListView(this);
Int16List asUnmodifiableView() => _UnmodifiableInt16ArrayView(this);
// Internal utility methods.
Int16List _createList(int length) {
@ -4396,7 +4396,7 @@ final class _Uint16ArrayView extends _TypedListView
}
// Method(s) implementing the Uint16List interface.
Uint16List asUnmodifiableView() => UnmodifiableUint16ListView(this);
Uint16List asUnmodifiableView() => _UnmodifiableUint16ArrayView(this);
// Internal utility methods.
Uint16List _createList(int length) {
@ -4440,7 +4440,7 @@ final class _Int32ArrayView extends _TypedListView
}
// Method(s) implementing the Int32List interface.
Int32List asUnmodifiableView() => UnmodifiableInt32ListView(this);
Int32List asUnmodifiableView() => _UnmodifiableInt32ArrayView(this);
// Internal utility methods.
Int32List _createList(int length) {
@ -4484,7 +4484,7 @@ final class _Uint32ArrayView extends _TypedListView
}
// Method(s) implementing the Uint32List interface.
Uint32List asUnmodifiableView() => UnmodifiableUint32ListView(this);
Uint32List asUnmodifiableView() => _UnmodifiableUint32ArrayView(this);
// Internal utility methods.
Uint32List _createList(int length) {
@ -4528,7 +4528,7 @@ final class _Int64ArrayView extends _TypedListView
}
// Method(s) implementing the Int16List interface.
Int64List asUnmodifiableView() => UnmodifiableInt64ListView(this);
Int64List asUnmodifiableView() => _UnmodifiableInt64ArrayView(this);
// Internal utility methods.
Int64List _createList(int length) {
@ -4572,7 +4572,7 @@ final class _Uint64ArrayView extends _TypedListView
}
// Method(s) implementing the Uint64List interface.
Uint64List asUnmodifiableView() => UnmodifiableUint64ListView(this);
Uint64List asUnmodifiableView() => _UnmodifiableUint64ArrayView(this);
// Internal utility methods.
Uint64List _createList(int length) {
@ -4617,7 +4617,7 @@ final class _Float32ArrayView extends _TypedListView
}
// Method(s) implementing the Float32List interface.
Float32List asUnmodifiableView() => UnmodifiableFloat32ListView(this);
Float32List asUnmodifiableView() => _UnmodifiableFloat32ArrayView(this);
// Internal utility methods.
Float32List _createList(int length) {
@ -4662,7 +4662,7 @@ final class _Float64ArrayView extends _TypedListView
}
// Method(s) implementing the Float64List interface.
Float64List asUnmodifiableView() => UnmodifiableFloat64ListView(this);
Float64List asUnmodifiableView() => _UnmodifiableFloat64ArrayView(this);
// Internal utility methods.
Float64List _createList(int length) {
@ -4706,7 +4706,7 @@ final class _Float32x4ArrayView extends _TypedListView
}
// Method(s) implementing the Float32x4List interface.
Float32x4List asUnmodifiableView() => UnmodifiableFloat32x4ListView(this);
Float32x4List asUnmodifiableView() => _UnmodifiableFloat32x4ArrayView(this);
// Internal utility methods.
Float32x4List _createList(int length) {
@ -4750,7 +4750,7 @@ final class _Int32x4ArrayView extends _TypedListView
}
// Method(s) implementing the Int32x4List interface.
Int32x4List asUnmodifiableView() => UnmodifiableInt32x4ListView(this);
Int32x4List asUnmodifiableView() => _UnmodifiableInt32x4ArrayView(this);
// Internal utility methods.
Int32x4List _createList(int length) {
@ -4794,7 +4794,7 @@ final class _Float64x2ArrayView extends _TypedListView
}
// Method(s) implementing the Float64x2List interface.
Float64x2List asUnmodifiableView() => UnmodifiableFloat64x2ListView(this);
Float64x2List asUnmodifiableView() => _UnmodifiableFloat64x2ArrayView(this);
// Internal utility methods.
Float64x2List _createList(int length) {
@ -4830,7 +4830,7 @@ final class _ByteDataView implements ByteData {
}
// Method(s) implementing the ByteData interface.
ByteData asUnmodifiableView() => UnmodifiableByteDataView(this);
ByteData asUnmodifiableView() => _UnmodifiableByteDataView(this);
@pragma("vm:prefer-inline")
int getInt8(int byteOffset) {
@ -5126,181 +5126,8 @@ void _offsetAlignmentCheck(int offset, int alignment) {
}
}
@patch
abstract class UnmodifiableByteBufferView implements Uint8List {
@patch
factory UnmodifiableByteBufferView(ByteBuffer data) =
_UnmodifiableByteBufferView;
}
@patch
abstract class UnmodifiableByteDataView implements ByteData {
@patch
@pragma("vm:prefer-inline")
factory UnmodifiableByteDataView(ByteData data) =>
new _UnmodifiableByteDataView._(
unsafeCast<_ByteDataView>(data).buffer._data,
data.offsetInBytes,
data.lengthInBytes);
}
@patch
abstract class UnmodifiableUint8ListView implements Uint8List {
@patch
@pragma("vm:prefer-inline")
factory UnmodifiableUint8ListView(Uint8List list) =>
new _UnmodifiableUint8ArrayView._(
unsafeCast<_TypedListBase>(list)._typedData,
list.offsetInBytes,
list.length);
}
@patch
abstract class UnmodifiableInt8ListView implements Int8List {
@patch
@pragma("vm:prefer-inline")
factory UnmodifiableInt8ListView(Int8List list) =>
new _UnmodifiableInt8ArrayView._(
unsafeCast<_TypedListBase>(list)._typedData,
list.offsetInBytes,
list.length);
}
@patch
abstract class UnmodifiableUint8ClampedListView implements Uint8ClampedList {
@patch
@pragma("vm:prefer-inline")
factory UnmodifiableUint8ClampedListView(Uint8ClampedList list) =>
new _UnmodifiableUint8ClampedArrayView._(
unsafeCast<_TypedListBase>(list)._typedData,
list.offsetInBytes,
list.length);
}
@patch
abstract class UnmodifiableUint16ListView implements Uint16List {
@patch
@pragma("vm:prefer-inline")
factory UnmodifiableUint16ListView(Uint16List list) =>
new _UnmodifiableUint16ArrayView._(
unsafeCast<_TypedListBase>(list)._typedData,
list.offsetInBytes,
list.length);
}
@patch
abstract class UnmodifiableInt16ListView implements Int16List {
@patch
@pragma("vm:prefer-inline")
factory UnmodifiableInt16ListView(Int16List list) =>
new _UnmodifiableInt16ArrayView._(
unsafeCast<_TypedListBase>(list)._typedData,
list.offsetInBytes,
list.length);
}
@patch
abstract class UnmodifiableUint32ListView implements Uint32List {
@patch
@pragma("vm:prefer-inline")
factory UnmodifiableUint32ListView(Uint32List list) =>
new _UnmodifiableUint32ArrayView._(
unsafeCast<_TypedListBase>(list)._typedData,
list.offsetInBytes,
list.length);
}
@patch
abstract class UnmodifiableInt32ListView implements Int32List {
@patch
@pragma("vm:prefer-inline")
factory UnmodifiableInt32ListView(Int32List list) =>
new _UnmodifiableInt32ArrayView._(
unsafeCast<_TypedListBase>(list)._typedData,
list.offsetInBytes,
list.length);
}
@patch
abstract class UnmodifiableUint64ListView implements Uint64List {
@patch
@pragma("vm:prefer-inline")
factory UnmodifiableUint64ListView(Uint64List list) =>
new _UnmodifiableUint64ArrayView._(
unsafeCast<_TypedListBase>(list)._typedData,
list.offsetInBytes,
list.length);
}
@patch
abstract class UnmodifiableInt64ListView implements Int64List {
@patch
@pragma("vm:prefer-inline")
factory UnmodifiableInt64ListView(Int64List list) =>
new _UnmodifiableInt64ArrayView._(
unsafeCast<_TypedListBase>(list)._typedData,
list.offsetInBytes,
list.length);
}
@patch
abstract class UnmodifiableInt32x4ListView implements Int32x4List {
@patch
@pragma("vm:prefer-inline")
factory UnmodifiableInt32x4ListView(Int32x4List list) =>
new _UnmodifiableInt32x4ArrayView._(
unsafeCast<_TypedListBase>(list)._typedData,
list.offsetInBytes,
list.length);
}
@patch
abstract class UnmodifiableFloat32x4ListView implements Float32x4List {
@patch
@pragma("vm:prefer-inline")
factory UnmodifiableFloat32x4ListView(Float32x4List list) =>
new _UnmodifiableFloat32x4ArrayView._(
unsafeCast<_TypedListBase>(list)._typedData,
list.offsetInBytes,
list.length);
}
@patch
abstract class UnmodifiableFloat64x2ListView implements Float64x2List {
@patch
@pragma("vm:prefer-inline")
factory UnmodifiableFloat64x2ListView(Float64x2List list) =>
new _UnmodifiableFloat64x2ArrayView._(
unsafeCast<_TypedListBase>(list)._typedData,
list.offsetInBytes,
list.length);
}
@patch
abstract class UnmodifiableFloat32ListView implements Float32List {
@patch
@pragma("vm:prefer-inline")
factory UnmodifiableFloat32ListView(Float32List list) =>
new _UnmodifiableFloat32ArrayView._(
unsafeCast<_TypedListBase>(list)._typedData,
list.offsetInBytes,
list.length);
}
@patch
abstract class UnmodifiableFloat64ListView implements Float64List {
@patch
@pragma("vm:prefer-inline")
factory UnmodifiableFloat64ListView(Float64List list) =>
new _UnmodifiableFloat64ArrayView._(
unsafeCast<_TypedListBase>(list)._typedData,
list.offsetInBytes,
list.length);
}
@pragma("vm:entry-point")
final class _UnmodifiableInt8ArrayView extends _Int8ArrayView
implements UnmodifiableInt8ListView {
final class _UnmodifiableInt8ArrayView extends _Int8ArrayView {
@pragma("vm:recognized", "other")
@pragma("vm:exact-result-type", _UnmodifiableInt8ArrayView)
@pragma("vm:prefer-inline")
@ -5308,6 +5135,13 @@ final class _UnmodifiableInt8ArrayView extends _Int8ArrayView
external factory _UnmodifiableInt8ArrayView._(
_TypedList buffer, int offsetInBytes, int length);
@pragma("vm:prefer-inline")
factory _UnmodifiableInt8ArrayView(Int8List list) =>
new _UnmodifiableInt8ArrayView._(
unsafeCast<_TypedListBase>(list)._typedData,
list.offsetInBytes,
list.length);
void operator []=(int index, int value) {
throw new UnsupportedError("Cannot modify an unmodifiable list");
}
@ -5318,8 +5152,7 @@ final class _UnmodifiableInt8ArrayView extends _Int8ArrayView
}
@pragma("vm:entry-point")
final class _UnmodifiableUint8ArrayView extends _Uint8ArrayView
implements UnmodifiableUint8ListView {
final class _UnmodifiableUint8ArrayView extends _Uint8ArrayView {
@pragma("vm:recognized", "other")
@pragma("vm:exact-result-type", _UnmodifiableUint8ArrayView)
@pragma("vm:prefer-inline")
@ -5327,6 +5160,13 @@ final class _UnmodifiableUint8ArrayView extends _Uint8ArrayView
external factory _UnmodifiableUint8ArrayView._(
_TypedList buffer, int offsetInBytes, int length);
@pragma("vm:prefer-inline")
factory _UnmodifiableUint8ArrayView(Uint8List list) =>
new _UnmodifiableUint8ArrayView._(
unsafeCast<_TypedListBase>(list)._typedData,
list.offsetInBytes,
list.length);
void operator []=(int index, int value) {
throw new UnsupportedError("Cannot modify an unmodifiable list");
}
@ -5337,8 +5177,7 @@ final class _UnmodifiableUint8ArrayView extends _Uint8ArrayView
}
@pragma("vm:entry-point")
final class _UnmodifiableUint8ClampedArrayView extends _Uint8ClampedArrayView
implements UnmodifiableUint8ClampedListView {
final class _UnmodifiableUint8ClampedArrayView extends _Uint8ClampedArrayView {
@pragma("vm:recognized", "other")
@pragma("vm:exact-result-type", _UnmodifiableUint8ClampedArrayView)
@pragma("vm:prefer-inline")
@ -5346,6 +5185,13 @@ final class _UnmodifiableUint8ClampedArrayView extends _Uint8ClampedArrayView
external factory _UnmodifiableUint8ClampedArrayView._(
_TypedList buffer, int offsetInBytes, int length);
@pragma("vm:prefer-inline")
factory _UnmodifiableUint8ClampedArrayView(Uint8ClampedList list) =>
new _UnmodifiableUint8ClampedArrayView._(
unsafeCast<_TypedListBase>(list)._typedData,
list.offsetInBytes,
list.length);
void operator []=(int index, int value) {
throw new UnsupportedError("Cannot modify an unmodifiable list");
}
@ -5356,8 +5202,7 @@ final class _UnmodifiableUint8ClampedArrayView extends _Uint8ClampedArrayView
}
@pragma("vm:entry-point")
final class _UnmodifiableInt16ArrayView extends _Int16ArrayView
implements UnmodifiableInt16ListView {
final class _UnmodifiableInt16ArrayView extends _Int16ArrayView {
@pragma("vm:recognized", "other")
@pragma("vm:exact-result-type", _UnmodifiableInt16ArrayView)
@pragma("vm:prefer-inline")
@ -5365,6 +5210,13 @@ final class _UnmodifiableInt16ArrayView extends _Int16ArrayView
external factory _UnmodifiableInt16ArrayView._(
_TypedList buffer, int offsetInBytes, int length);
@pragma("vm:prefer-inline")
factory _UnmodifiableInt16ArrayView(Int16List list) =>
new _UnmodifiableInt16ArrayView._(
unsafeCast<_TypedListBase>(list)._typedData,
list.offsetInBytes,
list.length);
void operator []=(int index, int value) {
throw new UnsupportedError("Cannot modify an unmodifiable list");
}
@ -5375,8 +5227,7 @@ final class _UnmodifiableInt16ArrayView extends _Int16ArrayView
}
@pragma("vm:entry-point")
final class _UnmodifiableUint16ArrayView extends _Uint16ArrayView
implements UnmodifiableUint16ListView {
final class _UnmodifiableUint16ArrayView extends _Uint16ArrayView {
@pragma("vm:recognized", "other")
@pragma("vm:exact-result-type", _UnmodifiableUint16ArrayView)
@pragma("vm:prefer-inline")
@ -5384,6 +5235,13 @@ final class _UnmodifiableUint16ArrayView extends _Uint16ArrayView
external factory _UnmodifiableUint16ArrayView._(
_TypedList buffer, int offsetInBytes, int length);
@pragma("vm:prefer-inline")
factory _UnmodifiableUint16ArrayView(Uint16List list) =>
new _UnmodifiableUint16ArrayView._(
unsafeCast<_TypedListBase>(list)._typedData,
list.offsetInBytes,
list.length);
void operator []=(int index, int value) {
throw new UnsupportedError("Cannot modify an unmodifiable list");
}
@ -5394,8 +5252,7 @@ final class _UnmodifiableUint16ArrayView extends _Uint16ArrayView
}
@pragma("vm:entry-point")
final class _UnmodifiableInt32ArrayView extends _Int32ArrayView
implements UnmodifiableInt32ListView {
final class _UnmodifiableInt32ArrayView extends _Int32ArrayView {
@pragma("vm:recognized", "other")
@pragma("vm:exact-result-type", _UnmodifiableInt32ArrayView)
@pragma("vm:prefer-inline")
@ -5403,6 +5260,13 @@ final class _UnmodifiableInt32ArrayView extends _Int32ArrayView
external factory _UnmodifiableInt32ArrayView._(
_TypedList buffer, int offsetInBytes, int length);
@pragma("vm:prefer-inline")
factory _UnmodifiableInt32ArrayView(Int32List list) =>
new _UnmodifiableInt32ArrayView._(
unsafeCast<_TypedListBase>(list)._typedData,
list.offsetInBytes,
list.length);
void operator []=(int index, int value) {
throw new UnsupportedError("Cannot modify an unmodifiable list");
}
@ -5413,8 +5277,7 @@ final class _UnmodifiableInt32ArrayView extends _Int32ArrayView
}
@pragma("vm:entry-point")
final class _UnmodifiableUint32ArrayView extends _Uint32ArrayView
implements UnmodifiableUint32ListView {
final class _UnmodifiableUint32ArrayView extends _Uint32ArrayView {
@pragma("vm:recognized", "other")
@pragma("vm:exact-result-type", _UnmodifiableUint32ArrayView)
@pragma("vm:prefer-inline")
@ -5422,6 +5285,13 @@ final class _UnmodifiableUint32ArrayView extends _Uint32ArrayView
external factory _UnmodifiableUint32ArrayView._(
_TypedList buffer, int offsetInBytes, int length);
@pragma("vm:prefer-inline")
factory _UnmodifiableUint32ArrayView(Uint32List list) =>
new _UnmodifiableUint32ArrayView._(
unsafeCast<_TypedListBase>(list)._typedData,
list.offsetInBytes,
list.length);
void operator []=(int index, int value) {
throw new UnsupportedError("Cannot modify an unmodifiable list");
}
@ -5432,8 +5302,7 @@ final class _UnmodifiableUint32ArrayView extends _Uint32ArrayView
}
@pragma("vm:entry-point")
final class _UnmodifiableInt64ArrayView extends _Int64ArrayView
implements UnmodifiableInt64ListView {
final class _UnmodifiableInt64ArrayView extends _Int64ArrayView {
@pragma("vm:recognized", "other")
@pragma("vm:exact-result-type", _UnmodifiableInt64ArrayView)
@pragma("vm:prefer-inline")
@ -5441,6 +5310,13 @@ final class _UnmodifiableInt64ArrayView extends _Int64ArrayView
external factory _UnmodifiableInt64ArrayView._(
_TypedList buffer, int offsetInBytes, int length);
@pragma("vm:prefer-inline")
factory _UnmodifiableInt64ArrayView(Int64List list) =>
new _UnmodifiableInt64ArrayView._(
unsafeCast<_TypedListBase>(list)._typedData,
list.offsetInBytes,
list.length);
void operator []=(int index, int value) {
throw new UnsupportedError("Cannot modify an unmodifiable list");
}
@ -5451,8 +5327,7 @@ final class _UnmodifiableInt64ArrayView extends _Int64ArrayView
}
@pragma("vm:entry-point")
final class _UnmodifiableUint64ArrayView extends _Uint64ArrayView
implements UnmodifiableUint64ListView {
final class _UnmodifiableUint64ArrayView extends _Uint64ArrayView {
@pragma("vm:recognized", "other")
@pragma("vm:exact-result-type", _UnmodifiableUint64ArrayView)
@pragma("vm:prefer-inline")
@ -5460,6 +5335,13 @@ final class _UnmodifiableUint64ArrayView extends _Uint64ArrayView
external factory _UnmodifiableUint64ArrayView._(
_TypedList buffer, int offsetInBytes, int length);
@pragma("vm:prefer-inline")
factory _UnmodifiableUint64ArrayView(Uint64List list) =>
new _UnmodifiableUint64ArrayView._(
unsafeCast<_TypedListBase>(list)._typedData,
list.offsetInBytes,
list.length);
void operator []=(int index, int value) {
throw new UnsupportedError("Cannot modify an unmodifiable list");
}
@ -5470,8 +5352,7 @@ final class _UnmodifiableUint64ArrayView extends _Uint64ArrayView
}
@pragma("vm:entry-point")
final class _UnmodifiableFloat32ArrayView extends _Float32ArrayView
implements UnmodifiableFloat32ListView {
final class _UnmodifiableFloat32ArrayView extends _Float32ArrayView {
@pragma("vm:recognized", "other")
@pragma("vm:exact-result-type", _UnmodifiableFloat32ArrayView)
@pragma("vm:prefer-inline")
@ -5479,6 +5360,13 @@ final class _UnmodifiableFloat32ArrayView extends _Float32ArrayView
external factory _UnmodifiableFloat32ArrayView._(
_TypedList buffer, int offsetInBytes, int length);
@pragma("vm:prefer-inline")
factory _UnmodifiableFloat32ArrayView(Float32List list) =>
new _UnmodifiableFloat32ArrayView._(
unsafeCast<_TypedListBase>(list)._typedData,
list.offsetInBytes,
list.length);
void operator []=(int index, double value) {
throw new UnsupportedError("Cannot modify an unmodifiable list");
}
@ -5489,8 +5377,7 @@ final class _UnmodifiableFloat32ArrayView extends _Float32ArrayView
}
@pragma("vm:entry-point")
final class _UnmodifiableFloat64ArrayView extends _Float64ArrayView
implements UnmodifiableFloat64ListView {
final class _UnmodifiableFloat64ArrayView extends _Float64ArrayView {
@pragma("vm:recognized", "other")
@pragma("vm:exact-result-type", _UnmodifiableFloat64ArrayView)
@pragma("vm:prefer-inline")
@ -5498,6 +5385,13 @@ final class _UnmodifiableFloat64ArrayView extends _Float64ArrayView
external factory _UnmodifiableFloat64ArrayView._(
_TypedList buffer, int offsetInBytes, int length);
@pragma("vm:prefer-inline")
factory _UnmodifiableFloat64ArrayView(Float64List list) =>
new _UnmodifiableFloat64ArrayView._(
unsafeCast<_TypedListBase>(list)._typedData,
list.offsetInBytes,
list.length);
void operator []=(int index, double value) {
throw new UnsupportedError("Cannot modify an unmodifiable list");
}
@ -5508,8 +5402,7 @@ final class _UnmodifiableFloat64ArrayView extends _Float64ArrayView
}
@pragma("vm:entry-point")
final class _UnmodifiableFloat32x4ArrayView extends _Float32x4ArrayView
implements UnmodifiableFloat32x4ListView {
final class _UnmodifiableFloat32x4ArrayView extends _Float32x4ArrayView {
@pragma("vm:recognized", "other")
@pragma("vm:exact-result-type", _UnmodifiableFloat32x4ArrayView)
@pragma("vm:prefer-inline")
@ -5517,6 +5410,13 @@ final class _UnmodifiableFloat32x4ArrayView extends _Float32x4ArrayView
external factory _UnmodifiableFloat32x4ArrayView._(
_TypedList buffer, int offsetInBytes, int length);
@pragma("vm:prefer-inline")
factory _UnmodifiableFloat32x4ArrayView(Float32x4List list) =>
new _UnmodifiableFloat32x4ArrayView._(
unsafeCast<_TypedListBase>(list)._typedData,
list.offsetInBytes,
list.length);
void operator []=(int index, Float32x4 value) {
throw new UnsupportedError("Cannot modify an unmodifiable list");
}
@ -5527,8 +5427,7 @@ final class _UnmodifiableFloat32x4ArrayView extends _Float32x4ArrayView
}
@pragma("vm:entry-point")
final class _UnmodifiableInt32x4ArrayView extends _Int32x4ArrayView
implements UnmodifiableInt32x4ListView {
final class _UnmodifiableInt32x4ArrayView extends _Int32x4ArrayView {
@pragma("vm:recognized", "other")
@pragma("vm:exact-result-type", _UnmodifiableInt32x4ArrayView)
@pragma("vm:prefer-inline")
@ -5536,6 +5435,13 @@ final class _UnmodifiableInt32x4ArrayView extends _Int32x4ArrayView
external factory _UnmodifiableInt32x4ArrayView._(
_TypedList buffer, int offsetInBytes, int length);
@pragma("vm:prefer-inline")
factory _UnmodifiableInt32x4ArrayView(Int32x4List list) =>
new _UnmodifiableInt32x4ArrayView._(
unsafeCast<_TypedListBase>(list)._typedData,
list.offsetInBytes,
list.length);
void operator []=(int index, Int32x4 value) {
throw new UnsupportedError("Cannot modify an unmodifiable list");
}
@ -5546,8 +5452,7 @@ final class _UnmodifiableInt32x4ArrayView extends _Int32x4ArrayView
}
@pragma("vm:entry-point")
final class _UnmodifiableFloat64x2ArrayView extends _Float64x2ArrayView
implements UnmodifiableFloat64x2ListView {
final class _UnmodifiableFloat64x2ArrayView extends _Float64x2ArrayView {
@pragma("vm:recognized", "other")
@pragma("vm:exact-result-type", _UnmodifiableFloat64x2ArrayView)
@pragma("vm:prefer-inline")
@ -5555,6 +5460,13 @@ final class _UnmodifiableFloat64x2ArrayView extends _Float64x2ArrayView
external factory _UnmodifiableFloat64x2ArrayView._(
_TypedList buffer, int offsetInBytes, int length);
@pragma("vm:prefer-inline")
factory _UnmodifiableFloat64x2ArrayView(Float64x2List list) =>
new _UnmodifiableFloat64x2ArrayView._(
unsafeCast<_TypedListBase>(list)._typedData,
list.offsetInBytes,
list.length);
void operator []=(int index, Float64x2 value) {
throw new UnsupportedError("Cannot modify an unmodifiable list");
}
@ -5565,8 +5477,7 @@ final class _UnmodifiableFloat64x2ArrayView extends _Float64x2ArrayView
}
@pragma("vm:entry-point")
final class _UnmodifiableByteDataView extends _ByteDataView
implements UnmodifiableByteDataView {
final class _UnmodifiableByteDataView extends _ByteDataView {
@pragma("vm:recognized", "other")
@pragma("vm:exact-result-type", _UnmodifiableByteDataView)
@pragma("vm:prefer-inline")
@ -5574,6 +5485,13 @@ final class _UnmodifiableByteDataView extends _ByteDataView
external factory _UnmodifiableByteDataView._(
_TypedList buffer, int offsetInBytes, int length);
@pragma("vm:prefer-inline")
factory _UnmodifiableByteDataView(ByteData data) =>
new _UnmodifiableByteDataView._(
unsafeCast<_ByteDataView>(data).buffer._data,
data.offsetInBytes,
data.lengthInBytes);
void setInt8(int byteOffset, int value) {
throw new UnsupportedError("Cannot modify an unmodifiable list");
}
@ -5624,59 +5542,61 @@ final class _UnmodifiableByteDataView extends _ByteDataView
ByteData asUnmodifiableView() => this;
}
final class _UnmodifiableByteBufferView extends _ByteBuffer
implements UnmodifiableByteBufferView {
final class _UnmodifiableByteBufferView extends _ByteBuffer {
_UnmodifiableByteBufferView(ByteBuffer data)
: super(unsafeCast<_ByteBuffer>(data)._data);
Uint8List asUint8List([int offsetInBytes = 0, int? length]) =>
new UnmodifiableUint8ListView(super.asUint8List(offsetInBytes, length));
new _UnmodifiableUint8ArrayView(super.asUint8List(offsetInBytes, length));
Int8List asInt8List([int offsetInBytes = 0, int? length]) =>
new UnmodifiableInt8ListView(super.asInt8List(offsetInBytes, length));
new _UnmodifiableInt8ArrayView(super.asInt8List(offsetInBytes, length));
Uint8ClampedList asUint8ClampedList([int offsetInBytes = 0, int? length]) =>
new UnmodifiableUint8ClampedListView(
new _UnmodifiableUint8ClampedArrayView(
super.asUint8ClampedList(offsetInBytes, length));
Uint16List asUint16List([int offsetInBytes = 0, int? length]) =>
new UnmodifiableUint16ListView(super.asUint16List(offsetInBytes, length));
new _UnmodifiableUint16ArrayView(
super.asUint16List(offsetInBytes, length));
Int16List asInt16List([int offsetInBytes = 0, int? length]) =>
new UnmodifiableInt16ListView(super.asInt16List(offsetInBytes, length));
new _UnmodifiableInt16ArrayView(super.asInt16List(offsetInBytes, length));
Uint32List asUint32List([int offsetInBytes = 0, int? length]) =>
new UnmodifiableUint32ListView(super.asUint32List(offsetInBytes, length));
new _UnmodifiableUint32ArrayView(
super.asUint32List(offsetInBytes, length));
Int32List asInt32List([int offsetInBytes = 0, int? length]) =>
new UnmodifiableInt32ListView(super.asInt32List(offsetInBytes, length));
new _UnmodifiableInt32ArrayView(super.asInt32List(offsetInBytes, length));
Uint64List asUint64List([int offsetInBytes = 0, int? length]) =>
new UnmodifiableUint64ListView(super.asUint64List(offsetInBytes, length));
new _UnmodifiableUint64ArrayView(
super.asUint64List(offsetInBytes, length));
Int64List asInt64List([int offsetInBytes = 0, int? length]) =>
new UnmodifiableInt64ListView(super.asInt64List(offsetInBytes, length));
new _UnmodifiableInt64ArrayView(super.asInt64List(offsetInBytes, length));
Int32x4List asInt32x4List([int offsetInBytes = 0, int? length]) =>
new UnmodifiableInt32x4ListView(
new _UnmodifiableInt32x4ArrayView(
super.asInt32x4List(offsetInBytes, length));
Float32List asFloat32List([int offsetInBytes = 0, int? length]) =>
new UnmodifiableFloat32ListView(
new _UnmodifiableFloat32ArrayView(
super.asFloat32List(offsetInBytes, length));
Float64List asFloat64List([int offsetInBytes = 0, int? length]) =>
new UnmodifiableFloat64ListView(
new _UnmodifiableFloat64ArrayView(
super.asFloat64List(offsetInBytes, length));
Float32x4List asFloat32x4List([int offsetInBytes = 0, int? length]) =>
new UnmodifiableFloat32x4ListView(
new _UnmodifiableFloat32x4ArrayView(
super.asFloat32x4List(offsetInBytes, length));
Float64x2List asFloat64x2List([int offsetInBytes = 0, int? length]) =>
new UnmodifiableFloat64x2ListView(
new _UnmodifiableFloat64x2ArrayView(
super.asFloat64x2List(offsetInBytes, length));
ByteData asByteData([int offsetInBytes = 0, int? length]) =>
new UnmodifiableByteDataView(super.asByteData(offsetInBytes, length));
new _UnmodifiableByteDataView(super.asByteData(offsetInBytes, length));
}

View File

@ -240,8 +240,7 @@ final class JSDataViewImpl implements ByteData {
int get elementSizeInBytes => 1;
@override
UnmodifiableByteDataView asUnmodifiableView() =>
UnmodifiableByteDataView(this);
ByteData asUnmodifiableView() => throw UnimplementedError();
@override
double getFloat32(int byteOffset, [Endian endian = Endian.big]) =>
@ -752,8 +751,7 @@ final class _JSUint8ArrayIterator extends _IntArrayIteratorBase {
}
final class UnmodifiableJSUint8Array extends JSUint8ArrayImpl
with _UnmodifiableIntListMixin
implements UnmodifiableUint8ListView {
with _UnmodifiableIntListMixin {
UnmodifiableJSUint8Array._(WasmExternRef? ref) : super._(ref);
}
@ -836,8 +834,7 @@ final class _JSInt8ArrayIterator extends _IntArrayIteratorBase {
}
final class UnmodifiableJSInt8Array extends JSInt8ArrayImpl
with _UnmodifiableIntListMixin
implements UnmodifiableInt8ListView {
with _UnmodifiableIntListMixin {
UnmodifiableJSInt8Array._(WasmExternRef? ref) : super._(ref);
}
@ -907,8 +904,7 @@ final class JSUint8ClampedArrayImpl extends JSArrayBase
}
final class UnmodifiableJSUint8ClampedArray extends JSUint8ClampedArrayImpl
with _UnmodifiableIntListMixin
implements UnmodifiableUint8ClampedListView {
with _UnmodifiableIntListMixin {
UnmodifiableJSUint8ClampedArray._(WasmExternRef? ref) : super._(ref);
}
@ -998,8 +994,7 @@ final class _JSUint16ArrayIterator extends _IntArrayIteratorBase {
}
final class UnmodifiableJSUint16Array extends JSUint16ArrayImpl
with _UnmodifiableIntListMixin
implements UnmodifiableUint16ListView {
with _UnmodifiableIntListMixin {
UnmodifiableJSUint16Array._(WasmExternRef? ref) : super._(ref);
}
@ -1089,8 +1084,7 @@ final class _JSInt16ArrayIterator extends _IntArrayIteratorBase {
}
final class UnmodifiableJSInt16Array extends JSInt16ArrayImpl
with _UnmodifiableIntListMixin
implements UnmodifiableInt16ListView {
with _UnmodifiableIntListMixin {
UnmodifiableJSInt16Array._(WasmExternRef? ref) : super._(ref);
}
@ -1180,8 +1174,7 @@ final class _JSUint32ArrayIterator extends _IntArrayIteratorBase {
}
final class UnmodifiableJSUint32Array extends JSUint32ArrayImpl
with _UnmodifiableIntListMixin
implements UnmodifiableUint32ListView {
with _UnmodifiableIntListMixin {
UnmodifiableJSUint32Array._(WasmExternRef? ref) : super._(ref);
}
@ -1271,8 +1264,7 @@ final class _JSInt32ArrayIterator extends _IntArrayIteratorBase {
}
final class UnmodifiableJSInt32Array extends JSInt32ArrayImpl
with _UnmodifiableIntListMixin
implements UnmodifiableInt32ListView {
with _UnmodifiableIntListMixin {
UnmodifiableJSInt32Array._(WasmExternRef? ref) : super._(ref);
}
@ -1323,8 +1315,7 @@ final class JSInt32x4ArrayImpl
}
@override
UnmodifiableInt32x4ListView asUnmodifiableView() =>
UnmodifiableInt32x4ListView(this);
Int32x4List asUnmodifiableView() => NaiveUnmodifiableInt32x4List(this);
@override
JSInt32x4ArrayImpl sublist(int start, [int? end]) {
@ -1448,8 +1439,7 @@ final class _JSUint64ArrayIterator extends _IntArrayIteratorBase {
}
final class UnmodifiableJSBigUint64Array extends JSBigUint64ArrayImpl
with _UnmodifiableIntListMixin
implements UnmodifiableUint64ListView {
with _UnmodifiableIntListMixin {
UnmodifiableJSBigUint64Array._(WasmExternRef? ref) : super._(ref);
}
@ -1539,8 +1529,7 @@ final class _JSInt64ArrayIterator extends _IntArrayIteratorBase {
}
final class UnmodifiableJSBigInt64Array extends JSBigInt64ArrayImpl
with _UnmodifiableIntListMixin
implements UnmodifiableInt64ListView {
with _UnmodifiableIntListMixin {
UnmodifiableJSBigInt64Array._(WasmExternRef? ref) : super._(ref);
}
@ -1972,8 +1961,7 @@ final class _JSFloat32ArrayIterator extends _DoubleArrayIteratorBase {
}
final class UnmodifiableJSFloat32Array extends JSFloat32ArrayImpl
with _UnmodifiableDoubleListMixin
implements UnmodifiableFloat32ListView {
with _UnmodifiableDoubleListMixin {
UnmodifiableJSFloat32Array._(WasmExternRef? ref) : super._(ref);
}
@ -2063,8 +2051,7 @@ final class _JSFloat64ArrayIterator extends _DoubleArrayIteratorBase {
}
final class UnmodifiableJSFloat64Array extends JSFloat64ArrayImpl
with _UnmodifiableDoubleListMixin
implements UnmodifiableFloat64ListView {
with _UnmodifiableDoubleListMixin {
UnmodifiableJSFloat64Array._(WasmExternRef? ref) : super._(ref);
}
@ -2115,8 +2102,7 @@ final class JSFloat32x4ArrayImpl
}
@override
UnmodifiableFloat32x4ListView asUnmodifiableView() =>
UnmodifiableFloat32x4ListView(this);
Float32x4List asUnmodifiableView() => NaiveUnmodifiableFloat32x4List(this);
@override
JSFloat32x4ArrayImpl sublist(int start, [int? end]) {
@ -2198,8 +2184,7 @@ final class JSFloat64x2ArrayImpl
}
@override
UnmodifiableFloat64x2ListView asUnmodifiableView() =>
UnmodifiableFloat64x2ListView(this);
Float64x2List asUnmodifiableView() => NaiveUnmodifiableFloat64x2List(this);
@override
JSFloat64x2ArrayImpl sublist(int start, [int? end]) {

View File

@ -17,6 +17,11 @@ import 'dart:_error_utils';
import 'dart:_internal';
import 'dart:_js_helper' as js;
import 'dart:_object_helper';
import 'dart:_simd'
show
NaiveUnmodifiableInt32x4List,
NaiveUnmodifiableFloat32x4List,
NaiveUnmodifiableFloat64x2List;
import 'dart:_string_helper';
import 'dart:_wasm';
import 'dart:collection';

View File

@ -68,7 +68,7 @@ final class NaiveInt32x4List extends WasmTypedDataBase
_storage[(index * 4) + 3] = value.w;
}
Int32x4List asUnmodifiableView() => UnmodifiableInt32x4ListView(this);
Int32x4List asUnmodifiableView() => NaiveUnmodifiableInt32x4List(this);
Int32x4List sublist(int start, [int? end]) {
int stop = RangeError.checkValidRange(start, end, length);
@ -100,8 +100,7 @@ final class NaiveInt32x4List extends WasmTypedDataBase
}
}
final class NaiveUnmodifiableInt32x4List extends NaiveInt32x4List
implements UnmodifiableInt32x4ListView {
final class NaiveUnmodifiableInt32x4List extends NaiveInt32x4List {
NaiveUnmodifiableInt32x4List(Int32x4List list)
: super.externalStorage(unsafeCast<NaiveInt32x4List>(list)._storage);
@ -114,7 +113,7 @@ final class NaiveUnmodifiableInt32x4List extends NaiveInt32x4List
}
@override
ByteBuffer get buffer => UnmodifiableByteBufferView(super.buffer);
ByteBuffer get buffer => _storage.asUnmodifiableView().buffer;
}
final class NaiveFloat32x4List extends WasmTypedDataBase
@ -173,7 +172,7 @@ final class NaiveFloat32x4List extends WasmTypedDataBase
_storage[(index * 4) + 3] = value.w;
}
Float32x4List asUnmodifiableView() => UnmodifiableFloat32x4ListView(this);
Float32x4List asUnmodifiableView() => NaiveUnmodifiableFloat32x4List(this);
Float32x4List sublist(int start, [int? end]) {
int stop = RangeError.checkValidRange(start, end, length);
@ -206,8 +205,7 @@ final class NaiveFloat32x4List extends WasmTypedDataBase
}
}
final class NaiveUnmodifiableFloat32x4List extends NaiveFloat32x4List
implements UnmodifiableFloat32x4ListView {
final class NaiveUnmodifiableFloat32x4List extends NaiveFloat32x4List {
NaiveUnmodifiableFloat32x4List(Float32x4List list)
: super.externalStorage(unsafeCast<NaiveFloat32x4List>(list)._storage);
@ -220,7 +218,7 @@ final class NaiveUnmodifiableFloat32x4List extends NaiveFloat32x4List
}
@override
ByteBuffer get buffer => UnmodifiableByteBufferView(super.buffer);
ByteBuffer get buffer => _storage.asUnmodifiableView().buffer;
}
final class NaiveFloat64x2List extends WasmTypedDataBase
@ -273,7 +271,7 @@ final class NaiveFloat64x2List extends WasmTypedDataBase
_storage[(index * 2) + 1] = value.y;
}
Float64x2List asUnmodifiableView() => UnmodifiableFloat64x2ListView(this);
Float64x2List asUnmodifiableView() => NaiveUnmodifiableFloat64x2List(this);
Float64x2List sublist(int start, [int? end]) {
int stop = RangeError.checkValidRange(start, end, length);
@ -306,8 +304,7 @@ final class NaiveFloat64x2List extends WasmTypedDataBase
}
}
final class NaiveUnmodifiableFloat64x2List extends NaiveFloat64x2List
implements UnmodifiableFloat64x2ListView {
final class NaiveUnmodifiableFloat64x2List extends NaiveFloat64x2List {
NaiveUnmodifiableFloat64x2List(Float64x2List list)
: super.externalStorage(unsafeCast<NaiveFloat64x2List>(list)._storage);
@ -320,7 +317,7 @@ final class NaiveUnmodifiableFloat64x2List extends NaiveFloat64x2List
}
@override
ByteBuffer get buffer => UnmodifiableByteBufferView(super.buffer);
ByteBuffer get buffer => _storage.asUnmodifiableView().buffer;
}
final class NaiveFloat32x4 extends WasmTypedDataBase implements Float32x4 {

View File

@ -103,7 +103,7 @@ abstract class ByteDataBase extends WasmTypedDataBase implements ByteData {
ByteDataBase(this.offsetInBytes, this.lengthInBytes);
@override
UnmodifiableByteDataView asUnmodifiableView();
ByteData asUnmodifiableView();
void _offsetRangeCheck(int byteOffset, int size) {
if (byteOffset < 0 || byteOffset + size > lengthInBytes) {
@ -887,8 +887,7 @@ class _F64ByteData extends ByteDataBase {
}
class _UnmodifiableI8ByteData extends I8ByteData
with _UnmodifiableByteDataMixin
implements UnmodifiableByteDataView {
with _UnmodifiableByteDataMixin {
_UnmodifiableI8ByteData._(
WasmArray<WasmI8> _data, int offsetInBytes, int lengthInBytes)
: super._(_data, offsetInBytes, lengthInBytes);
@ -898,8 +897,7 @@ class _UnmodifiableI8ByteData extends I8ByteData
}
class _UnmodifiableI16ByteData extends _I16ByteData
with _UnmodifiableByteDataMixin
implements UnmodifiableByteDataView {
with _UnmodifiableByteDataMixin {
_UnmodifiableI16ByteData._(
WasmArray<WasmI16> _data, int offsetInBytes, int lengthInBytes)
: super._(_data, offsetInBytes, lengthInBytes);
@ -909,8 +907,7 @@ class _UnmodifiableI16ByteData extends _I16ByteData
}
class _UnmodifiableI32ByteData extends _I32ByteData
with _UnmodifiableByteDataMixin
implements UnmodifiableByteDataView {
with _UnmodifiableByteDataMixin {
_UnmodifiableI32ByteData._(
WasmArray<WasmI32> _data, int offsetInBytes, int lengthInBytes)
: super._(_data, offsetInBytes, lengthInBytes);
@ -920,8 +917,7 @@ class _UnmodifiableI32ByteData extends _I32ByteData
}
class _UnmodifiableI64ByteData extends _I64ByteData
with _UnmodifiableByteDataMixin
implements UnmodifiableByteDataView {
with _UnmodifiableByteDataMixin {
_UnmodifiableI64ByteData._(
WasmArray<WasmI64> _data, int offsetInBytes, int lengthInBytes)
: super._(_data, 0, _data.length * 8);
@ -931,8 +927,7 @@ class _UnmodifiableI64ByteData extends _I64ByteData
}
class _UnmodifiableF32ByteData extends _F32ByteData
with _UnmodifiableByteDataMixin
implements UnmodifiableByteDataView {
with _UnmodifiableByteDataMixin {
_UnmodifiableF32ByteData._(
WasmArray<WasmF32> _data, int offsetInBytes, int lengthInBytes)
: super._(_data, offsetInBytes, lengthInBytes);
@ -942,8 +937,7 @@ class _UnmodifiableF32ByteData extends _F32ByteData
}
class _UnmodifiableF64ByteData extends _F64ByteData
with _UnmodifiableByteDataMixin
implements UnmodifiableByteDataView {
with _UnmodifiableByteDataMixin {
_UnmodifiableF64ByteData._(
WasmArray<WasmF64> _data, int offsetInBytes, int lengthInBytes)
: super._(_data, offsetInBytes, lengthInBytes);
@ -1327,8 +1321,7 @@ class _F64ByteBuffer extends ByteBufferBase {
}
}
class UnmodifiableByteBuffer extends WasmTypedDataBase
implements UnmodifiableByteBufferView {
class UnmodifiableByteBuffer extends WasmTypedDataBase implements ByteBuffer {
final ByteBufferBase _buffer;
UnmodifiableByteBuffer(ByteBufferBase buffer) : _buffer = buffer._immutable();
@ -2771,9 +2764,7 @@ class F64List extends _WasmF64ArrayBase
// Unmodifiable fast lists
//
class UnmodifiableI8List extends I8List
with _UnmodifiableIntListMixin
implements UnmodifiableInt8ListView {
class UnmodifiableI8List extends I8List with _UnmodifiableIntListMixin {
UnmodifiableI8List(I8List list)
: super._(list._data, list._offsetInElements, list.length);
@ -2784,9 +2775,7 @@ class UnmodifiableI8List extends I8List
_I8ByteBuffer get buffer => _I8ByteBuffer._(_data, false);
}
class UnmodifiableU8List extends U8List
with _UnmodifiableIntListMixin
implements UnmodifiableUint8ListView {
class UnmodifiableU8List extends U8List with _UnmodifiableIntListMixin {
UnmodifiableU8List(U8List list)
: super._(list._data, list._offsetInElements, list.length);
@ -2798,8 +2787,7 @@ class UnmodifiableU8List extends U8List
}
class UnmodifiableU8ClampedList extends U8ClampedList
with _UnmodifiableIntListMixin
implements UnmodifiableUint8ClampedListView {
with _UnmodifiableIntListMixin {
UnmodifiableU8ClampedList(U8ClampedList list)
: super._(list._data, list._offsetInElements, list.length);
@ -2811,9 +2799,7 @@ class UnmodifiableU8ClampedList extends U8ClampedList
_I8ByteBuffer get buffer => _I8ByteBuffer._(_data, false);
}
class UnmodifiableI16List extends I16List
with _UnmodifiableIntListMixin
implements UnmodifiableInt16ListView {
class UnmodifiableI16List extends I16List with _UnmodifiableIntListMixin {
UnmodifiableI16List(I16List list)
: super._(list._data, list._offsetInElements, list.length);
@ -2825,9 +2811,7 @@ class UnmodifiableI16List extends I16List
_I16ByteBuffer get buffer => _I16ByteBuffer._(_data, false);
}
class UnmodifiableU16List extends U16List
with _UnmodifiableIntListMixin
implements UnmodifiableUint16ListView {
class UnmodifiableU16List extends U16List with _UnmodifiableIntListMixin {
UnmodifiableU16List(U16List list)
: super._(list._data, list._offsetInElements, list.length);
@ -2839,9 +2823,7 @@ class UnmodifiableU16List extends U16List
_I16ByteBuffer get buffer => _I16ByteBuffer._(_data, false);
}
class UnmodifiableI32List extends I32List
with _UnmodifiableIntListMixin
implements UnmodifiableInt32ListView {
class UnmodifiableI32List extends I32List with _UnmodifiableIntListMixin {
UnmodifiableI32List(I32List list)
: super._(list._data, list._offsetInElements, list.length);
@ -2853,9 +2835,7 @@ class UnmodifiableI32List extends I32List
_I32ByteBuffer get buffer => _I32ByteBuffer._(_data, false);
}
class UnmodifiableU32List extends U32List
with _UnmodifiableIntListMixin
implements UnmodifiableUint32ListView {
class UnmodifiableU32List extends U32List with _UnmodifiableIntListMixin {
UnmodifiableU32List(U32List list)
: super._(list._data, list._offsetInElements, list.length);
@ -2867,9 +2847,7 @@ class UnmodifiableU32List extends U32List
_I32ByteBuffer get buffer => _I32ByteBuffer._(_data, false);
}
class UnmodifiableI64List extends I64List
with _UnmodifiableIntListMixin
implements UnmodifiableInt64ListView {
class UnmodifiableI64List extends I64List with _UnmodifiableIntListMixin {
UnmodifiableI64List(I64List list)
: super._(list._data, list._offsetInElements, list.length);
@ -2881,9 +2859,7 @@ class UnmodifiableI64List extends I64List
_I64ByteBuffer get buffer => _I64ByteBuffer._(_data, false);
}
class UnmodifiableU64List extends U64List
with _UnmodifiableIntListMixin
implements UnmodifiableUint64ListView {
class UnmodifiableU64List extends U64List with _UnmodifiableIntListMixin {
UnmodifiableU64List(U64List list)
: super._(list._data, list._offsetInElements, list.length);
@ -2895,9 +2871,7 @@ class UnmodifiableU64List extends U64List
_I64ByteBuffer get buffer => _I64ByteBuffer._(_data, false);
}
class UnmodifiableF32List extends F32List
with _UnmodifiableDoubleListMixin
implements UnmodifiableFloat32ListView {
class UnmodifiableF32List extends F32List with _UnmodifiableDoubleListMixin {
UnmodifiableF32List(F32List list)
: super._(list._data, list._offsetInElements, list.length);
@ -2909,9 +2883,7 @@ class UnmodifiableF32List extends F32List
_F32ByteBuffer get buffer => _F32ByteBuffer._(_data, false);
}
class UnmodifiableF64List extends F64List
with _UnmodifiableDoubleListMixin
implements UnmodifiableFloat64ListView {
class UnmodifiableF64List extends F64List with _UnmodifiableDoubleListMixin {
UnmodifiableF64List(F64List list)
: super._(list._data, list._offsetInElements, list.length);
@ -3373,8 +3345,7 @@ mixin _UnmodifiableSlowListMixin on _SlowListBase {
}
class UnmodifiableSlowI8List extends _SlowI8List
with _UnmodifiableIntListMixin, _UnmodifiableSlowListMixin
implements UnmodifiableInt8ListView {
with _UnmodifiableIntListMixin, _UnmodifiableSlowListMixin {
UnmodifiableSlowI8List(Int8List list)
: super._(list.buffer, list.offsetInBytes, list.length);
@ -3383,8 +3354,7 @@ class UnmodifiableSlowI8List extends _SlowI8List
}
class UnmodifiableSlowU8List extends _SlowU8List
with _UnmodifiableIntListMixin, _UnmodifiableSlowListMixin
implements UnmodifiableUint8ListView {
with _UnmodifiableIntListMixin, _UnmodifiableSlowListMixin {
UnmodifiableSlowU8List(Uint8List list)
: super._(list.buffer, list.offsetInBytes, list.length);
@ -3393,8 +3363,7 @@ class UnmodifiableSlowU8List extends _SlowU8List
}
class UnmodifiableSlowU8ClampedList extends _SlowU8ClampedList
with _UnmodifiableIntListMixin, _UnmodifiableSlowListMixin
implements UnmodifiableUint8ClampedListView {
with _UnmodifiableIntListMixin, _UnmodifiableSlowListMixin {
UnmodifiableSlowU8ClampedList(Uint8ClampedList list)
: super._(list.buffer, list.offsetInBytes, list.length);
@ -3404,8 +3373,7 @@ class UnmodifiableSlowU8ClampedList extends _SlowU8ClampedList
}
class UnmodifiableSlowI16List extends _SlowI16List
with _UnmodifiableIntListMixin, _UnmodifiableSlowListMixin
implements UnmodifiableInt16ListView {
with _UnmodifiableIntListMixin, _UnmodifiableSlowListMixin {
UnmodifiableSlowI16List(Int16List list)
: super._(list.buffer, list.offsetInBytes, list.length);
@ -3414,8 +3382,7 @@ class UnmodifiableSlowI16List extends _SlowI16List
}
class UnmodifiableSlowU16List extends _SlowU16List
with _UnmodifiableIntListMixin, _UnmodifiableSlowListMixin
implements UnmodifiableUint16ListView {
with _UnmodifiableIntListMixin, _UnmodifiableSlowListMixin {
UnmodifiableSlowU16List(Uint16List list)
: super._(list.buffer, list.offsetInBytes, list.length);
@ -3424,8 +3391,7 @@ class UnmodifiableSlowU16List extends _SlowU16List
}
class UnmodifiableSlowI32List extends _SlowI32List
with _UnmodifiableIntListMixin, _UnmodifiableSlowListMixin
implements UnmodifiableInt32ListView {
with _UnmodifiableIntListMixin, _UnmodifiableSlowListMixin {
UnmodifiableSlowI32List(Int32List list)
: super._(list.buffer, list.offsetInBytes, list.length);
@ -3434,8 +3400,7 @@ class UnmodifiableSlowI32List extends _SlowI32List
}
class UnmodifiableSlowU32List extends _SlowU32List
with _UnmodifiableIntListMixin, _UnmodifiableSlowListMixin
implements UnmodifiableUint32ListView {
with _UnmodifiableIntListMixin, _UnmodifiableSlowListMixin {
UnmodifiableSlowU32List(Uint32List list)
: super._(list.buffer, list.offsetInBytes, list.length);
@ -3444,8 +3409,7 @@ class UnmodifiableSlowU32List extends _SlowU32List
}
class UnmodifiableSlowI64List extends _SlowI64List
with _UnmodifiableIntListMixin, _UnmodifiableSlowListMixin
implements UnmodifiableInt64ListView {
with _UnmodifiableIntListMixin, _UnmodifiableSlowListMixin {
UnmodifiableSlowI64List(Int64List list)
: super._(list.buffer, list.offsetInBytes, list.length);
@ -3454,8 +3418,7 @@ class UnmodifiableSlowI64List extends _SlowI64List
}
class UnmodifiableSlowU64List extends _SlowU64List
with _UnmodifiableIntListMixin, _UnmodifiableSlowListMixin
implements UnmodifiableUint64ListView {
with _UnmodifiableIntListMixin, _UnmodifiableSlowListMixin {
UnmodifiableSlowU64List(Uint64List list)
: super._(list.buffer, list.offsetInBytes, list.length);
@ -3464,8 +3427,7 @@ class UnmodifiableSlowU64List extends _SlowU64List
}
class UnmodifiableSlowF32List extends _SlowF32List
with _UnmodifiableDoubleListMixin, _UnmodifiableSlowListMixin
implements UnmodifiableFloat32ListView {
with _UnmodifiableDoubleListMixin, _UnmodifiableSlowListMixin {
UnmodifiableSlowF32List(Float32List list)
: super._(list.buffer, list.offsetInBytes, list.length);
@ -3474,8 +3436,7 @@ class UnmodifiableSlowF32List extends _SlowF32List
}
class UnmodifiableSlowF64List extends SlowF64List
with _UnmodifiableDoubleListMixin, _UnmodifiableSlowListMixin
implements UnmodifiableFloat64ListView {
with _UnmodifiableDoubleListMixin, _UnmodifiableSlowListMixin {
UnmodifiableSlowF64List(Float64List list)
: super._(list.buffer, list.offsetInBytes, list.length);

View File

@ -123,158 +123,6 @@ class Float64List {
F64List(elements.length)..setRange(0, elements.length, elements);
}
@patch
class UnmodifiableUint8ListView {
@patch
factory UnmodifiableUint8ListView(Uint8List list) {
if (list is U8List) {
return UnmodifiableU8List(list);
} else {
return UnmodifiableSlowU8List(list);
}
}
}
@patch
class UnmodifiableInt8ListView {
@patch
factory UnmodifiableInt8ListView(Int8List list) {
if (list is I8List) {
return UnmodifiableI8List(list);
} else {
return UnmodifiableSlowI8List(list);
}
}
}
@patch
class UnmodifiableUint8ClampedListView {
@patch
factory UnmodifiableUint8ClampedListView(Uint8ClampedList list) {
if (list is U8ClampedList) {
return UnmodifiableU8ClampedList(list);
} else {
return UnmodifiableSlowU8ClampedList(list);
}
}
}
@patch
class UnmodifiableUint16ListView {
@patch
factory UnmodifiableUint16ListView(Uint16List list) {
if (list is U16List) {
return UnmodifiableU16List(list);
} else {
return UnmodifiableSlowU16List(list);
}
}
}
@patch
class UnmodifiableInt16ListView {
@patch
factory UnmodifiableInt16ListView(Int16List list) {
if (list is I16List) {
return UnmodifiableI16List(list);
} else {
return UnmodifiableSlowI16List(list);
}
}
}
@patch
class UnmodifiableUint32ListView {
@patch
factory UnmodifiableUint32ListView(Uint32List list) {
if (list is U32List) {
return UnmodifiableU32List(list);
} else {
return UnmodifiableSlowU32List(list);
}
}
}
@patch
class UnmodifiableInt32ListView {
@patch
factory UnmodifiableInt32ListView(Int32List list) {
if (list is I32List) {
return UnmodifiableI32List(list);
} else {
return UnmodifiableSlowI32List(list);
}
}
}
@patch
class UnmodifiableUint64ListView {
@patch
factory UnmodifiableUint64ListView(Uint64List list) {
if (list is U64List) {
return UnmodifiableU64List(list);
} else {
return UnmodifiableSlowU64List(list);
}
}
}
@patch
class UnmodifiableInt64ListView {
@patch
factory UnmodifiableInt64ListView(Int64List list) {
if (list is I64List) {
return UnmodifiableI64List(list);
} else {
return UnmodifiableSlowI64List(list);
}
}
}
@patch
class UnmodifiableFloat32ListView {
@patch
factory UnmodifiableFloat32ListView(Float32List list) {
if (list is F32List) {
return UnmodifiableF32List(list);
} else {
return UnmodifiableSlowF32List(list);
}
}
}
@patch
class UnmodifiableFloat64ListView {
@patch
factory UnmodifiableFloat64ListView(Float64List list) {
if (list is F64List) {
return UnmodifiableF64List(list);
} else {
return UnmodifiableSlowF64List(list);
}
}
}
@patch
class UnmodifiableByteBufferView implements ByteBuffer {
@patch
factory UnmodifiableByteBufferView(ByteBuffer data) =>
// TODO(omersa): This will break when `data` is `JSArrayBufferImpl`.
// Implement an interface for byte buffer that can be made unmodifiable
// and implement it in all byte buffers, use that type here.
UnmodifiableByteBuffer(unsafeCast<ByteBufferBase>(data));
}
@patch
class UnmodifiableByteDataView implements ByteData {
@patch
factory UnmodifiableByteDataView(ByteData data) =>
// TODO(omersa): Same as above, this will break when `data` is
// `JSDataViewImpl`. Add an interface for `ByteData` that can be made
// immutable, implement it in all `ByteData` subtypes.
unsafeCast<ByteDataBase>(data).asUnmodifiableView();
}
@patch
class Int32x4List {
@patch
@ -304,24 +152,3 @@ class Float64x2List {
factory Float64x2List.fromList(List<Float64x2> elements) =
NaiveFloat64x2List.fromList;
}
@patch
abstract class UnmodifiableInt32x4ListView implements Int32x4List {
@patch
factory UnmodifiableInt32x4ListView(Int32x4List list) =>
NaiveUnmodifiableInt32x4List(list);
}
@patch
abstract class UnmodifiableFloat32x4ListView implements Float32x4List {
@patch
factory UnmodifiableFloat32x4ListView(Float32x4List list) =>
NaiveUnmodifiableFloat32x4List(list);
}
@patch
abstract class UnmodifiableFloat64x2ListView implements Float64x2List {
@patch
factory UnmodifiableFloat64x2ListView(Float64x2List list) =>
NaiveUnmodifiableFloat64x2List(list);
}

View File

@ -10,11 +10,7 @@ import 'dart:_wasm';
import 'dart:typed_data';
/// A read-only view of a [ByteBuffer].
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableByteBufferView.
final class _UnmodifiableByteBufferViewImpl
implements ByteBuffer, UnmodifiableByteBufferView {
final class _UnmodifiableByteBufferViewImpl implements ByteBuffer {
final ByteBuffer _data;
_UnmodifiableByteBufferViewImpl(ByteBuffer data) : _data = data;
@ -22,60 +18,53 @@ final class _UnmodifiableByteBufferViewImpl
int get lengthInBytes => _data.lengthInBytes;
Uint8List asUint8List([int offsetInBytes = 0, int? length]) =>
UnmodifiableUint8ListView(_data.asUint8List(offsetInBytes, length));
_data.asUint8List(offsetInBytes, length).asUnmodifiableView();
Int8List asInt8List([int offsetInBytes = 0, int? length]) =>
UnmodifiableInt8ListView(_data.asInt8List(offsetInBytes, length));
_data.asInt8List(offsetInBytes, length).asUnmodifiableView();
Uint8ClampedList asUint8ClampedList([int offsetInBytes = 0, int? length]) =>
UnmodifiableUint8ClampedListView(
_data.asUint8ClampedList(offsetInBytes, length));
_data.asUint8ClampedList(offsetInBytes, length).asUnmodifiableView();
Uint16List asUint16List([int offsetInBytes = 0, int? length]) =>
UnmodifiableUint16ListView(_data.asUint16List(offsetInBytes, length));
_data.asUint16List(offsetInBytes, length).asUnmodifiableView();
Int16List asInt16List([int offsetInBytes = 0, int? length]) =>
UnmodifiableInt16ListView(_data.asInt16List(offsetInBytes, length));
_data.asInt16List(offsetInBytes, length).asUnmodifiableView();
Uint32List asUint32List([int offsetInBytes = 0, int? length]) =>
UnmodifiableUint32ListView(_data.asUint32List(offsetInBytes, length));
_data.asUint32List(offsetInBytes, length).asUnmodifiableView();
Int32List asInt32List([int offsetInBytes = 0, int? length]) =>
UnmodifiableInt32ListView(_data.asInt32List(offsetInBytes, length));
_data.asInt32List(offsetInBytes, length).asUnmodifiableView();
Uint64List asUint64List([int offsetInBytes = 0, int? length]) =>
UnmodifiableUint64ListView(_data.asUint64List(offsetInBytes, length));
_data.asUint64List(offsetInBytes, length).asUnmodifiableView();
Int64List asInt64List([int offsetInBytes = 0, int? length]) =>
UnmodifiableInt64ListView(_data.asInt64List(offsetInBytes, length));
_data.asInt64List(offsetInBytes, length).asUnmodifiableView();
Int32x4List asInt32x4List([int offsetInBytes = 0, int? length]) =>
UnmodifiableInt32x4ListView(_data.asInt32x4List(offsetInBytes, length));
_data.asInt32x4List(offsetInBytes, length).asUnmodifiableView();
Float32List asFloat32List([int offsetInBytes = 0, int? length]) =>
UnmodifiableFloat32ListView(_data.asFloat32List(offsetInBytes, length));
_data.asFloat32List(offsetInBytes, length).asUnmodifiableView();
Float64List asFloat64List([int offsetInBytes = 0, int? length]) =>
UnmodifiableFloat64ListView(_data.asFloat64List(offsetInBytes, length));
_data.asFloat64List(offsetInBytes, length).asUnmodifiableView();
Float32x4List asFloat32x4List([int offsetInBytes = 0, int? length]) =>
UnmodifiableFloat32x4ListView(
_data.asFloat32x4List(offsetInBytes, length));
_data.asFloat32x4List(offsetInBytes, length).asUnmodifiableView();
Float64x2List asFloat64x2List([int offsetInBytes = 0, int? length]) =>
UnmodifiableFloat64x2ListView(
_data.asFloat64x2List(offsetInBytes, length));
_data.asFloat64x2List(offsetInBytes, length).asUnmodifiableView();
ByteData asByteData([int offsetInBytes = 0, int? length]) =>
UnmodifiableByteDataView(_data.asByteData(offsetInBytes, length));
_data.asByteData(offsetInBytes, length).asUnmodifiableView();
}
/// A read-only view of a [ByteData].
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableByteDataView.
final class _UnmodifiableByteDataViewImpl
implements ByteData, UnmodifiableByteDataView {
final class _UnmodifiableByteDataViewImpl implements ByteData {
final ByteData _data;
_UnmodifiableByteDataViewImpl(ByteData data) : _data = data;
@ -145,7 +134,7 @@ final class _UnmodifiableByteDataViewImpl
int get lengthInBytes => _data.lengthInBytes;
ByteBuffer get buffer => UnmodifiableByteBufferView(_data.buffer);
ByteBuffer get buffer => _UnmodifiableByteBufferViewImpl(_data.buffer);
void _unsupported() =>
throw UnsupportedError("An UnmodifiableByteDataView may not be modified");
@ -165,7 +154,7 @@ mixin _UnmodifiableListMixin<N, L extends List<N>, TD extends TypedData> {
int get lengthInBytes => _data.lengthInBytes;
ByteBuffer get buffer => UnmodifiableByteBufferView(_data.buffer);
ByteBuffer get buffer => _UnmodifiableByteBufferViewImpl(_data.buffer);
L createList(int length);
@ -179,12 +168,9 @@ mixin _UnmodifiableListMixin<N, L extends List<N>, TD extends TypedData> {
}
/// View of a [Uint8List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableUint8ListView.
final class _UnmodifiableUint8ListViewImpl extends UnmodifiableListBase<int>
with _UnmodifiableListMixin<int, Uint8List, Uint8List>
implements UnmodifiableUint8ListView {
implements Uint8List {
final Uint8List _list;
_UnmodifiableUint8ListViewImpl(Uint8List list) : _list = list;
@ -196,12 +182,9 @@ final class _UnmodifiableUint8ListViewImpl extends UnmodifiableListBase<int>
}
/// View of a [Int8List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableInt8ListView.
final class _UnmodifiableInt8ListViewImpl extends UnmodifiableListBase<int>
with _UnmodifiableListMixin<int, Int8List, Int8List>
implements UnmodifiableInt8ListView {
implements Int8List {
final Int8List _list;
_UnmodifiableInt8ListViewImpl(Int8List list) : _list = list;
@ -213,13 +196,10 @@ final class _UnmodifiableInt8ListViewImpl extends UnmodifiableListBase<int>
}
/// View of a [Uint8ClampedList] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableUint8ClampedListView.
final class _UnmodifiableUint8ClampedListViewImpl
extends UnmodifiableListBase<int>
with _UnmodifiableListMixin<int, Uint8ClampedList, Uint8ClampedList>
implements UnmodifiableUint8ClampedListView {
implements Uint8ClampedList {
final Uint8ClampedList _list;
_UnmodifiableUint8ClampedListViewImpl(Uint8ClampedList list) : _list = list;
@ -231,12 +211,9 @@ final class _UnmodifiableUint8ClampedListViewImpl
}
/// View of a [Uint16List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableUint16ListView.
final class _UnmodifiableUint16ListViewImpl extends UnmodifiableListBase<int>
with _UnmodifiableListMixin<int, Uint16List, Uint16List>
implements UnmodifiableUint16ListView {
implements Uint16List {
final Uint16List _list;
_UnmodifiableUint16ListViewImpl(Uint16List list) : _list = list;
@ -248,12 +225,9 @@ final class _UnmodifiableUint16ListViewImpl extends UnmodifiableListBase<int>
}
/// View of a [Int16List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableInt16ListView.
final class _UnmodifiableInt16ListViewImpl extends UnmodifiableListBase<int>
with _UnmodifiableListMixin<int, Int16List, Int16List>
implements UnmodifiableInt16ListView {
implements Int16List {
final Int16List _list;
_UnmodifiableInt16ListViewImpl(Int16List list) : _list = list;
@ -265,12 +239,9 @@ final class _UnmodifiableInt16ListViewImpl extends UnmodifiableListBase<int>
}
/// View of a [Uint32List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableUint32ListView.
final class _UnmodifiableUint32ListViewImpl extends UnmodifiableListBase<int>
with _UnmodifiableListMixin<int, Uint32List, Uint32List>
implements UnmodifiableUint32ListView {
implements Uint32List {
final Uint32List _list;
_UnmodifiableUint32ListViewImpl(Uint32List list) : _list = list;
@ -282,12 +253,9 @@ final class _UnmodifiableUint32ListViewImpl extends UnmodifiableListBase<int>
}
/// View of a [Int32List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableInt32ListView.
final class _UnmodifiableInt32ListViewImpl extends UnmodifiableListBase<int>
with _UnmodifiableListMixin<int, Int32List, Int32List>
implements UnmodifiableInt32ListView {
implements Int32List {
final Int32List _list;
_UnmodifiableInt32ListViewImpl(Int32List list) : _list = list;
@ -299,12 +267,9 @@ final class _UnmodifiableInt32ListViewImpl extends UnmodifiableListBase<int>
}
/// View of a [Uint64List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableUint64ListView.
final class _UnmodifiableUint64ListViewImpl extends UnmodifiableListBase<int>
with _UnmodifiableListMixin<int, Uint64List, Uint64List>
implements UnmodifiableUint64ListView {
implements Uint64List {
final Uint64List _list;
_UnmodifiableUint64ListViewImpl(Uint64List list) : _list = list;
@ -316,12 +281,9 @@ final class _UnmodifiableUint64ListViewImpl extends UnmodifiableListBase<int>
}
/// View of a [Int64List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableInt64ListView.
final class _UnmodifiableInt64ListViewImpl extends UnmodifiableListBase<int>
with _UnmodifiableListMixin<int, Int64List, Int64List>
implements UnmodifiableInt64ListView {
implements Int64List {
final Int64List _list;
_UnmodifiableInt64ListViewImpl(Int64List list) : _list = list;
@ -333,13 +295,10 @@ final class _UnmodifiableInt64ListViewImpl extends UnmodifiableListBase<int>
}
/// View of a [Int32x4List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableInt32x4ListView.
final class _UnmodifiableInt32x4ListViewImpl
extends UnmodifiableListBase<Int32x4>
with _UnmodifiableListMixin<Int32x4, Int32x4List, Int32x4List>
implements UnmodifiableInt32x4ListView {
implements Int32x4List {
final Int32x4List _list;
_UnmodifiableInt32x4ListViewImpl(Int32x4List list) : _list = list;
@ -351,13 +310,10 @@ final class _UnmodifiableInt32x4ListViewImpl
}
/// View of a [Float32x4List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableFloat32x4ListView.
final class _UnmodifiableFloat32x4ListViewImpl
extends UnmodifiableListBase<Float32x4>
with _UnmodifiableListMixin<Float32x4, Float32x4List, Float32x4List>
implements UnmodifiableFloat32x4ListView {
implements Float32x4List {
final Float32x4List _list;
_UnmodifiableFloat32x4ListViewImpl(Float32x4List list) : _list = list;
@ -369,13 +325,10 @@ final class _UnmodifiableFloat32x4ListViewImpl
}
/// View of a [Float64x2List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableFloat64x2ListView.
final class _UnmodifiableFloat64x2ListViewImpl
extends UnmodifiableListBase<Float64x2>
with _UnmodifiableListMixin<Float64x2, Float64x2List, Float64x2List>
implements UnmodifiableFloat64x2ListView {
implements Float64x2List {
final Float64x2List _list;
_UnmodifiableFloat64x2ListViewImpl(Float64x2List list) : _list = list;
@ -387,13 +340,10 @@ final class _UnmodifiableFloat64x2ListViewImpl
}
/// View of a [Float32List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableFloat32ListView.
final class _UnmodifiableFloat32ListViewImpl
extends UnmodifiableListBase<double>
with _UnmodifiableListMixin<double, Float32List, Float32List>
implements UnmodifiableFloat32ListView {
implements Float32List {
final Float32List _list;
_UnmodifiableFloat32ListViewImpl(Float32List list) : _list = list;
@ -405,13 +355,10 @@ final class _UnmodifiableFloat32ListViewImpl
}
/// View of a [Float64List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableFloat64ListView.
final class _UnmodifiableFloat64ListViewImpl
extends UnmodifiableListBase<double>
with _UnmodifiableListMixin<double, Float64List, Float64List>
implements UnmodifiableFloat64ListView {
implements Float64List {
final Float64List _list;
_UnmodifiableFloat64ListViewImpl(Float64List list) : _list = list;

View File

@ -161,115 +161,3 @@ class Float64x2List {
factory Float64x2List.fromList(List<Float64x2> elements) =>
Float64x2List(elements.length)..setRange(0, elements.length, elements);
}
@patch
abstract class UnmodifiableByteBufferView implements Uint8List {
@patch
factory UnmodifiableByteBufferView(ByteBuffer data) =
_UnmodifiableByteBufferViewImpl;
}
@patch
abstract class UnmodifiableByteDataView implements Uint8List {
@patch
factory UnmodifiableByteDataView(ByteData data) =
_UnmodifiableByteDataViewImpl;
}
@patch
abstract class UnmodifiableUint8ListView implements Uint8List {
@patch
factory UnmodifiableUint8ListView(Uint8List list) =>
unsafeCast<JSUint8ArrayImpl>(list).asUnmodifiableView();
}
@patch
abstract class UnmodifiableInt8ListView implements Int8List {
@patch
factory UnmodifiableInt8ListView(Int8List list) =>
unsafeCast<JSInt8ArrayImpl>(list).asUnmodifiableView();
}
@patch
abstract class UnmodifiableUint8ClampedListView implements Uint8ClampedList {
@patch
factory UnmodifiableUint8ClampedListView(Uint8ClampedList list) =>
unsafeCast<JSUint8ClampedArrayImpl>(list).asUnmodifiableView();
}
@patch
abstract class UnmodifiableUint16ListView implements Uint16List {
@patch
factory UnmodifiableUint16ListView(Uint16List list) =>
unsafeCast<JSUint16ArrayImpl>(list).asUnmodifiableView();
}
@patch
abstract class UnmodifiableInt16ListView implements Int16List {
@patch
factory UnmodifiableInt16ListView(Int16List list) =>
unsafeCast<JSInt16ArrayImpl>(list).asUnmodifiableView();
}
@patch
abstract class UnmodifiableUint32ListView implements Uint32List {
@patch
factory UnmodifiableUint32ListView(Uint32List list) =>
unsafeCast<JSUint32ArrayImpl>(list).asUnmodifiableView();
}
@patch
abstract class UnmodifiableInt32ListView implements Int32List {
@patch
factory UnmodifiableInt32ListView(Int32List list) =>
unsafeCast<JSInt32ArrayImpl>(list).asUnmodifiableView();
}
@patch
abstract class UnmodifiableUint64ListView implements Uint64List {
@patch
factory UnmodifiableUint64ListView(Uint64List list) =>
unsafeCast<JSBigUint64ArrayImpl>(list).asUnmodifiableView();
}
@patch
abstract class UnmodifiableInt64ListView implements Int64List {
@patch
factory UnmodifiableInt64ListView(Int64List list) =>
unsafeCast<JSBigInt64ArrayImpl>(list).asUnmodifiableView();
}
@patch
abstract class UnmodifiableInt32x4ListView implements Int32x4List {
@patch
factory UnmodifiableInt32x4ListView(Int32x4List list) =
_UnmodifiableInt32x4ListViewImpl;
}
@patch
abstract class UnmodifiableFloat32x4ListView implements Float32x4List {
@patch
factory UnmodifiableFloat32x4ListView(Float32x4List list) =
_UnmodifiableFloat32x4ListViewImpl;
}
@patch
abstract class UnmodifiableFloat64x2ListView implements Float64x2List {
@patch
factory UnmodifiableFloat64x2ListView(Float64x2List list) =
_UnmodifiableFloat64x2ListViewImpl;
}
@patch
abstract class UnmodifiableFloat32ListView implements Float32List {
@patch
factory UnmodifiableFloat32ListView(Float32List list) =
_UnmodifiableFloat32ListViewImpl;
}
@patch
abstract class UnmodifiableFloat64ListView implements Float64List {
@patch
factory UnmodifiableFloat64ListView(Float64List list) =
_UnmodifiableFloat64ListViewImpl;
}

View File

@ -18,8 +18,6 @@ import "dart:_internal" show Since, UnmodifiableListBase;
@Since("2.10")
export "dart:_internal" show BytesBuilder;
part "unmodifiable_typed_data.dart";
/// A sequence of bytes underlying a typed data object.
///
/// Used to process large quantities of binary or numerical data

View File

@ -4,7 +4,5 @@
typed_data_sdk_sources = [
"typed_data.dart",
# The above file needs to be first if additional parts are added to the lib.
"unmodifiable_typed_data.dart",
]

View File

@ -1,150 +0,0 @@
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
part of dart.typed_data;
/// A read-only view of a [ByteBuffer].
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableByteBufferView.
@Deprecated('No replacement')
abstract final class UnmodifiableByteBufferView implements ByteBuffer {
external factory UnmodifiableByteBufferView(ByteBuffer data);
}
/// A read-only view of a [ByteData].
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableByteDataView.
@Deprecated('Use ByteData.asUnmodifiableView() instead')
abstract final class UnmodifiableByteDataView implements ByteData {
external factory UnmodifiableByteDataView(ByteData data);
}
/// View of a [Uint8List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableUint8ListView.
@Deprecated('Use Uint8List.asUnmodifiableView() instead')
abstract final class UnmodifiableUint8ListView implements Uint8List {
external factory UnmodifiableUint8ListView(Uint8List list);
}
/// View of a [Int8List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableInt8ListView.
@Deprecated('Use Int8List.asUnmodifiableView() instead')
abstract final class UnmodifiableInt8ListView implements Int8List {
external factory UnmodifiableInt8ListView(Int8List list);
}
/// View of a [Uint8ClampedList] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableUint8ClampedListView.
@Deprecated('Use Uint8ClampedList.asUnmodifiableView() instead')
abstract final class UnmodifiableUint8ClampedListView
implements Uint8ClampedList {
external factory UnmodifiableUint8ClampedListView(Uint8ClampedList list);
}
/// View of a [Uint16List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableUint16ListView.
@Deprecated('Use Uint16List.asUnmodifiableView() instead')
abstract final class UnmodifiableUint16ListView implements Uint16List {
external factory UnmodifiableUint16ListView(Uint16List list);
}
/// View of a [Int16List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableInt16ListView.
@Deprecated('Use Int16List.asUnmodifiableView() instead')
abstract final class UnmodifiableInt16ListView implements Int16List {
external factory UnmodifiableInt16ListView(Int16List list);
}
/// View of a [Uint32List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableUint32ListView.
@Deprecated('Use Uint32List.asUnmodifiableView() instead')
abstract final class UnmodifiableUint32ListView implements Uint32List {
external factory UnmodifiableUint32ListView(Uint32List list);
}
/// View of a [Int32List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableInt32ListView.
@Deprecated('Use Int32List.asUnmodifiableView() instead')
abstract final class UnmodifiableInt32ListView implements Int32List {
external factory UnmodifiableInt32ListView(Int32List list);
}
/// View of a [Uint64List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableUint64ListView.
@Deprecated('Use Uint64List.asUnmodifiableView() instead')
abstract final class UnmodifiableUint64ListView implements Uint64List {
external factory UnmodifiableUint64ListView(Uint64List list);
}
/// View of a [Int64List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableInt64ListView.
@Deprecated('Use Int64List.asUnmodifiableView() instead')
abstract final class UnmodifiableInt64ListView implements Int64List {
external factory UnmodifiableInt64ListView(Int64List list);
}
/// View of a [Int32x4List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableInt32x4ListView.
@Deprecated('Use Int32x4List.asUnmodifiableView() instead')
abstract final class UnmodifiableInt32x4ListView implements Int32x4List {
external factory UnmodifiableInt32x4ListView(Int32x4List list);
}
/// View of a [Float32x4List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableFloat32x4ListView.
@Deprecated('Use Float32x4List.asUnmodifiableView() instead')
abstract final class UnmodifiableFloat32x4ListView implements Float32x4List {
external factory UnmodifiableFloat32x4ListView(Float32x4List list);
}
/// View of a [Float64x2List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableFloat64x2ListView.
@Deprecated('Use Float64x2List.asUnmodifiableView() instead')
abstract final class UnmodifiableFloat64x2ListView implements Float64x2List {
external factory UnmodifiableFloat64x2ListView(Float64x2List list);
}
/// View of a [Float32List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableFloat32ListView.
@Deprecated('Use Float32List.asUnmodifiableView() instead')
abstract final class UnmodifiableFloat32ListView implements Float32List {
external factory UnmodifiableFloat32ListView(Float32List list);
}
/// View of a [Float64List] that disallows modification.
///
/// It is a compile-time error for a class to attempt to extend or implement
/// UnmodifiableFloat64ListView.
@Deprecated('Use Float64List.asUnmodifiableView() instead')
abstract final class UnmodifiableFloat64ListView implements Float64List {
external factory UnmodifiableFloat64ListView(Float64List list);
}

View File

@ -43,7 +43,7 @@ testUint8() {
writeUint8(view);
}
var unmodifiable = new UnmodifiableUint8ListView(new Uint8List(kListSize));
var unmodifiable = new Uint8List(kListSize).asUnmodifiableView();
for (var i = 0; i < kLoopSize; i++) {
readUint8(unmodifiable);
}
@ -83,7 +83,7 @@ testInt8() {
writeInt8(view);
}
var unmodifiable = new UnmodifiableInt8ListView(new Int8List(kListSize));
var unmodifiable = new Int8List(kListSize).asUnmodifiableView();
for (var i = 0; i < kLoopSize; i++) {
readInt8(unmodifiable);
}
@ -124,7 +124,7 @@ testUint16() {
writeUint16(view);
}
var unmodifiable = new UnmodifiableUint16ListView(new Uint16List(kListSize));
var unmodifiable = new Uint16List(kListSize).asUnmodifiableView();
for (var i = 0; i < kLoopSize; i++) {
readUint16(unmodifiable);
}
@ -164,7 +164,7 @@ testInt16() {
writeInt16(view);
}
var unmodifiable = new UnmodifiableInt16ListView(new Int16List(kListSize));
var unmodifiable = new Int16List(kListSize).asUnmodifiableView();
for (var i = 0; i < kLoopSize; i++) {
readInt16(unmodifiable);
}
@ -205,7 +205,7 @@ testUint32() {
writeUint32(view);
}
var unmodifiable = new UnmodifiableUint32ListView(new Uint32List(kListSize));
var unmodifiable = new Uint32List(kListSize).asUnmodifiableView();
for (var i = 0; i < kLoopSize; i++) {
readUint32(unmodifiable);
}
@ -245,7 +245,7 @@ testInt32() {
writeInt32(view);
}
var unmodifiable = new UnmodifiableInt32ListView(new Int32List(kListSize));
var unmodifiable = new Int32List(kListSize).asUnmodifiableView();
for (var i = 0; i < kLoopSize; i++) {
readInt32(unmodifiable);
}
@ -286,7 +286,7 @@ testUint64() {
writeUint64(view);
}
var unmodifiable = new UnmodifiableUint64ListView(new Uint64List(kListSize));
var unmodifiable = new Uint64List(kListSize).asUnmodifiableView();
for (var i = 0; i < kLoopSize; i++) {
readUint64(unmodifiable);
}
@ -326,7 +326,7 @@ testInt64() {
writeInt64(view);
}
var unmodifiable = new UnmodifiableInt64ListView(new Int64List(kListSize));
var unmodifiable = new Int64List(kListSize).asUnmodifiableView();
for (var i = 0; i < kLoopSize; i++) {
readInt64(unmodifiable);
}
@ -367,8 +367,7 @@ testFloat32() {
writeFloat32(view);
}
var unmodifiable =
new UnmodifiableFloat32ListView(new Float32List(kListSize));
var unmodifiable = new Float32List(kListSize).asUnmodifiableView();
for (var i = 0; i < kLoopSize; i++) {
readFloat32(unmodifiable);
}
@ -409,8 +408,7 @@ testFloat64() {
writeFloat64(view);
}
var unmodifiable =
new UnmodifiableFloat64ListView(new Float64List(kListSize));
var unmodifiable = new Float64List(kListSize).asUnmodifiableView();
for (var i = 0; i < kLoopSize; i++) {
readFloat64(unmodifiable);
}
@ -454,8 +452,7 @@ testInt32x4() {
writeInt32x4(view);
}
var unmodifiable =
new UnmodifiableInt32x4ListView(new Int32x4List(kListSize));
var unmodifiable = new Int32x4List(kListSize).asUnmodifiableView();
for (var i = 0; i < kLoopSize; i++) {
readInt32x4(unmodifiable);
}
@ -499,8 +496,7 @@ testFloat32x4() {
writeFloat32x4(view);
}
var unmodifiable =
new UnmodifiableFloat32x4ListView(new Float32x4List(kListSize));
var unmodifiable = new Float32x4List(kListSize).asUnmodifiableView();
for (var i = 0; i < kLoopSize; i++) {
readFloat32x4(unmodifiable);
}
@ -542,8 +538,7 @@ testFloat64x2() {
writeFloat64x2(view);
}
var unmodifiable =
new UnmodifiableFloat64x2ListView(new Float64x2List(kListSize));
var unmodifiable = new Float64x2List(kListSize).asUnmodifiableView();
for (var i = 0; i < kLoopSize; i++) {
readFloat64x2(unmodifiable);
}
@ -583,7 +578,7 @@ testByteData() {
writeByteData(view);
}
var unmodifiable = new UnmodifiableByteDataView(new ByteData(kListSize));
var unmodifiable = new ByteData(kListSize).asUnmodifiableView();
for (var i = 0; i < kLoopSize; i++) {
readByteData(unmodifiable);
}

View File

@ -274,99 +274,3 @@ abstract class CIEndian implements Endian {}
// [cfe] 'Endian' is restricted and can't be extended or implemented.
// ^^^^^^
// [analyzer] COMPILE_TIME_ERROR.SUBTYPE_OF_DISALLOWED_TYPE
abstract class CIUnByteBufferView implements UnmodifiableByteBufferView {}
// ^
// [cfe] 'UnmodifiableByteBufferView' is restricted and can't be extended or implemented.
// ^^^^^^^^^^^^^^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.SUBTYPE_OF_DISALLOWED_TYPE
abstract class CIUnByteDataView implements UnmodifiableByteDataView {}
// ^
// [cfe] 'UnmodifiableByteDataView' is restricted and can't be extended or implemented.
// ^^^^^^^^^^^^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.SUBTYPE_OF_DISALLOWED_TYPE
abstract class CIUnInt8LV implements UnmodifiableInt8ListView {}
// ^
// [cfe] 'UnmodifiableInt8ListView' is restricted and can't be extended or implemented.
// ^^^^^^^^^^^^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.SUBTYPE_OF_DISALLOWED_TYPE
abstract class CIUnUint8LV implements UnmodifiableUint8ListView {}
// ^
// [cfe] 'UnmodifiableUint8ListView' is restricted and can't be extended or implemented.
// ^^^^^^^^^^^^^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.SUBTYPE_OF_DISALLOWED_TYPE
abstract class CIUnUint8ClampedLV implements UnmodifiableUint8ClampedListView {}
// ^
// [cfe] 'UnmodifiableUint8ClampedListView' is restricted and can't be extended or implemented.
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.SUBTYPE_OF_DISALLOWED_TYPE
abstract class CIUnInt16LV implements UnmodifiableInt16ListView {}
// ^
// [cfe] 'UnmodifiableInt16ListView' is restricted and can't be extended or implemented.
// ^^^^^^^^^^^^^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.SUBTYPE_OF_DISALLOWED_TYPE
abstract class CIUnUint16LV implements UnmodifiableUint16ListView {}
// ^
// [cfe] 'UnmodifiableUint16ListView' is restricted and can't be extended or implemented.
// ^^^^^^^^^^^^^^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.SUBTYPE_OF_DISALLOWED_TYPE
abstract class CIUnInt32LV implements UnmodifiableInt32ListView {}
// ^
// [cfe] 'UnmodifiableInt32ListView' is restricted and can't be extended or implemented.
// ^^^^^^^^^^^^^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.SUBTYPE_OF_DISALLOWED_TYPE
abstract class CIUnUint32LV implements UnmodifiableUint32ListView {}
// ^
// [cfe] 'UnmodifiableUint32ListView' is restricted and can't be extended or implemented.
// ^^^^^^^^^^^^^^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.SUBTYPE_OF_DISALLOWED_TYPE
abstract class CIUnInt64LV implements UnmodifiableInt64ListView {}
// ^
// [cfe] 'UnmodifiableInt64ListView' is restricted and can't be extended or implemented.
// ^^^^^^^^^^^^^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.SUBTYPE_OF_DISALLOWED_TYPE
abstract class CIUnUint64LV implements UnmodifiableUint64ListView {}
// ^
// [cfe] 'UnmodifiableUint64ListView' is restricted and can't be extended or implemented.
// ^^^^^^^^^^^^^^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.SUBTYPE_OF_DISALLOWED_TYPE
abstract class CIUnFloat32LV implements UnmodifiableFloat32ListView {}
// ^
// [cfe] 'UnmodifiableFloat32ListView' is restricted and can't be extended or implemented.
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.SUBTYPE_OF_DISALLOWED_TYPE
abstract class CIUnFloat64LV implements UnmodifiableFloat64ListView {}
// ^
// [cfe] 'UnmodifiableFloat64ListView' is restricted and can't be extended or implemented.
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.SUBTYPE_OF_DISALLOWED_TYPE
abstract class CIUnInt32x4LV implements UnmodifiableInt32x4ListView {}
// ^
// [cfe] 'UnmodifiableInt32x4ListView' is restricted and can't be extended or implemented.
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.SUBTYPE_OF_DISALLOWED_TYPE
abstract class CIUnFloat32x4LV implements UnmodifiableFloat32x4ListView {}
// ^
// [cfe] 'UnmodifiableFloat32x4ListView' is restricted and can't be extended or implemented.
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.SUBTYPE_OF_DISALLOWED_TYPE
abstract class CIUnFloat64x2LV implements UnmodifiableFloat64x2ListView {}
// ^
// [cfe] 'UnmodifiableFloat64x2ListView' is restricted and can't be extended or implemented.
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.SUBTYPE_OF_DISALLOWED_TYPE

View File

@ -7,8 +7,7 @@
import 'dart:typed_data';
import 'package:expect/expect.dart';
const bool supportsInt64 = bool.fromEnvironment('dart.isVM');
import 'package:expect/variations.dart';
List<int> intList = <int>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
@ -48,129 +47,74 @@ checkIndirectUnmodifiable(TypedData data) {
int8ListTest() {
Int8List i8l = new Int8List.fromList(intList);
// Deprecated:
UnmodifiableInt8ListView list = new UnmodifiableInt8ListView(i8l);
Int8List list = i8l.asUnmodifiableView();
checkReadable(list);
checkUnmodifiable(list);
checkIndirectUnmodifiable(list);
// Replacement:
Int8List list2 = i8l.asUnmodifiableView();
checkReadable(list2);
checkUnmodifiable(list2);
checkIndirectUnmodifiable(list2);
}
uint8ListTest() {
Uint8List u8l = new Uint8List.fromList(intList);
// Deprecated:
UnmodifiableUint8ListView list = new UnmodifiableUint8ListView(u8l);
Uint8List list = u8l.asUnmodifiableView();
checkReadable(list);
checkUnmodifiable(list);
checkIndirectUnmodifiable(list);
// Replacement:
Uint8List list2 = u8l.asUnmodifiableView();
checkReadable(list2);
checkUnmodifiable(list2);
checkIndirectUnmodifiable(list2);
}
uint8ClampedListTest() {
Uint8ClampedList u8l = new Uint8ClampedList.fromList(intList);
// Deprecated:
UnmodifiableUint8ClampedListView list =
new UnmodifiableUint8ClampedListView(u8l);
Uint8ClampedList list = u8l.asUnmodifiableView();
checkReadable(list);
checkUnmodifiable(list);
checkIndirectUnmodifiable(list);
// Replacement:
Uint8ClampedList list2 = u8l.asUnmodifiableView();
checkReadable(list2);
checkUnmodifiable(list2);
checkIndirectUnmodifiable(list2);
}
int16ListTest() {
Int16List i16l = new Int16List.fromList(intList);
// Deprecated:
UnmodifiableInt16ListView list = new UnmodifiableInt16ListView(i16l);
Int16List list = i16l.asUnmodifiableView();
checkReadable(list);
checkUnmodifiable(list);
checkIndirectUnmodifiable(list);
// Replacement:
Int16List list2 = i16l.asUnmodifiableView();
checkReadable(list2);
checkUnmodifiable(list2);
checkIndirectUnmodifiable(list2);
}
uint16ListTest() {
Uint16List u16l = new Uint16List.fromList(intList);
// Deprecated:
UnmodifiableUint16ListView list = new UnmodifiableUint16ListView(u16l);
Uint16List list = u16l.asUnmodifiableView();
checkReadable(list);
checkUnmodifiable(list);
checkIndirectUnmodifiable(list);
// Replacement:
Uint16List list2 = u16l.asUnmodifiableView();
checkReadable(list2);
checkUnmodifiable(list2);
checkIndirectUnmodifiable(list2);
}
int32ListTest() {
Int32List i32l = new Int32List.fromList(intList);
// Deprecated:
UnmodifiableInt32ListView list = new UnmodifiableInt32ListView(i32l);
Int32List list = i32l.asUnmodifiableView();
checkReadable(list);
checkUnmodifiable(list);
checkIndirectUnmodifiable(list);
// Replacement:
Int32List list2 = i32l.asUnmodifiableView();
checkReadable(list2);
checkUnmodifiable(list2);
checkIndirectUnmodifiable(list2);
}
uint32ListTest() {
Uint32List u32l = new Uint32List.fromList(intList);
// Deprecated:
UnmodifiableUint32ListView list = new UnmodifiableUint32ListView(u32l);
Uint32List list = u32l.asUnmodifiableView();
checkReadable(list);
checkUnmodifiable(list);
checkIndirectUnmodifiable(list);
// Replacement:
Uint32List list2 = u32l.asUnmodifiableView();
checkReadable(list2);
checkUnmodifiable(list2);
checkIndirectUnmodifiable(list2);
}
int64ListTest() {
Int64List i64l = new Int64List.fromList(intList);
// Deprecated:
UnmodifiableInt64ListView list = new UnmodifiableInt64ListView(i64l);
Int64List list = i64l.asUnmodifiableView();
checkReadable(list);
checkUnmodifiable(list);
checkIndirectUnmodifiable(list);
// Replacement:
Int64List list2 = i64l.asUnmodifiableView();
checkReadable(list2);
checkUnmodifiable(list2);
checkIndirectUnmodifiable(list2);
}
uint64ListTest() {
Uint64List u64l = new Uint64List.fromList(intList);
// Deprecated:
UnmodifiableUint64ListView list = new UnmodifiableUint64ListView(u64l);
Uint64List list = u64l.asUnmodifiableView();
checkReadable(list);
checkUnmodifiable(list);
checkIndirectUnmodifiable(list);
// Replacement:
Uint64List list2 = u64l.asUnmodifiableView();
checkReadable(list2);
checkUnmodifiable(list2);
checkIndirectUnmodifiable(list2);
}
List<double> doubleList = <double>[1.0, 2.0, 3.0, 4.0, 5.0];
@ -204,70 +148,37 @@ checkDoubleUnmodifiable(List<double> list) {
float32ListTest() {
Float32List f32l = new Float32List.fromList(doubleList);
// Deprecated:
UnmodifiableFloat32ListView list = new UnmodifiableFloat32ListView(f32l);
Float32List list = f32l.asUnmodifiableView();
checkDoubleReadable(list);
checkDoubleUnmodifiable(list);
checkIndirectUnmodifiable(list);
// Replacement:
Float32List list2 = f32l.asUnmodifiableView();
checkDoubleReadable(list2);
checkDoubleUnmodifiable(list2);
checkIndirectUnmodifiable(list2);
}
float64ListTest() {
Float64List f64l = new Float64List.fromList(doubleList);
// Deprecated:
UnmodifiableFloat64ListView list = new UnmodifiableFloat64ListView(f64l);
Float64List list = f64l.asUnmodifiableView();
checkDoubleReadable(list);
checkDoubleUnmodifiable(list);
checkIndirectUnmodifiable(list);
// Replacement:
Float64List list2 = f64l.asUnmodifiableView();
checkDoubleReadable(list2);
checkDoubleUnmodifiable(list2);
checkIndirectUnmodifiable(list2);
}
byteDataTest() {
ByteBuffer buffer = new Uint8List.fromList(intList).buffer;
ByteData bd = new ByteData.view(buffer);
// Deprecated:
{
UnmodifiableByteDataView ubdv = new UnmodifiableByteDataView(bd);
ByteData ubdv = bd.asUnmodifiableView();
Expect.throwsUnsupportedError(() => ubdv.setInt8(0, 0));
Expect.throwsUnsupportedError(() => ubdv.setUint8(0, 0));
Expect.throwsUnsupportedError(() => ubdv.setInt16(0, 0));
Expect.throwsUnsupportedError(() => ubdv.setUint16(0, 0));
Expect.throwsUnsupportedError(() => ubdv.setInt32(0, 0));
Expect.throwsUnsupportedError(() => ubdv.setUint32(0, 0));
Expect.throwsUnsupportedError(() => ubdv.setInt64(0, 0));
Expect.throwsUnsupportedError(() => ubdv.setUint64(0, 0));
Expect.throwsUnsupportedError(() => ubdv.setFloat32(0, 0.0));
Expect.throwsUnsupportedError(() => ubdv.setFloat64(0, 0.0));
Expect.throwsUnsupportedError(() => ubdv.setInt8(0, 0));
Expect.throwsUnsupportedError(() => ubdv.setUint8(0, 0));
Expect.throwsUnsupportedError(() => ubdv.setInt16(0, 0));
Expect.throwsUnsupportedError(() => ubdv.setUint16(0, 0));
Expect.throwsUnsupportedError(() => ubdv.setInt32(0, 0));
Expect.throwsUnsupportedError(() => ubdv.setUint32(0, 0));
Expect.throwsUnsupportedError(() => ubdv.setInt64(0, 0));
Expect.throwsUnsupportedError(() => ubdv.setUint64(0, 0));
Expect.throwsUnsupportedError(() => ubdv.setFloat32(0, 0.0));
Expect.throwsUnsupportedError(() => ubdv.setFloat64(0, 0.0));
checkIndirectUnmodifiable(ubdv);
}
// Replacement:
{
ByteData ubdv = bd.asUnmodifiableView();
Expect.throwsUnsupportedError(() => ubdv.setInt8(0, 0));
Expect.throwsUnsupportedError(() => ubdv.setUint8(0, 0));
Expect.throwsUnsupportedError(() => ubdv.setInt16(0, 0));
Expect.throwsUnsupportedError(() => ubdv.setUint16(0, 0));
Expect.throwsUnsupportedError(() => ubdv.setInt32(0, 0));
Expect.throwsUnsupportedError(() => ubdv.setUint32(0, 0));
Expect.throwsUnsupportedError(() => ubdv.setInt64(0, 0));
Expect.throwsUnsupportedError(() => ubdv.setUint64(0, 0));
Expect.throwsUnsupportedError(() => ubdv.setFloat32(0, 0.0));
Expect.throwsUnsupportedError(() => ubdv.setFloat64(0, 0.0));
checkIndirectUnmodifiable(ubdv);
}
checkIndirectUnmodifiable(ubdv);
}
main() {
@ -278,7 +189,7 @@ main() {
uint16ListTest();
int32ListTest();
uint32ListTest();
if (supportsInt64) {
if (!jsNumbers) {
int64ListTest();
uint64ListTest();
}

View File

@ -60,14 +60,14 @@ void main() {
readDynamic(view);
}
var unmodifiableView1 = new UnmodifiableUint8ListView(array);
var unmodifiableView1 = array.asUnmodifiableView();
for (var i = 0; i < kLoopSize; i++) {
readUnmodifiableView(unmodifiableView1);
readPolymorphic(unmodifiableView1);
readDynamic(unmodifiableView1);
}
var unmodifiableView2 = new UnmodifiableUint8ListView(view);
var unmodifiableView2 = view.asUnmodifiableView();
for (var i = 0; i < kLoopSize; i++) {
readUnmodifiableView(unmodifiableView2);
readPolymorphic(unmodifiableView2);

View File

@ -16,8 +16,8 @@ void main() {
}
class A {
final UnmodifiableByteDataView bytes;
A(ByteData bytes) : bytes = UnmodifiableByteDataView(bytes);
final ByteData bytes;
A(ByteData bytes) : bytes = bytes.asUnmodifiableView();
int getUint16() {
return bytes.getUint16(0);