// Copyright (c) 2020, 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 import 'dart:collection'; import 'dart:typed_data'; /*member: dynamicIndex:Specializer=[!RemoveLast]*/ @pragma('dart2js:noInline') dynamicIndex(var list) { return list.removeLast(); // This is not known to be an indexable primitive. } /*member: unknownList:Specializer=[!RemoveLast]*/ @pragma('dart2js:noInline') unknownList(List list) { return list.removeLast(); // This is not known to be an indexable primitive. } /*member: possiblyNullMutableList:Specializer=[RemoveLast]*/ @pragma('dart2js:noInline') possiblyNullMutableList(bool b) { var list = b ? [0] : null; return list.removeLast(); } /*member: mutableList:Specializer=[RemoveLast]*/ @pragma('dart2js:noInline') mutableList() { var list = [0]; return list.removeLast(); } /*member: typedList:Specializer=[!RemoveLast]*/ @pragma('dart2js:noInline') typedList() { var list = Uint8List(10); return list.removeLast(); } main() { dynamicIndex([]); dynamicIndex({}); unknownList([]); unknownList(new MyList()); possiblyNullMutableList(true); possiblyNullMutableList(false); mutableList(); typedList(); } class MyList extends ListBase { E operator [](int index) => null; void operator []=(int index, E value) {} int get length => 0; void set length(int value) {} }