blob: a0abcebc4b0d20f2464d2a92fd9065bedcb833ad [file] [log] [blame]
// 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.
}
}