dart-sdk/tests/dart2js_2/37494_test.dart
Joshua Litt 05ca544f15 [dart2js] Move tests/compiler/dart2js_extra to tests/dart2js_2.
Change-Id: Iaa0ca2b4f2d1b15f79ddca37834d3ed2497bc068
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/149242
Commit-Queue: Joshua Litt <joshualitt@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2020-06-03 15:15:30 +00:00

55 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.
}
}