mirror of
https://github.com/dart-lang/sdk
synced 2024-11-02 14:32:24 +00:00
912005267d
Change-Id: I46be49b2effec3e38a3dc44cd45cfe736f77fa78 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/182680 Commit-Queue: Sigmund Cherem <sigmund@google.com> Reviewed-by: Joshua Litt <joshualitt@google.com> Reviewed-by: Nicholas Shahan <nshahan@google.com> Reviewed-by: Stephen Adams <sra@google.com>
54 lines
1.2 KiB
Dart
54 lines
1.2 KiB
Dart
// Copyright (c) 2019, 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.
|
|
|
|
// @dart = 2.7
|
|
|
|
// Regression test for http://dartbug.com/37494
|
|
|
|
import 'dart:collection';
|
|
import 'dart:typed_data';
|
|
|
|
void main() {
|
|
final u8 = Uint8List(10);
|
|
// Uint8List.{sort,join} are ListMixin.{sort,join} which takes and explicit
|
|
// receiver because Uint8List is an intercepted type.
|
|
u8.sort();
|
|
print(u8.join());
|
|
|
|
final list = Example();
|
|
list.addAll([1, 2, 3]);
|
|
list.sort();
|
|
print(list.join());
|
|
}
|
|
|
|
class Example<T> extends ListBase<T> {
|
|
final _list = <T>[];
|
|
|
|
@override
|
|
operator [](int index) => _list[index];
|
|
|
|
@override
|
|
operator []=(int index, T value) {
|
|
_list[index] = value;
|
|
}
|
|
|
|
@override
|
|
int get length => _list.length;
|
|
|
|
@override
|
|
set length(int value) {
|
|
_list.length = value;
|
|
}
|
|
|
|
@override
|
|
String join([String separator = ""]) {
|
|
return super.join(separator); // This super call had bad dummy interceptor.
|
|
}
|
|
|
|
@override
|
|
@pragma('dart2js:noInline')
|
|
void sort([int compare(T a, T b)]) {
|
|
super.sort(compare); // This super call had bad dummy interceptor.
|
|
}
|
|
}
|