2019-07-19 17:09:30 +00:00
|
|
|
// 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.
|
|
|
|
|
2020-03-21 16:12:36 +00:00
|
|
|
// @dart = 2.7
|
|
|
|
|
2019-07-19 17:09:30 +00:00
|
|
|
// 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.
|
|
|
|
}
|
|
|
|
}
|