Add more class modifiers to dart:collection.

Pure interfaces made `interface`s
implementation classes which cannot/should not be extended made `final`.

A class like `HasHMap` which provides the `Map` interface,
and no implementation except factory constructors
for internal implementations, is made `final`.

Unified {List,Set,Map}{Base,Mixin} into their `Base` class.
Deprecations are retained in comments for now, to be landed
separately. Search for '// TODO: @Deprecated'.

Tested: No new test, only adding restrictions on use.
CoreLibraryReviewExempt: Everybody's on vacation, everybody everywhere.
Change-Id: Ia83b8a3bb20b5b214546b328d4492de6658253db
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/288240
Reviewed-by: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Lasse Nielsen <lrn@google.com>
Reviewed-by: Nate Bosch <nbosch@google.com>
This commit is contained in:
Lasse R.H. Nielsen 2023-04-04 10:39:48 +00:00 committed by Commit Queue
parent 5518abf1c7
commit 67797ef46f
63 changed files with 1558 additions and 1395 deletions

View file

@ -133,6 +133,26 @@
- Deprecated the `HasNextIterator` class ([#50883][]).
- **Breaking change when migrating code to Dart 3.0**:
Some changes to platform libraries only affect code when it is migrated
to language version 3.0.
- The following interface can no longer be extended, only implemented:
* `Queue`
- The following implementation classes can no longer be implemented:
* `LinkedList`
* `LinkedListEntry`
- The following implementation classes can no longer be implemented
or extended:
* `HasNextIterator` (Also deprecated.)
* `HashMap`
* `LinkedHashMap`
* `HashSet`
* `LinkedHashSet`
* `DoubleLinkedQueue`
* `ListQueue`
* `SplayTreeMap`
* `SplayTreeSet`
[#50883]: https://github.com/dart-lang/sdk/issues/50883
#### `dart:developer`

View file

@ -2,8 +2,6 @@
// 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.
import 'dart:collection';
import 'package:analyzer/src/util/yaml.dart';
import 'package:yaml/yaml.dart';
@ -42,19 +40,3 @@ String? toLowerCase(Object? value) => value?.toString().toLowerCase();
/// Safely convert this [value] to upper case, returning `null` if [value] is
/// null.
String? toUpperCase(Object? value) => value?.toString().toUpperCase();
/// A simple limited queue.
class LimitedQueue<E> extends ListQueue<E> {
final int limit;
/// Create a queue with [limit] items.
LimitedQueue(this.limit);
@override
void add(E value) {
super.add(value);
while (length > limit) {
remove(first);
}
}
}

View file

@ -11,7 +11,7 @@ import 'package:compiler/src/util/testing.dart';
/*spec.class: global#JSArray:deps=[ArrayIterator,List],explicit=[JSArray,JSArray.E,JSArray<ArrayIterator.E>],implicit=[JSArray.E],needsArgs,test*/
/*prod.class: global#JSArray:deps=[List],needsArgs*/
/*spec.class: global#List:deps=[C.bar,JSArray.markFixedList],explicit=[List,List<B*>*,List<Object>,List<String>?,List<markFixedList.T>],needsArgs,test*/
/*spec.class: global#List:deps=[C.bar,JSArray.markFixedList],explicit=[List<B*>*,List<Object>,List<Object?>,List<String>?,List<markFixedList.T>],needsArgs,test*/
/*prod.class: global#List:deps=[C.bar],explicit=[List<B*>*],needsArgs*/
class A {}

View file

@ -4,7 +4,7 @@
// @dart = 2.7
/*spec.class: global#List:deps=[Class.m,JSArray.markFixedList],explicit=[List,List<Object>,List<String>?,List<markFixedList.T>],needsArgs,test*/
/*spec.class: global#List:deps=[Class.m,JSArray.markFixedList],explicit=[List,List<Object>,List<Object?>,List<String>?,List<markFixedList.T>],needsArgs,test*/
/*prod.class: global#List:deps=[Class.m],needsArgs,test*/
/*spec.class: global#JSArray:deps=[ArrayIterator,List],explicit=[JSArray,JSArray.E,JSArray<ArrayIterator.E>],implicit=[JSArray.E],needsArgs,test*/

View file

@ -4,7 +4,7 @@
// @dart = 2.7
/*spec.class: global#List:deps=[Class,JSArray.markFixedList],explicit=[List,List<Object>,List<String>?,List<markFixedList.T>],needsArgs,test*/
/*spec.class: global#List:deps=[Class,JSArray.markFixedList],explicit=[List,List<Object>,List<Object?>,List<String>?,List<markFixedList.T>],needsArgs,test*/
/*prod.class: global#List:deps=[Class],needsArgs,test*/
/*spec.class: global#JSArray:deps=[ArrayIterator,List],explicit=[JSArray,JSArray.E,JSArray<ArrayIterator.E>],implicit=[JSArray.E],needsArgs,test*/

View file

@ -58,7 +58,7 @@ class NativeTypeSet {
// These are used natively by dart:html but also not annotated.
_addExtensionTypesForLibrary('dart:core', ['Comparable', 'Map']);
_addExtensionTypesForLibrary('dart:collection', ['ListMixin', 'MapMixin']);
_addExtensionTypesForLibrary('dart:collection', ['ListBase', 'MapBase']);
_addExtensionTypesForLibrary('dart:math', ['Rectangle']);
// TODO(39612) Validate that after this point no types from the SDK are

View file

@ -118,6 +118,7 @@ class DevCompilerTarget extends Target {
(uri.path == 'core' ||
uri.path == 'typed_data' ||
uri.path == '_interceptors' ||
uri.path == '_js_helper' ||
uri.path == '_native_typed_data' ||
uri.path == '_runtime');

View file

@ -3,7 +3,7 @@ library from "org-dartlang-test:///main.dart" as main {
import "dart:collection" show ListMixin;
abstract class _WithListMixin&Object&ListMixin extends dart.core::Object implements dart.collection::ListMixin<dart.core::int> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
abstract class _WithListMixin&Object&ListMixin extends dart.core::Object implements dart.collection::ListBase<dart.core::int> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
const synthetic constructor •() → main::_WithListMixin&Object&ListMixin
: super dart.core::Object::•()
;
@ -47,7 +47,7 @@ library from "org-dartlang-test:///main.dart" as main {
get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ isEmpty() → dart.core::bool
return this.{dart.core::List::length}{dart.core::int} =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} 0;
get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ isNotEmpty() → dart.core::bool
return !this.{dart.collection::ListMixin::isEmpty}{dart.core::bool};
return !this.{dart.collection::ListBase::isEmpty}{dart.core::bool};
get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ single() → dart.core::int {
if(this.{dart.core::List::length}{dart.core::int} =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} 0)
throw dart._internal::IterableElementError::noElement();
@ -190,7 +190,7 @@ library from "org-dartlang-test:///main.dart" as main {
return new dart._internal::TakeWhileIterable::•<dart.core::int>(this, test);
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ toList({dart.core::bool growable = #C5}) → dart.core::List<dart.core::int> {
if(this.{dart.collection::ListMixin::isEmpty}{dart.core::bool})
if(this.{dart.collection::ListBase::isEmpty}{dart.core::bool})
return dart.core::List::empty<dart.core::int>(growable: growable);
dart.core::int first = this.{dart.core::List::[]}(0){(dart.core::int) → dart.core::int};
dart.core::List<dart.core::int> result = dart.core::List::filled<dart.core::int>(this.{dart.core::List::length}{dart.core::int}, first, growable: growable);
@ -217,7 +217,7 @@ library from "org-dartlang-test:///main.dart" as main {
dart.core::int element = :sync-for-iterator.{dart.core::Iterator::current}{dart.core::int};
{
assert(this.{dart.core::List::length}{dart.core::int} =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} i || (throw new dart.core::ConcurrentModificationError::•(this)));
this.{dart.collection::ListMixin::add}(element){(dart.core::int) → void};
this.{dart.collection::ListBase::add}(element){(dart.core::int) → void};
i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int};
}
}
@ -226,7 +226,7 @@ library from "org-dartlang-test:///main.dart" as main {
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ remove(dart.core::Object? element) → dart.core::bool {
for (dart.core::int i = 0; i.{dart.core::num::<}(this.{dart.core::List::length}{dart.core::int}){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
if(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int} =={dart.core::Object::==}{(dart.core::Object) → dart.core::bool} element) {
this.{dart.collection::ListMixin::_closeGap}(i, i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}){(dart.core::int, dart.core::int) → void};
this.{dart.collection::ListBase::_closeGap}(i, i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}){(dart.core::int, dart.core::int) → void};
return true;
}
}
@ -244,10 +244,10 @@ library from "org-dartlang-test:///main.dart" as main {
this.{dart.core::List::length} = length.{dart.core::num::-}(size){(dart.core::num) → dart.core::int};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeWhere((dart.core::int) → dart.core::bool test) → void {
this.{dart.collection::ListMixin::_filter}(test, false){((dart.core::int) → dart.core::bool, dart.core::bool) → void};
this.{dart.collection::ListBase::_filter}(test, false){((dart.core::int) → dart.core::bool, dart.core::bool) → void};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ retainWhere((dart.core::int) → dart.core::bool test) → void {
this.{dart.collection::ListMixin::_filter}(test, true){((dart.core::int) → dart.core::bool, dart.core::bool) → void};
this.{dart.collection::ListBase::_filter}(test, true){((dart.core::int) → dart.core::bool, dart.core::bool) → void};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ _filter((dart.core::int) → dart.core::bool test, dart.core::bool retainMatching) → void {
dart.core::List<dart.core::int> retained = dart.core::_GrowableList::•<dart.core::int>(0);
@ -262,7 +262,7 @@ library from "org-dartlang-test:///main.dart" as main {
}
}
if(!(retained.{dart.core::List::length}{dart.core::int} =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} this.{dart.core::List::length}{dart.core::int})) {
this.{dart.collection::ListMixin::setRange}(0, retained.{dart.core::List::length}{dart.core::int}, retained){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
this.{dart.collection::ListBase::setRange}(0, retained.{dart.core::List::length}{dart.core::int}, retained){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
this.{dart.core::List::length} = retained.{dart.core::List::length}{dart.core::int};
}
}
@ -309,7 +309,7 @@ library from "org-dartlang-test:///main.dart" as main {
if(end{dart.core::int} == null)
throw "!";
dart.core::RangeError::checkValidRange(start, end{dart.core::int}, listLength);
return dart.core::List::from<dart.core::int>(this.{dart.collection::ListMixin::getRange}(start, end{dart.core::int}){(dart.core::int, dart.core::int) → dart.core::Iterable<dart.core::int>});
return dart.core::List::from<dart.core::int>(this.{dart.collection::ListBase::getRange}(start, end{dart.core::int}){(dart.core::int, dart.core::int) → dart.core::Iterable<dart.core::int>});
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ getRange(dart.core::int start, dart.core::int end) → dart.core::Iterable<dart.core::int> {
dart.core::RangeError::checkValidRange(start, end, this.{dart.core::List::length}{dart.core::int});
@ -318,7 +318,7 @@ library from "org-dartlang-test:///main.dart" as main {
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeRange(dart.core::int start, dart.core::int end) → void {
dart.core::RangeError::checkValidRange(start, end, this.{dart.core::List::length}{dart.core::int});
if(end.{dart.core::num::>}(start){(dart.core::num) → dart.core::bool}) {
this.{dart.collection::ListMixin::_closeGap}(start, end){(dart.core::int, dart.core::int) → void};
this.{dart.collection::ListBase::_closeGap}(start, end){(dart.core::int, dart.core::int) → void};
}
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ fillRange(dart.core::int start, dart.core::int end, [covariant-by-class dart.core::int? fill = #C2]) → void {
@ -361,7 +361,7 @@ library from "org-dartlang-test:///main.dart" as main {
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ replaceRange(dart.core::int start, dart.core::int end, covariant-by-class dart.core::Iterable<dart.core::int> newContents) → void {
dart.core::RangeError::checkValidRange(start, end, this.{dart.core::List::length}{dart.core::int});
if(start =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} this.{dart.core::List::length}{dart.core::int}) {
this.{dart.collection::ListMixin::addAll}(newContents){(dart.core::Iterable<dart.core::int>) → void};
this.{dart.collection::ListBase::addAll}(newContents){(dart.core::Iterable<dart.core::int>) → void};
return;
}
if(!(newContents is{ForNonNullableByDefault} dart._internal::EfficientLengthIterable<dynamic>)) {
@ -371,9 +371,9 @@ library from "org-dartlang-test:///main.dart" as main {
dart.core::int insertLength = newContents.{dart.core::Iterable::length}{dart.core::int};
if(removeLength.{dart.core::num::>=}(insertLength){(dart.core::num) → dart.core::bool}) {
dart.core::int insertEnd = start.{dart.core::num::+}(insertLength){(dart.core::num) → dart.core::int};
this.{dart.collection::ListMixin::setRange}(start, insertEnd, newContents){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
this.{dart.collection::ListBase::setRange}(start, insertEnd, newContents){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
if(removeLength.{dart.core::num::>}(insertLength){(dart.core::num) → dart.core::bool}) {
this.{dart.collection::ListMixin::_closeGap}(insertEnd, end){(dart.core::int, dart.core::int) → void};
this.{dart.collection::ListBase::_closeGap}(insertEnd, end){(dart.core::int, dart.core::int) → void};
}
}
else
@ -388,7 +388,7 @@ library from "org-dartlang-test:///main.dart" as main {
this.{dart.core::List::[]=}(i, element){(dart.core::int, dart.core::int) → void};
}
else {
this.{dart.collection::ListMixin::add}(element){(dart.core::int) → void};
this.{dart.collection::ListBase::add}(element){(dart.core::int) → void};
}
i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int};
}
@ -400,12 +400,12 @@ library from "org-dartlang-test:///main.dart" as main {
dart.core::int oldLength = this.{dart.core::List::length}{dart.core::int};
dart.core::int insertEnd = start.{dart.core::num::+}(insertLength){(dart.core::num) → dart.core::int};
for (dart.core::int i = oldLength.{dart.core::num::-}(delta){(dart.core::num) → dart.core::int}; i.{dart.core::num::<}(oldLength){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
this.{dart.collection::ListMixin::add}(this.{dart.core::List::[]}(i.{dart.core::num::>}(0){(dart.core::num) → dart.core::bool} ?{dart.core::int} i : 0){(dart.core::int) → dart.core::int}){(dart.core::int) → void};
this.{dart.collection::ListBase::add}(this.{dart.core::List::[]}(i.{dart.core::num::>}(0){(dart.core::num) → dart.core::bool} ?{dart.core::int} i : 0){(dart.core::int) → dart.core::int}){(dart.core::int) → void};
}
if(insertEnd.{dart.core::num::<}(oldLength){(dart.core::num) → dart.core::bool}) {
this.{dart.collection::ListMixin::setRange}(insertEnd, oldLength, this, end){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
this.{dart.collection::ListBase::setRange}(insertEnd, oldLength, this, end){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
}
this.{dart.collection::ListMixin::setRange}(start, insertEnd, newContents){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
this.{dart.collection::ListBase::setRange}(start, insertEnd, newContents){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
}
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ indexOf(covariant-by-class dart.core::Object? element, [dart.core::int start = #C7]) → dart.core::int {
@ -452,21 +452,21 @@ library from "org-dartlang-test:///main.dart" as main {
dart._internal::checkNotNullable<dart.core::int>(index, "index");
dart.core::int length = this.{dart.core::List::length}{dart.core::int};
dart.core::RangeError::checkValueInInterval(index, 0, length, "index");
this.{dart.collection::ListMixin::add}(element){(dart.core::int) → void};
this.{dart.collection::ListBase::add}(element){(dart.core::int) → void};
if(!(index =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} length)) {
this.{dart.collection::ListMixin::setRange}(index.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}, length.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}, this, index){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
this.{dart.collection::ListBase::setRange}(index.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}, length.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}, this, index){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
this.{dart.core::List::[]=}(index, element){(dart.core::int, dart.core::int) → void};
}
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeAt(dart.core::int index) → dart.core::int {
dart.core::int result = this.{dart.core::List::[]}(index){(dart.core::int) → dart.core::int};
this.{dart.collection::ListMixin::_closeGap}(index, index.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}){(dart.core::int, dart.core::int) → void};
this.{dart.collection::ListBase::_closeGap}(index, index.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}){(dart.core::int, dart.core::int) → void};
return result;
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ insertAll(dart.core::int index, covariant-by-class dart.core::Iterable<dart.core::int> iterable) → void {
dart.core::RangeError::checkValueInInterval(index, 0, this.{dart.core::List::length}{dart.core::int}, "index");
if(index =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} this.{dart.core::List::length}{dart.core::int}) {
this.{dart.collection::ListMixin::addAll}(iterable){(dart.core::Iterable<dart.core::int>) → void};
this.{dart.collection::ListBase::addAll}(iterable){(dart.core::Iterable<dart.core::int>) → void};
return;
}
if(!(iterable is{ForNonNullableByDefault} dart._internal::EfficientLengthIterable<dynamic>) || dart.core::identical(iterable, this)) {
@ -478,7 +478,7 @@ library from "org-dartlang-test:///main.dart" as main {
}
dart.core::int oldLength = this.{dart.core::List::length}{dart.core::int};
for (dart.core::int i = oldLength.{dart.core::num::-}(insertionLength){(dart.core::num) → dart.core::int}; i.{dart.core::num::<}(oldLength){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
this.{dart.collection::ListMixin::add}(this.{dart.core::List::[]}(i.{dart.core::num::>}(0){(dart.core::num) → dart.core::bool} ?{dart.core::int} i : 0){(dart.core::int) → dart.core::int}){(dart.core::int) → void};
this.{dart.collection::ListBase::add}(this.{dart.core::List::[]}(i.{dart.core::num::>}(0){(dart.core::num) → dart.core::bool} ?{dart.core::int} i : 0){(dart.core::int) → dart.core::int}){(dart.core::int) → void};
}
if(!(iterable.{dart.core::Iterable::length}{dart.core::int} =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} insertionLength)) {
this.{dart.core::List::length} = this.{dart.core::List::length}{dart.core::int}.{dart.core::num::-}(insertionLength){(dart.core::num) → dart.core::int};
@ -486,13 +486,13 @@ library from "org-dartlang-test:///main.dart" as main {
}
dart.core::int oldCopyStart = index.{dart.core::num::+}(insertionLength){(dart.core::num) → dart.core::int};
if(oldCopyStart.{dart.core::num::<}(oldLength){(dart.core::num) → dart.core::bool}) {
this.{dart.collection::ListMixin::setRange}(oldCopyStart, oldLength, this, index){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
this.{dart.collection::ListBase::setRange}(oldCopyStart, oldLength, this, index){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
}
this.{dart.collection::ListMixin::setAll}(index, iterable){(dart.core::int, dart.core::Iterable<dart.core::int>) → void};
this.{dart.collection::ListBase::setAll}(index, iterable){(dart.core::int, dart.core::Iterable<dart.core::int>) → void};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ setAll(dart.core::int index, covariant-by-class dart.core::Iterable<dart.core::int> iterable) → void {
if(iterable is{ForNonNullableByDefault} dart.core::List<dynamic>) {
this.{dart.collection::ListMixin::setRange}(index, index.{dart.core::num::+}(iterable.{dart.core::Iterable::length}{dart.core::int}){(dart.core::num) → dart.core::int}, iterable){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
this.{dart.collection::ListBase::setRange}(index, index.{dart.core::num::+}(iterable.{dart.core::Iterable::length}{dart.core::int}){(dart.core::num) → dart.core::int}, iterable){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
}
else {
{
@ -509,10 +509,12 @@ library from "org-dartlang-test:///main.dart" as main {
get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ reversed() → dart.core::Iterable<dart.core::int>
return new dart._internal::ReversedListIterable::•<dart.core::int>(this);
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ toString() → dart.core::String
return dart.collection::IterableBase::iterableToFullString(this, "[", "]");
return dart.collection::ListBase::listToString(this);
static method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ _compareAny(dynamic a, dynamic b) → dart.core::int {
return dart.core::Comparable::compare(a as{ForNonNullableByDefault} dart.core::Comparable<dynamic>, b as{ForNonNullableByDefault} dart.core::Comparable<dynamic>);
}
static method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ listToString(dart.core::List<dart.core::Object?> list) → dart.core::String
return dart.collection::IterableBase::iterableToFullString(list, "[", "]");
}
class WithListMixin extends main::_WithListMixin&Object&ListMixin {
field dart.core::int length = 2;
@ -531,6 +533,6 @@ constants {
#C3 = dart.core::pragma {name:#C1, options:#C2}
#C4 = ""
#C5 = true
#C6 = static-tearoff dart.collection::ListMixin::_compareAny
#C6 = static-tearoff dart.collection::ListBase::_compareAny
#C7 = 0
}

View file

@ -3,7 +3,7 @@ library from "org-dartlang-test:///main.dart" as main {
import "dart:collection" show ListMixin;
abstract class _WithListMixin&Object&ListMixin extends dart.core::Object implements dart.collection::ListMixin<dart.core::int> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
abstract class _WithListMixin&Object&ListMixin extends dart.core::Object implements dart.collection::ListBase<dart.core::int> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
const synthetic constructor •() → main::_WithListMixin&Object&ListMixin
: super dart.core::Object::•()
;
@ -47,7 +47,7 @@ library from "org-dartlang-test:///main.dart" as main {
get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ isEmpty() → dart.core::bool
return this.{dart.core::List::length}{dart.core::int} =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} 0;
get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ isNotEmpty() → dart.core::bool
return !this.{dart.collection::ListMixin::isEmpty}{dart.core::bool};
return !this.{dart.collection::ListBase::isEmpty}{dart.core::bool};
get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ single() → dart.core::int {
if(this.{dart.core::List::length}{dart.core::int} =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} 0)
throw dart._internal::IterableElementError::noElement();
@ -190,7 +190,7 @@ library from "org-dartlang-test:///main.dart" as main {
return new dart._internal::TakeWhileIterable::•<dart.core::int>(this, test);
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ toList({dart.core::bool growable = #C5}) → dart.core::List<dart.core::int> {
if(this.{dart.collection::ListMixin::isEmpty}{dart.core::bool})
if(this.{dart.collection::ListBase::isEmpty}{dart.core::bool})
return dart.core::List::empty<dart.core::int>(growable: growable);
dart.core::int first = this.{dart.core::List::[]}(0){(dart.core::int) → dart.core::int};
dart.core::List<dart.core::int> result = dart.core::List::filled<dart.core::int>(this.{dart.core::List::length}{dart.core::int}, first, growable: growable);
@ -217,7 +217,7 @@ library from "org-dartlang-test:///main.dart" as main {
dart.core::int element = :sync-for-iterator.{dart.core::Iterator::current}{dart.core::int};
{
assert(this.{dart.core::List::length}{dart.core::int} =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} i || (throw new dart.core::ConcurrentModificationError::•(this)));
this.{dart.collection::ListMixin::add}(element){(dart.core::int) → void};
this.{dart.collection::ListBase::add}(element){(dart.core::int) → void};
i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int};
}
}
@ -226,7 +226,7 @@ library from "org-dartlang-test:///main.dart" as main {
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ remove(dart.core::Object? element) → dart.core::bool {
for (dart.core::int i = 0; i.{dart.core::num::<}(this.{dart.core::List::length}{dart.core::int}){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
if(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int} =={dart.core::Object::==}{(dart.core::Object) → dart.core::bool} element) {
this.{dart.collection::ListMixin::_closeGap}(i, i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}){(dart.core::int, dart.core::int) → void};
this.{dart.collection::ListBase::_closeGap}(i, i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}){(dart.core::int, dart.core::int) → void};
return true;
}
}
@ -244,10 +244,10 @@ library from "org-dartlang-test:///main.dart" as main {
this.{dart.core::List::length} = length.{dart.core::num::-}(size){(dart.core::num) → dart.core::int};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeWhere((dart.core::int) → dart.core::bool test) → void {
this.{dart.collection::ListMixin::_filter}(test, false){((dart.core::int) → dart.core::bool, dart.core::bool) → void};
this.{dart.collection::ListBase::_filter}(test, false){((dart.core::int) → dart.core::bool, dart.core::bool) → void};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ retainWhere((dart.core::int) → dart.core::bool test) → void {
this.{dart.collection::ListMixin::_filter}(test, true){((dart.core::int) → dart.core::bool, dart.core::bool) → void};
this.{dart.collection::ListBase::_filter}(test, true){((dart.core::int) → dart.core::bool, dart.core::bool) → void};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ _filter((dart.core::int) → dart.core::bool test, dart.core::bool retainMatching) → void {
dart.core::List<dart.core::int> retained = dart.core::_GrowableList::•<dart.core::int>(0);
@ -262,7 +262,7 @@ library from "org-dartlang-test:///main.dart" as main {
}
}
if(!(retained.{dart.core::List::length}{dart.core::int} =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} this.{dart.core::List::length}{dart.core::int})) {
this.{dart.collection::ListMixin::setRange}(0, retained.{dart.core::List::length}{dart.core::int}, retained){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
this.{dart.collection::ListBase::setRange}(0, retained.{dart.core::List::length}{dart.core::int}, retained){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
this.{dart.core::List::length} = retained.{dart.core::List::length}{dart.core::int};
}
}
@ -309,7 +309,7 @@ library from "org-dartlang-test:///main.dart" as main {
if(end{dart.core::int} == null)
throw "!";
dart.core::RangeError::checkValidRange(start, end{dart.core::int}, listLength);
return dart.core::List::from<dart.core::int>(this.{dart.collection::ListMixin::getRange}(start, end{dart.core::int}){(dart.core::int, dart.core::int) → dart.core::Iterable<dart.core::int>});
return dart.core::List::from<dart.core::int>(this.{dart.collection::ListBase::getRange}(start, end{dart.core::int}){(dart.core::int, dart.core::int) → dart.core::Iterable<dart.core::int>});
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ getRange(dart.core::int start, dart.core::int end) → dart.core::Iterable<dart.core::int> {
dart.core::RangeError::checkValidRange(start, end, this.{dart.core::List::length}{dart.core::int});
@ -318,7 +318,7 @@ library from "org-dartlang-test:///main.dart" as main {
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeRange(dart.core::int start, dart.core::int end) → void {
dart.core::RangeError::checkValidRange(start, end, this.{dart.core::List::length}{dart.core::int});
if(end.{dart.core::num::>}(start){(dart.core::num) → dart.core::bool}) {
this.{dart.collection::ListMixin::_closeGap}(start, end){(dart.core::int, dart.core::int) → void};
this.{dart.collection::ListBase::_closeGap}(start, end){(dart.core::int, dart.core::int) → void};
}
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ fillRange(dart.core::int start, dart.core::int end, [covariant-by-class dart.core::int? fill = #C2]) → void {
@ -361,7 +361,7 @@ library from "org-dartlang-test:///main.dart" as main {
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ replaceRange(dart.core::int start, dart.core::int end, covariant-by-class dart.core::Iterable<dart.core::int> newContents) → void {
dart.core::RangeError::checkValidRange(start, end, this.{dart.core::List::length}{dart.core::int});
if(start =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} this.{dart.core::List::length}{dart.core::int}) {
this.{dart.collection::ListMixin::addAll}(newContents){(dart.core::Iterable<dart.core::int>) → void};
this.{dart.collection::ListBase::addAll}(newContents){(dart.core::Iterable<dart.core::int>) → void};
return;
}
if(!(newContents is{ForNonNullableByDefault} dart._internal::EfficientLengthIterable<dynamic>)) {
@ -371,9 +371,9 @@ library from "org-dartlang-test:///main.dart" as main {
dart.core::int insertLength = newContents.{dart.core::Iterable::length}{dart.core::int};
if(removeLength.{dart.core::num::>=}(insertLength){(dart.core::num) → dart.core::bool}) {
dart.core::int insertEnd = start.{dart.core::num::+}(insertLength){(dart.core::num) → dart.core::int};
this.{dart.collection::ListMixin::setRange}(start, insertEnd, newContents){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
this.{dart.collection::ListBase::setRange}(start, insertEnd, newContents){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
if(removeLength.{dart.core::num::>}(insertLength){(dart.core::num) → dart.core::bool}) {
this.{dart.collection::ListMixin::_closeGap}(insertEnd, end){(dart.core::int, dart.core::int) → void};
this.{dart.collection::ListBase::_closeGap}(insertEnd, end){(dart.core::int, dart.core::int) → void};
}
}
else
@ -388,7 +388,7 @@ library from "org-dartlang-test:///main.dart" as main {
this.{dart.core::List::[]=}(i, element){(dart.core::int, dart.core::int) → void};
}
else {
this.{dart.collection::ListMixin::add}(element){(dart.core::int) → void};
this.{dart.collection::ListBase::add}(element){(dart.core::int) → void};
}
i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int};
}
@ -400,12 +400,12 @@ library from "org-dartlang-test:///main.dart" as main {
dart.core::int oldLength = this.{dart.core::List::length}{dart.core::int};
dart.core::int insertEnd = start.{dart.core::num::+}(insertLength){(dart.core::num) → dart.core::int};
for (dart.core::int i = oldLength.{dart.core::num::-}(delta){(dart.core::num) → dart.core::int}; i.{dart.core::num::<}(oldLength){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
this.{dart.collection::ListMixin::add}(this.{dart.core::List::[]}(i.{dart.core::num::>}(0){(dart.core::num) → dart.core::bool} ?{dart.core::int} i : 0){(dart.core::int) → dart.core::int}){(dart.core::int) → void};
this.{dart.collection::ListBase::add}(this.{dart.core::List::[]}(i.{dart.core::num::>}(0){(dart.core::num) → dart.core::bool} ?{dart.core::int} i : 0){(dart.core::int) → dart.core::int}){(dart.core::int) → void};
}
if(insertEnd.{dart.core::num::<}(oldLength){(dart.core::num) → dart.core::bool}) {
this.{dart.collection::ListMixin::setRange}(insertEnd, oldLength, this, end){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
this.{dart.collection::ListBase::setRange}(insertEnd, oldLength, this, end){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
}
this.{dart.collection::ListMixin::setRange}(start, insertEnd, newContents){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
this.{dart.collection::ListBase::setRange}(start, insertEnd, newContents){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
}
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ indexOf(covariant-by-class dart.core::Object? element, [dart.core::int start = #C7]) → dart.core::int {
@ -452,21 +452,21 @@ library from "org-dartlang-test:///main.dart" as main {
dart._internal::checkNotNullable<dart.core::int>(index, "index");
dart.core::int length = this.{dart.core::List::length}{dart.core::int};
dart.core::RangeError::checkValueInInterval(index, 0, length, "index");
this.{dart.collection::ListMixin::add}(element){(dart.core::int) → void};
this.{dart.collection::ListBase::add}(element){(dart.core::int) → void};
if(!(index =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} length)) {
this.{dart.collection::ListMixin::setRange}(index.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}, length.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}, this, index){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
this.{dart.collection::ListBase::setRange}(index.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}, length.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}, this, index){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
this.{dart.core::List::[]=}(index, element){(dart.core::int, dart.core::int) → void};
}
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeAt(dart.core::int index) → dart.core::int {
dart.core::int result = this.{dart.core::List::[]}(index){(dart.core::int) → dart.core::int};
this.{dart.collection::ListMixin::_closeGap}(index, index.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}){(dart.core::int, dart.core::int) → void};
this.{dart.collection::ListBase::_closeGap}(index, index.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}){(dart.core::int, dart.core::int) → void};
return result;
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ insertAll(dart.core::int index, covariant-by-class dart.core::Iterable<dart.core::int> iterable) → void {
dart.core::RangeError::checkValueInInterval(index, 0, this.{dart.core::List::length}{dart.core::int}, "index");
if(index =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} this.{dart.core::List::length}{dart.core::int}) {
this.{dart.collection::ListMixin::addAll}(iterable){(dart.core::Iterable<dart.core::int>) → void};
this.{dart.collection::ListBase::addAll}(iterable){(dart.core::Iterable<dart.core::int>) → void};
return;
}
if(!(iterable is{ForNonNullableByDefault} dart._internal::EfficientLengthIterable<dynamic>) || dart.core::identical(iterable, this)) {
@ -478,7 +478,7 @@ library from "org-dartlang-test:///main.dart" as main {
}
dart.core::int oldLength = this.{dart.core::List::length}{dart.core::int};
for (dart.core::int i = oldLength.{dart.core::num::-}(insertionLength){(dart.core::num) → dart.core::int}; i.{dart.core::num::<}(oldLength){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
this.{dart.collection::ListMixin::add}(this.{dart.core::List::[]}(i.{dart.core::num::>}(0){(dart.core::num) → dart.core::bool} ?{dart.core::int} i : 0){(dart.core::int) → dart.core::int}){(dart.core::int) → void};
this.{dart.collection::ListBase::add}(this.{dart.core::List::[]}(i.{dart.core::num::>}(0){(dart.core::num) → dart.core::bool} ?{dart.core::int} i : 0){(dart.core::int) → dart.core::int}){(dart.core::int) → void};
}
if(!(iterable.{dart.core::Iterable::length}{dart.core::int} =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} insertionLength)) {
this.{dart.core::List::length} = this.{dart.core::List::length}{dart.core::int}.{dart.core::num::-}(insertionLength){(dart.core::num) → dart.core::int};
@ -486,13 +486,13 @@ library from "org-dartlang-test:///main.dart" as main {
}
dart.core::int oldCopyStart = index.{dart.core::num::+}(insertionLength){(dart.core::num) → dart.core::int};
if(oldCopyStart.{dart.core::num::<}(oldLength){(dart.core::num) → dart.core::bool}) {
this.{dart.collection::ListMixin::setRange}(oldCopyStart, oldLength, this, index){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
this.{dart.collection::ListBase::setRange}(oldCopyStart, oldLength, this, index){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
}
this.{dart.collection::ListMixin::setAll}(index, iterable){(dart.core::int, dart.core::Iterable<dart.core::int>) → void};
this.{dart.collection::ListBase::setAll}(index, iterable){(dart.core::int, dart.core::Iterable<dart.core::int>) → void};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ setAll(dart.core::int index, covariant-by-class dart.core::Iterable<dart.core::int> iterable) → void {
if(iterable is{ForNonNullableByDefault} dart.core::List<dynamic>) {
this.{dart.collection::ListMixin::setRange}(index, index.{dart.core::num::+}(iterable.{dart.core::Iterable::length}{dart.core::int}){(dart.core::num) → dart.core::int}, iterable){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
this.{dart.collection::ListBase::setRange}(index, index.{dart.core::num::+}(iterable.{dart.core::Iterable::length}{dart.core::int}){(dart.core::num) → dart.core::int}, iterable){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
}
else {
{
@ -509,10 +509,12 @@ library from "org-dartlang-test:///main.dart" as main {
get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ reversed() → dart.core::Iterable<dart.core::int>
return new dart._internal::ReversedListIterable::•<dart.core::int>(this);
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ toString() → dart.core::String
return dart.collection::IterableBase::iterableToFullString(this, "[", "]");
return dart.collection::ListBase::listToString(this);
static method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ _compareAny(dynamic a, dynamic b) → dart.core::int {
return dart.core::Comparable::compare(a as{ForNonNullableByDefault} dart.core::Comparable<dynamic>, b as{ForNonNullableByDefault} dart.core::Comparable<dynamic>);
}
static method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ listToString(dart.core::List<dart.core::Object?> list) → dart.core::String
return dart.collection::IterableBase::iterableToFullString(list, "[", "]");
}
class WithListMixin extends main::_WithListMixin&Object&ListMixin {
field dart.core::int length = 2;
@ -531,6 +533,6 @@ constants {
#C3 = dart.core::pragma {name:#C1, options:#C2}
#C4 = ""
#C5 = true
#C6 = static-tearoff dart.collection::ListMixin::_compareAny
#C6 = static-tearoff dart.collection::ListBase::_compareAny
#C7 = 0
}

View file

@ -69,130 +69,130 @@ import "cache_lookups.dart" as self;
import "dart:collection";
import "org-dartlang-testcase:///cache_lookups.dart";
abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> = core::Object with col::ListMixin<cac::_CustomList&Object&ListMixin::E%> /*isAnonymousMixin,hasConstConstructor*/ {
abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> = core::Object with col::ListBase<cac::_CustomList&Object&ListMixin::E%> /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → cac::_CustomList&Object&ListMixin<cac::_CustomList&Object&ListMixin::E%>
: super core::Object::•()
;
mixin-super-stub get first() → cac::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::first};
return super.{col::ListBase::first};
mixin-super-stub set first(covariant-by-class cac::_CustomList&Object&ListMixin::E% value) → void
return super.{col::ListMixin::first} = value;
return super.{col::ListBase::first} = value;
mixin-super-stub get last() → cac::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::last};
return super.{col::ListBase::last};
mixin-super-stub set last(covariant-by-class cac::_CustomList&Object&ListMixin::E% value) → void
return super.{col::ListMixin::last} = value;
return super.{col::ListBase::last} = value;
mixin-super-stub get iterator() → core::Iterator<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::iterator};
return super.{col::ListBase::iterator};
mixin-super-stub method elementAt(core::int index) → cac::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::elementAt}(index);
return super.{col::ListBase::elementAt}(index);
mixin-super-stub method followedBy(covariant-by-class core::Iterable<cac::_CustomList&Object&ListMixin::E%> other) → core::Iterable<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::followedBy}(other);
return super.{col::ListBase::followedBy}(other);
mixin-super-stub method forEach((cac::_CustomList&Object&ListMixin::E%) → void action) → void
return super.{col::ListMixin::forEach}(action);
return super.{col::ListBase::forEach}(action);
mixin-super-stub get isEmpty() → core::bool
return super.{col::ListMixin::isEmpty};
return super.{col::ListBase::isEmpty};
mixin-super-stub get isNotEmpty() → core::bool
return super.{col::ListMixin::isNotEmpty};
return super.{col::ListBase::isNotEmpty};
mixin-super-stub get single() → cac::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::single};
return super.{col::ListBase::single};
mixin-super-stub method contains(core::Object? element) → core::bool
return super.{col::ListMixin::contains}(element);
return super.{col::ListBase::contains}(element);
mixin-super-stub method every((cac::_CustomList&Object&ListMixin::E%) → core::bool test) → core::bool
return super.{col::ListMixin::every}(test);
return super.{col::ListBase::every}(test);
mixin-super-stub method any((cac::_CustomList&Object&ListMixin::E%) → core::bool test) → core::bool
return super.{col::ListMixin::any}(test);
return super.{col::ListBase::any}(test);
mixin-super-stub method firstWhere((cac::_CustomList&Object&ListMixin::E%) → core::bool test, {covariant-by-class () →? cac::_CustomList&Object&ListMixin::E% orElse = #C4}) → cac::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::firstWhere}(test, orElse: orElse);
return super.{col::ListBase::firstWhere}(test, orElse: orElse);
mixin-super-stub method lastWhere((cac::_CustomList&Object&ListMixin::E%) → core::bool test, {covariant-by-class () →? cac::_CustomList&Object&ListMixin::E% orElse = #C4}) → cac::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::lastWhere}(test, orElse: orElse);
return super.{col::ListBase::lastWhere}(test, orElse: orElse);
mixin-super-stub method singleWhere((cac::_CustomList&Object&ListMixin::E%) → core::bool test, {covariant-by-class () →? cac::_CustomList&Object&ListMixin::E% orElse = #C4}) → cac::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::singleWhere}(test, orElse: orElse);
return super.{col::ListBase::singleWhere}(test, orElse: orElse);
mixin-super-stub method join([core::String separator = #C5]) → core::String
return super.{col::ListMixin::join}(separator);
return super.{col::ListBase::join}(separator);
mixin-super-stub method where((cac::_CustomList&Object&ListMixin::E%) → core::bool test) → core::Iterable<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::where}(test);
return super.{col::ListBase::where}(test);
mixin-super-stub method whereType<T extends core::Object? = dynamic>() → core::Iterable<cac::_CustomList&Object&ListMixin::whereType::T%>
return super.{col::ListMixin::whereType}<cac::_CustomList&Object&ListMixin::whereType::T%>();
return super.{col::ListBase::whereType}<cac::_CustomList&Object&ListMixin::whereType::T%>();
mixin-super-stub method map<T extends core::Object? = dynamic>((cac::_CustomList&Object&ListMixin::E%) → cac::_CustomList&Object&ListMixin::map::T% f) → core::Iterable<cac::_CustomList&Object&ListMixin::map::T%>
return super.{col::ListMixin::map}<cac::_CustomList&Object&ListMixin::map::T%>(f);
return super.{col::ListBase::map}<cac::_CustomList&Object&ListMixin::map::T%>(f);
mixin-super-stub method expand<T extends core::Object? = dynamic>((cac::_CustomList&Object&ListMixin::E%) → core::Iterable<cac::_CustomList&Object&ListMixin::expand::T%> f) → core::Iterable<cac::_CustomList&Object&ListMixin::expand::T%>
return super.{col::ListMixin::expand}<cac::_CustomList&Object&ListMixin::expand::T%>(f);
return super.{col::ListBase::expand}<cac::_CustomList&Object&ListMixin::expand::T%>(f);
mixin-super-stub method reduce(covariant-by-class (cac::_CustomList&Object&ListMixin::E%, cac::_CustomList&Object&ListMixin::E%) → cac::_CustomList&Object&ListMixin::E% combine) → cac::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::reduce}(combine);
return super.{col::ListBase::reduce}(combine);
mixin-super-stub method fold<T extends core::Object? = dynamic>(cac::_CustomList&Object&ListMixin::fold::T% initialValue, (cac::_CustomList&Object&ListMixin::fold::T%, cac::_CustomList&Object&ListMixin::E%) → cac::_CustomList&Object&ListMixin::fold::T% combine) → cac::_CustomList&Object&ListMixin::fold::T%
return super.{col::ListMixin::fold}<cac::_CustomList&Object&ListMixin::fold::T%>(initialValue, combine);
return super.{col::ListBase::fold}<cac::_CustomList&Object&ListMixin::fold::T%>(initialValue, combine);
mixin-super-stub method skip(core::int count) → core::Iterable<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::skip}(count);
return super.{col::ListBase::skip}(count);
mixin-super-stub method skipWhile((cac::_CustomList&Object&ListMixin::E%) → core::bool test) → core::Iterable<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::skipWhile}(test);
return super.{col::ListBase::skipWhile}(test);
mixin-super-stub method take(core::int count) → core::Iterable<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::take}(count);
return super.{col::ListBase::take}(count);
mixin-super-stub method takeWhile((cac::_CustomList&Object&ListMixin::E%) → core::bool test) → core::Iterable<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::takeWhile}(test);
return super.{col::ListBase::takeWhile}(test);
mixin-super-stub method toList({core::bool growable = #C6}) → core::List<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::toList}(growable: growable);
return super.{col::ListBase::toList}(growable: growable);
mixin-super-stub method toSet() → core::Set<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::toSet}();
return super.{col::ListBase::toSet}();
mixin-super-stub method add(covariant-by-class cac::_CustomList&Object&ListMixin::E% element) → void
return super.{col::ListMixin::add}(element);
return super.{col::ListBase::add}(element);
mixin-super-stub method addAll(covariant-by-class core::Iterable<cac::_CustomList&Object&ListMixin::E%> iterable) → void
return super.{col::ListMixin::addAll}(iterable);
return super.{col::ListBase::addAll}(iterable);
mixin-super-stub method remove(core::Object? element) → core::bool
return super.{col::ListMixin::remove}(element);
return super.{col::ListBase::remove}(element);
mixin-super-stub method _closeGap(core::int start, core::int end) → void
return super.{col::ListMixin::_closeGap}(start, end);
return super.{col::ListBase::_closeGap}(start, end);
mixin-super-stub method removeWhere((cac::_CustomList&Object&ListMixin::E%) → core::bool test) → void
return super.{col::ListMixin::removeWhere}(test);
return super.{col::ListBase::removeWhere}(test);
mixin-super-stub method retainWhere((cac::_CustomList&Object&ListMixin::E%) → core::bool test) → void
return super.{col::ListMixin::retainWhere}(test);
return super.{col::ListBase::retainWhere}(test);
mixin-super-stub method _filter((cac::_CustomList&Object&ListMixin::E%) → core::bool test, core::bool retainMatching) → void
return super.{col::ListMixin::_filter}(test, retainMatching);
return super.{col::ListBase::_filter}(test, retainMatching);
mixin-super-stub method clear() → void
return super.{col::ListMixin::clear}();
return super.{col::ListBase::clear}();
mixin-super-stub method cast<R extends core::Object? = dynamic>() → core::List<cac::_CustomList&Object&ListMixin::cast::R%>
return super.{col::ListMixin::cast}<cac::_CustomList&Object&ListMixin::cast::R%>();
return super.{col::ListBase::cast}<cac::_CustomList&Object&ListMixin::cast::R%>();
mixin-super-stub method removeLast() → cac::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::removeLast}();
return super.{col::ListBase::removeLast}();
mixin-super-stub method sort([(cac::_CustomList&Object&ListMixin::E%, cac::_CustomList&Object&ListMixin::E%) →? core::int compare = #C4]) → void
return super.{col::ListMixin::sort}(compare);
return super.{col::ListBase::sort}(compare);
mixin-super-stub method shuffle([math::Random? random = #C4]) → void
return super.{col::ListMixin::shuffle}(random);
return super.{col::ListBase::shuffle}(random);
mixin-super-stub method asMap() → core::Map<core::int, cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::asMap}();
return super.{col::ListBase::asMap}();
mixin-super-stub operator +(covariant-by-class core::List<cac::_CustomList&Object&ListMixin::E%> other) → core::List<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::+}(other);
return super.{col::ListBase::+}(other);
mixin-super-stub method sublist(core::int start, [core::int? end = #C4]) → core::List<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::sublist}(start, end);
return super.{col::ListBase::sublist}(start, end);
mixin-super-stub method getRange(core::int start, core::int end) → core::Iterable<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::getRange}(start, end);
return super.{col::ListBase::getRange}(start, end);
mixin-super-stub method removeRange(core::int start, core::int end) → void
return super.{col::ListMixin::removeRange}(start, end);
return super.{col::ListBase::removeRange}(start, end);
mixin-super-stub method fillRange(core::int start, core::int end, [covariant-by-class cac::_CustomList&Object&ListMixin::E? fill = #C4]) → void
return super.{col::ListMixin::fillRange}(start, end, fill);
return super.{col::ListBase::fillRange}(start, end, fill);
mixin-super-stub method setRange(core::int start, core::int end, covariant-by-class core::Iterable<cac::_CustomList&Object&ListMixin::E%> iterable, [core::int skipCount = #C2]) → void
return super.{col::ListMixin::setRange}(start, end, iterable, skipCount);
return super.{col::ListBase::setRange}(start, end, iterable, skipCount);
mixin-super-stub method replaceRange(core::int start, core::int end, covariant-by-class core::Iterable<cac::_CustomList&Object&ListMixin::E%> newContents) → void
return super.{col::ListMixin::replaceRange}(start, end, newContents);
return super.{col::ListBase::replaceRange}(start, end, newContents);
mixin-super-stub method indexOf(covariant-by-class core::Object? element, [core::int start = #C2]) → core::int
return super.{col::ListMixin::indexOf}(element, start);
return super.{col::ListBase::indexOf}(element, start);
mixin-super-stub method indexWhere((cac::_CustomList&Object&ListMixin::E%) → core::bool test, [core::int start = #C2]) → core::int
return super.{col::ListMixin::indexWhere}(test, start);
return super.{col::ListBase::indexWhere}(test, start);
mixin-super-stub method lastIndexOf(covariant-by-class core::Object? element, [core::int? start = #C4]) → core::int
return super.{col::ListMixin::lastIndexOf}(element, start);
return super.{col::ListBase::lastIndexOf}(element, start);
mixin-super-stub method lastIndexWhere((cac::_CustomList&Object&ListMixin::E%) → core::bool test, [core::int? start = #C4]) → core::int
return super.{col::ListMixin::lastIndexWhere}(test, start);
return super.{col::ListBase::lastIndexWhere}(test, start);
mixin-super-stub method insert(core::int index, covariant-by-class cac::_CustomList&Object&ListMixin::E% element) → void
return super.{col::ListMixin::insert}(index, element);
return super.{col::ListBase::insert}(index, element);
mixin-super-stub method removeAt(core::int index) → cac::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::removeAt}(index);
return super.{col::ListBase::removeAt}(index);
mixin-super-stub method insertAll(core::int index, covariant-by-class core::Iterable<cac::_CustomList&Object&ListMixin::E%> iterable) → void
return super.{col::ListMixin::insertAll}(index, iterable);
return super.{col::ListBase::insertAll}(index, iterable);
mixin-super-stub method setAll(core::int index, covariant-by-class core::Iterable<cac::_CustomList&Object&ListMixin::E%> iterable) → void
return super.{col::ListMixin::setAll}(index, iterable);
return super.{col::ListBase::setAll}(index, iterable);
mixin-super-stub get reversed() → core::Iterable<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::reversed};
return super.{col::ListBase::reversed};
mixin-super-stub method toString() → core::String
return super.{col::ListMixin::toString}();
return super.{col::ListBase::toString}();
}
class CustomList<E extends core::Object? = dynamic> extends cac::_CustomList&Object&ListMixin<cac::CustomList::E%> {
final field core::List<cac::CustomList::E%> list;

View file

@ -78,7 +78,7 @@ import "cache_lookups.dart" as self;
import "dart:collection";
import "org-dartlang-testcase:///cache_lookups.dart";
abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> extends core::Object implements col::ListMixin<cac::_CustomList&Object&ListMixin::E%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> extends core::Object implements col::ListBase<cac::_CustomList&Object&ListMixin::E%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
const synthetic constructor •() → cac::_CustomList&Object&ListMixin<cac::_CustomList&Object&ListMixin::E%>
: super core::Object::•()
;
@ -122,7 +122,7 @@ abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> e
get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ isEmpty() → core::bool
return this.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} 0;
get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ isNotEmpty() → core::bool
return !this.{col::ListMixin::isEmpty}{core::bool};
return !this.{col::ListBase::isEmpty}{core::bool};
get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ single() → cac::_CustomList&Object&ListMixin::E% {
if(this.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} 0)
throw _in::IterableElementError::noElement();
@ -265,7 +265,7 @@ abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> e
return new _in::TakeWhileIterable::•<cac::_CustomList&Object&ListMixin::E%>(this, test);
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ toList({core::bool growable = #C8}) → core::List<cac::_CustomList&Object&ListMixin::E%> {
if(this.{col::ListMixin::isEmpty}{core::bool})
if(this.{col::ListBase::isEmpty}{core::bool})
return core::List::empty<cac::_CustomList&Object&ListMixin::E%>(growable: growable);
cac::_CustomList&Object&ListMixin::E% first = this.{core::List::[]}(0){(core::int) → cac::_CustomList&Object&ListMixin::E%};
core::List<cac::_CustomList&Object&ListMixin::E%> result = core::List::filled<cac::_CustomList&Object&ListMixin::E%>(this.{core::List::length}{core::int}, first, growable: growable);
@ -292,7 +292,7 @@ abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> e
cac::_CustomList&Object&ListMixin::E% element = :sync-for-iterator.{core::Iterator::current}{cac::_CustomList&Object&ListMixin::E%};
{
assert(this.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} i || (throw new core::ConcurrentModificationError::•(this)));
this.{col::ListMixin::add}(element){(cac::_CustomList&Object&ListMixin::E%) → void};
this.{col::ListBase::add}(element){(cac::_CustomList&Object&ListMixin::E%) → void};
i = i.{core::num::+}(1){(core::num) → core::int};
}
}
@ -301,7 +301,7 @@ abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> e
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ remove(core::Object? element) → core::bool {
for (core::int i = 0; i.{core::num::<}(this.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
if(this.{core::List::[]}(i){(core::int) → cac::_CustomList&Object&ListMixin::E%} =={core::Object::==}{(core::Object) → core::bool} element) {
this.{col::ListMixin::_closeGap}(i, i.{core::num::+}(1){(core::num) → core::int}){(core::int, core::int) → void};
this.{col::ListBase::_closeGap}(i, i.{core::num::+}(1){(core::num) → core::int}){(core::int, core::int) → void};
return true;
}
}
@ -319,10 +319,10 @@ abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> e
this.{core::List::length} = length.{core::num::-}(size){(core::num) → core::int};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeWhere((cac::_CustomList&Object&ListMixin::E%) → core::bool test) → void {
this.{col::ListMixin::_filter}(test, false){((cac::_CustomList&Object&ListMixin::E%) → core::bool, core::bool) → void};
this.{col::ListBase::_filter}(test, false){((cac::_CustomList&Object&ListMixin::E%) → core::bool, core::bool) → void};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ retainWhere((cac::_CustomList&Object&ListMixin::E%) → core::bool test) → void {
this.{col::ListMixin::_filter}(test, true){((cac::_CustomList&Object&ListMixin::E%) → core::bool, core::bool) → void};
this.{col::ListBase::_filter}(test, true){((cac::_CustomList&Object&ListMixin::E%) → core::bool, core::bool) → void};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ _filter((cac::_CustomList&Object&ListMixin::E%) → core::bool test, core::bool retainMatching) → void {
core::List<cac::_CustomList&Object&ListMixin::E%> retained = core::_GrowableList::•<cac::_CustomList&Object&ListMixin::E%>(0);
@ -337,7 +337,7 @@ abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> e
}
}
if(!(retained.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} this.{core::List::length}{core::int})) {
this.{col::ListMixin::setRange}(0, retained.{core::List::length}{core::int}, retained){(core::int, core::int, core::Iterable<cac::_CustomList&Object&ListMixin::E%>, [core::int]) → void};
this.{col::ListBase::setRange}(0, retained.{core::List::length}{core::int}, retained){(core::int, core::int, core::Iterable<cac::_CustomList&Object&ListMixin::E%>, [core::int]) → void};
this.{core::List::length} = retained.{core::List::length}{core::int};
}
}
@ -384,7 +384,7 @@ abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> e
if(end{core::int} == null)
throw "!";
core::RangeError::checkValidRange(start, end{core::int}, listLength);
return core::List::from<cac::_CustomList&Object&ListMixin::E%>(this.{col::ListMixin::getRange}(start, end{core::int}){(core::int, core::int) → core::Iterable<cac::_CustomList&Object&ListMixin::E%>});
return core::List::from<cac::_CustomList&Object&ListMixin::E%>(this.{col::ListBase::getRange}(start, end{core::int}){(core::int, core::int) → core::Iterable<cac::_CustomList&Object&ListMixin::E%>});
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ getRange(core::int start, core::int end) → core::Iterable<cac::_CustomList&Object&ListMixin::E%> {
core::RangeError::checkValidRange(start, end, this.{core::List::length}{core::int});
@ -393,7 +393,7 @@ abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> e
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeRange(core::int start, core::int end) → void {
core::RangeError::checkValidRange(start, end, this.{core::List::length}{core::int});
if(end.{core::num::>}(start){(core::num) → core::bool}) {
this.{col::ListMixin::_closeGap}(start, end){(core::int, core::int) → void};
this.{col::ListBase::_closeGap}(start, end){(core::int, core::int) → void};
}
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ fillRange(core::int start, core::int end, [covariant-by-class cac::_CustomList&Object&ListMixin::E? fill = #C5]) → void {
@ -436,7 +436,7 @@ abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> e
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ replaceRange(core::int start, core::int end, covariant-by-class core::Iterable<cac::_CustomList&Object&ListMixin::E%> newContents) → void {
core::RangeError::checkValidRange(start, end, this.{core::List::length}{core::int});
if(start =={core::num::==}{(core::Object) → core::bool} this.{core::List::length}{core::int}) {
this.{col::ListMixin::addAll}(newContents){(core::Iterable<cac::_CustomList&Object&ListMixin::E%>) → void};
this.{col::ListBase::addAll}(newContents){(core::Iterable<cac::_CustomList&Object&ListMixin::E%>) → void};
return;
}
if(!(newContents is{ForNonNullableByDefault} _in::EfficientLengthIterable<dynamic>)) {
@ -446,9 +446,9 @@ abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> e
core::int insertLength = newContents.{core::Iterable::length}{core::int};
if(removeLength.{core::num::>=}(insertLength){(core::num) → core::bool}) {
core::int insertEnd = start.{core::num::+}(insertLength){(core::num) → core::int};
this.{col::ListMixin::setRange}(start, insertEnd, newContents){(core::int, core::int, core::Iterable<cac::_CustomList&Object&ListMixin::E%>, [core::int]) → void};
this.{col::ListBase::setRange}(start, insertEnd, newContents){(core::int, core::int, core::Iterable<cac::_CustomList&Object&ListMixin::E%>, [core::int]) → void};
if(removeLength.{core::num::>}(insertLength){(core::num) → core::bool}) {
this.{col::ListMixin::_closeGap}(insertEnd, end){(core::int, core::int) → void};
this.{col::ListBase::_closeGap}(insertEnd, end){(core::int, core::int) → void};
}
}
else
@ -463,7 +463,7 @@ abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> e
this.{core::List::[]=}(i, element){(core::int, cac::_CustomList&Object&ListMixin::E%) → void};
}
else {
this.{col::ListMixin::add}(element){(cac::_CustomList&Object&ListMixin::E%) → void};
this.{col::ListBase::add}(element){(cac::_CustomList&Object&ListMixin::E%) → void};
}
i = i.{core::num::+}(1){(core::num) → core::int};
}
@ -475,12 +475,12 @@ abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> e
core::int oldLength = this.{core::List::length}{core::int};
core::int insertEnd = start.{core::num::+}(insertLength){(core::num) → core::int};
for (core::int i = oldLength.{core::num::-}(delta){(core::num) → core::int}; i.{core::num::<}(oldLength){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
this.{col::ListMixin::add}(this.{core::List::[]}(i.{core::num::>}(0){(core::num) → core::bool} ?{core::int} i : 0){(core::int) → cac::_CustomList&Object&ListMixin::E%}){(cac::_CustomList&Object&ListMixin::E%) → void};
this.{col::ListBase::add}(this.{core::List::[]}(i.{core::num::>}(0){(core::num) → core::bool} ?{core::int} i : 0){(core::int) → cac::_CustomList&Object&ListMixin::E%}){(cac::_CustomList&Object&ListMixin::E%) → void};
}
if(insertEnd.{core::num::<}(oldLength){(core::num) → core::bool}) {
this.{col::ListMixin::setRange}(insertEnd, oldLength, this, end){(core::int, core::int, core::Iterable<cac::_CustomList&Object&ListMixin::E%>, [core::int]) → void};
this.{col::ListBase::setRange}(insertEnd, oldLength, this, end){(core::int, core::int, core::Iterable<cac::_CustomList&Object&ListMixin::E%>, [core::int]) → void};
}
this.{col::ListMixin::setRange}(start, insertEnd, newContents){(core::int, core::int, core::Iterable<cac::_CustomList&Object&ListMixin::E%>, [core::int]) → void};
this.{col::ListBase::setRange}(start, insertEnd, newContents){(core::int, core::int, core::Iterable<cac::_CustomList&Object&ListMixin::E%>, [core::int]) → void};
}
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ indexOf(covariant-by-class core::Object? element, [core::int start = #C2]) → core::int {
@ -527,21 +527,21 @@ abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> e
_in::checkNotNullable<core::int>(index, "index");
core::int length = this.{core::List::length}{core::int};
core::RangeError::checkValueInInterval(index, 0, length, "index");
this.{col::ListMixin::add}(element){(cac::_CustomList&Object&ListMixin::E%) → void};
this.{col::ListBase::add}(element){(cac::_CustomList&Object&ListMixin::E%) → void};
if(!(index =={core::num::==}{(core::Object) → core::bool} length)) {
this.{col::ListMixin::setRange}(index.{core::num::+}(1){(core::num) → core::int}, length.{core::num::+}(1){(core::num) → core::int}, this, index){(core::int, core::int, core::Iterable<cac::_CustomList&Object&ListMixin::E%>, [core::int]) → void};
this.{col::ListBase::setRange}(index.{core::num::+}(1){(core::num) → core::int}, length.{core::num::+}(1){(core::num) → core::int}, this, index){(core::int, core::int, core::Iterable<cac::_CustomList&Object&ListMixin::E%>, [core::int]) → void};
this.{core::List::[]=}(index, element){(core::int, cac::_CustomList&Object&ListMixin::E%) → void};
}
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeAt(core::int index) → cac::_CustomList&Object&ListMixin::E% {
cac::_CustomList&Object&ListMixin::E% result = this.{core::List::[]}(index){(core::int) → cac::_CustomList&Object&ListMixin::E%};
this.{col::ListMixin::_closeGap}(index, index.{core::num::+}(1){(core::num) → core::int}){(core::int, core::int) → void};
this.{col::ListBase::_closeGap}(index, index.{core::num::+}(1){(core::num) → core::int}){(core::int, core::int) → void};
return result;
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ insertAll(core::int index, covariant-by-class core::Iterable<cac::_CustomList&Object&ListMixin::E%> iterable) → void {
core::RangeError::checkValueInInterval(index, 0, this.{core::List::length}{core::int}, "index");
if(index =={core::num::==}{(core::Object) → core::bool} this.{core::List::length}{core::int}) {
this.{col::ListMixin::addAll}(iterable){(core::Iterable<cac::_CustomList&Object&ListMixin::E%>) → void};
this.{col::ListBase::addAll}(iterable){(core::Iterable<cac::_CustomList&Object&ListMixin::E%>) → void};
return;
}
if(!(iterable is{ForNonNullableByDefault} _in::EfficientLengthIterable<dynamic>) || core::identical(iterable, this)) {
@ -553,7 +553,7 @@ abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> e
}
core::int oldLength = this.{core::List::length}{core::int};
for (core::int i = oldLength.{core::num::-}(insertionLength){(core::num) → core::int}; i.{core::num::<}(oldLength){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
this.{col::ListMixin::add}(this.{core::List::[]}(i.{core::num::>}(0){(core::num) → core::bool} ?{core::int} i : 0){(core::int) → cac::_CustomList&Object&ListMixin::E%}){(cac::_CustomList&Object&ListMixin::E%) → void};
this.{col::ListBase::add}(this.{core::List::[]}(i.{core::num::>}(0){(core::num) → core::bool} ?{core::int} i : 0){(core::int) → cac::_CustomList&Object&ListMixin::E%}){(cac::_CustomList&Object&ListMixin::E%) → void};
}
if(!(iterable.{core::Iterable::length}{core::int} =={core::num::==}{(core::Object) → core::bool} insertionLength)) {
this.{core::List::length} = this.{core::List::length}{core::int}.{core::num::-}(insertionLength){(core::num) → core::int};
@ -561,13 +561,13 @@ abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> e
}
core::int oldCopyStart = index.{core::num::+}(insertionLength){(core::num) → core::int};
if(oldCopyStart.{core::num::<}(oldLength){(core::num) → core::bool}) {
this.{col::ListMixin::setRange}(oldCopyStart, oldLength, this, index){(core::int, core::int, core::Iterable<cac::_CustomList&Object&ListMixin::E%>, [core::int]) → void};
this.{col::ListBase::setRange}(oldCopyStart, oldLength, this, index){(core::int, core::int, core::Iterable<cac::_CustomList&Object&ListMixin::E%>, [core::int]) → void};
}
this.{col::ListMixin::setAll}(index, iterable){(core::int, core::Iterable<cac::_CustomList&Object&ListMixin::E%>) → void};
this.{col::ListBase::setAll}(index, iterable){(core::int, core::Iterable<cac::_CustomList&Object&ListMixin::E%>) → void};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ setAll(core::int index, covariant-by-class core::Iterable<cac::_CustomList&Object&ListMixin::E%> iterable) → void {
if(iterable is{ForNonNullableByDefault} core::List<dynamic>) {
this.{col::ListMixin::setRange}(index, index.{core::num::+}(iterable.{core::Iterable::length}{core::int}){(core::num) → core::int}, iterable){(core::int, core::int, core::Iterable<cac::_CustomList&Object&ListMixin::E%>, [core::int]) → void};
this.{col::ListBase::setRange}(index, index.{core::num::+}(iterable.{core::Iterable::length}{core::int}){(core::num) → core::int}, iterable){(core::int, core::int, core::Iterable<cac::_CustomList&Object&ListMixin::E%>, [core::int]) → void};
}
else {
{
@ -584,10 +584,12 @@ abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> e
get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ reversed() → core::Iterable<cac::_CustomList&Object&ListMixin::E%>
return new _in::ReversedListIterable::•<cac::_CustomList&Object&ListMixin::E%>(this);
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ toString() → core::String
return col::IterableBase::iterableToFullString(this, "[", "]");
return col::ListBase::listToString(this);
static method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ _compareAny(dynamic a, dynamic b) → core::int {
return core::Comparable::compare(a as{ForNonNullableByDefault} core::Comparable<dynamic>, b as{ForNonNullableByDefault} core::Comparable<dynamic>);
}
static method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ listToString(core::List<core::Object?> list) → core::String
return col::IterableBase::iterableToFullString(list, "[", "]");
}
class CustomList<E extends core::Object? = dynamic> extends cac::_CustomList&Object&ListMixin<cac::CustomList::E%> {
final field core::List<cac::CustomList::E%> list;
@ -617,12 +619,12 @@ constants {
#C6 = core::pragma {name:#C4, options:#C5}
#C7 = ""
#C8 = true
#C9 = static-tearoff col::ListMixin::_compareAny
#C9 = static-tearoff col::ListBase::_compareAny
}
Extra constant evaluation status:
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:492:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:500:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:512:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:524:12 -> IntConstant(-1)
Extra constant evaluation: evaluated: 1164, effectively constant: 4
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:456:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:464:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:476:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:488:12 -> IntConstant(-1)
Extra constant evaluation: evaluated: 1166, effectively constant: 4

View file

@ -69,130 +69,130 @@ import "cache_lookups.dart" as self;
import "dart:collection";
import "org-dartlang-testcase:///cache_lookups.dart";
abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> = core::Object with col::ListMixin<cac::_CustomList&Object&ListMixin::E%> /*isAnonymousMixin,hasConstConstructor*/ {
abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> = core::Object with col::ListBase<cac::_CustomList&Object&ListMixin::E%> /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → cac::_CustomList&Object&ListMixin<cac::_CustomList&Object&ListMixin::E%>
: super core::Object::•()
;
mixin-super-stub get first() → cac::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::first};
return super.{col::ListBase::first};
mixin-super-stub set first(covariant-by-class cac::_CustomList&Object&ListMixin::E% value) → void
return super.{col::ListMixin::first} = value;
return super.{col::ListBase::first} = value;
mixin-super-stub get last() → cac::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::last};
return super.{col::ListBase::last};
mixin-super-stub set last(covariant-by-class cac::_CustomList&Object&ListMixin::E% value) → void
return super.{col::ListMixin::last} = value;
return super.{col::ListBase::last} = value;
mixin-super-stub get iterator() → core::Iterator<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::iterator};
return super.{col::ListBase::iterator};
mixin-super-stub method elementAt(core::int index) → cac::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::elementAt}(index);
return super.{col::ListBase::elementAt}(index);
mixin-super-stub method followedBy(covariant-by-class core::Iterable<cac::_CustomList&Object&ListMixin::E%> other) → core::Iterable<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::followedBy}(other);
return super.{col::ListBase::followedBy}(other);
mixin-super-stub method forEach((cac::_CustomList&Object&ListMixin::E%) → void action) → void
return super.{col::ListMixin::forEach}(action);
return super.{col::ListBase::forEach}(action);
mixin-super-stub get isEmpty() → core::bool
return super.{col::ListMixin::isEmpty};
return super.{col::ListBase::isEmpty};
mixin-super-stub get isNotEmpty() → core::bool
return super.{col::ListMixin::isNotEmpty};
return super.{col::ListBase::isNotEmpty};
mixin-super-stub get single() → cac::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::single};
return super.{col::ListBase::single};
mixin-super-stub method contains(core::Object? element) → core::bool
return super.{col::ListMixin::contains}(element);
return super.{col::ListBase::contains}(element);
mixin-super-stub method every((cac::_CustomList&Object&ListMixin::E%) → core::bool test) → core::bool
return super.{col::ListMixin::every}(test);
return super.{col::ListBase::every}(test);
mixin-super-stub method any((cac::_CustomList&Object&ListMixin::E%) → core::bool test) → core::bool
return super.{col::ListMixin::any}(test);
return super.{col::ListBase::any}(test);
mixin-super-stub method firstWhere((cac::_CustomList&Object&ListMixin::E%) → core::bool test, {covariant-by-class () →? cac::_CustomList&Object&ListMixin::E% orElse = #C4}) → cac::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::firstWhere}(test, orElse: orElse);
return super.{col::ListBase::firstWhere}(test, orElse: orElse);
mixin-super-stub method lastWhere((cac::_CustomList&Object&ListMixin::E%) → core::bool test, {covariant-by-class () →? cac::_CustomList&Object&ListMixin::E% orElse = #C4}) → cac::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::lastWhere}(test, orElse: orElse);
return super.{col::ListBase::lastWhere}(test, orElse: orElse);
mixin-super-stub method singleWhere((cac::_CustomList&Object&ListMixin::E%) → core::bool test, {covariant-by-class () →? cac::_CustomList&Object&ListMixin::E% orElse = #C4}) → cac::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::singleWhere}(test, orElse: orElse);
return super.{col::ListBase::singleWhere}(test, orElse: orElse);
mixin-super-stub method join([core::String separator = #C5]) → core::String
return super.{col::ListMixin::join}(separator);
return super.{col::ListBase::join}(separator);
mixin-super-stub method where((cac::_CustomList&Object&ListMixin::E%) → core::bool test) → core::Iterable<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::where}(test);
return super.{col::ListBase::where}(test);
mixin-super-stub method whereType<T extends core::Object? = dynamic>() → core::Iterable<cac::_CustomList&Object&ListMixin::whereType::T%>
return super.{col::ListMixin::whereType}<cac::_CustomList&Object&ListMixin::whereType::T%>();
return super.{col::ListBase::whereType}<cac::_CustomList&Object&ListMixin::whereType::T%>();
mixin-super-stub method map<T extends core::Object? = dynamic>((cac::_CustomList&Object&ListMixin::E%) → cac::_CustomList&Object&ListMixin::map::T% f) → core::Iterable<cac::_CustomList&Object&ListMixin::map::T%>
return super.{col::ListMixin::map}<cac::_CustomList&Object&ListMixin::map::T%>(f);
return super.{col::ListBase::map}<cac::_CustomList&Object&ListMixin::map::T%>(f);
mixin-super-stub method expand<T extends core::Object? = dynamic>((cac::_CustomList&Object&ListMixin::E%) → core::Iterable<cac::_CustomList&Object&ListMixin::expand::T%> f) → core::Iterable<cac::_CustomList&Object&ListMixin::expand::T%>
return super.{col::ListMixin::expand}<cac::_CustomList&Object&ListMixin::expand::T%>(f);
return super.{col::ListBase::expand}<cac::_CustomList&Object&ListMixin::expand::T%>(f);
mixin-super-stub method reduce(covariant-by-class (cac::_CustomList&Object&ListMixin::E%, cac::_CustomList&Object&ListMixin::E%) → cac::_CustomList&Object&ListMixin::E% combine) → cac::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::reduce}(combine);
return super.{col::ListBase::reduce}(combine);
mixin-super-stub method fold<T extends core::Object? = dynamic>(cac::_CustomList&Object&ListMixin::fold::T% initialValue, (cac::_CustomList&Object&ListMixin::fold::T%, cac::_CustomList&Object&ListMixin::E%) → cac::_CustomList&Object&ListMixin::fold::T% combine) → cac::_CustomList&Object&ListMixin::fold::T%
return super.{col::ListMixin::fold}<cac::_CustomList&Object&ListMixin::fold::T%>(initialValue, combine);
return super.{col::ListBase::fold}<cac::_CustomList&Object&ListMixin::fold::T%>(initialValue, combine);
mixin-super-stub method skip(core::int count) → core::Iterable<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::skip}(count);
return super.{col::ListBase::skip}(count);
mixin-super-stub method skipWhile((cac::_CustomList&Object&ListMixin::E%) → core::bool test) → core::Iterable<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::skipWhile}(test);
return super.{col::ListBase::skipWhile}(test);
mixin-super-stub method take(core::int count) → core::Iterable<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::take}(count);
return super.{col::ListBase::take}(count);
mixin-super-stub method takeWhile((cac::_CustomList&Object&ListMixin::E%) → core::bool test) → core::Iterable<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::takeWhile}(test);
return super.{col::ListBase::takeWhile}(test);
mixin-super-stub method toList({core::bool growable = #C6}) → core::List<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::toList}(growable: growable);
return super.{col::ListBase::toList}(growable: growable);
mixin-super-stub method toSet() → core::Set<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::toSet}();
return super.{col::ListBase::toSet}();
mixin-super-stub method add(covariant-by-class cac::_CustomList&Object&ListMixin::E% element) → void
return super.{col::ListMixin::add}(element);
return super.{col::ListBase::add}(element);
mixin-super-stub method addAll(covariant-by-class core::Iterable<cac::_CustomList&Object&ListMixin::E%> iterable) → void
return super.{col::ListMixin::addAll}(iterable);
return super.{col::ListBase::addAll}(iterable);
mixin-super-stub method remove(core::Object? element) → core::bool
return super.{col::ListMixin::remove}(element);
return super.{col::ListBase::remove}(element);
mixin-super-stub method _closeGap(core::int start, core::int end) → void
return super.{col::ListMixin::_closeGap}(start, end);
return super.{col::ListBase::_closeGap}(start, end);
mixin-super-stub method removeWhere((cac::_CustomList&Object&ListMixin::E%) → core::bool test) → void
return super.{col::ListMixin::removeWhere}(test);
return super.{col::ListBase::removeWhere}(test);
mixin-super-stub method retainWhere((cac::_CustomList&Object&ListMixin::E%) → core::bool test) → void
return super.{col::ListMixin::retainWhere}(test);
return super.{col::ListBase::retainWhere}(test);
mixin-super-stub method _filter((cac::_CustomList&Object&ListMixin::E%) → core::bool test, core::bool retainMatching) → void
return super.{col::ListMixin::_filter}(test, retainMatching);
return super.{col::ListBase::_filter}(test, retainMatching);
mixin-super-stub method clear() → void
return super.{col::ListMixin::clear}();
return super.{col::ListBase::clear}();
mixin-super-stub method cast<R extends core::Object? = dynamic>() → core::List<cac::_CustomList&Object&ListMixin::cast::R%>
return super.{col::ListMixin::cast}<cac::_CustomList&Object&ListMixin::cast::R%>();
return super.{col::ListBase::cast}<cac::_CustomList&Object&ListMixin::cast::R%>();
mixin-super-stub method removeLast() → cac::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::removeLast}();
return super.{col::ListBase::removeLast}();
mixin-super-stub method sort([(cac::_CustomList&Object&ListMixin::E%, cac::_CustomList&Object&ListMixin::E%) →? core::int compare = #C4]) → void
return super.{col::ListMixin::sort}(compare);
return super.{col::ListBase::sort}(compare);
mixin-super-stub method shuffle([math::Random? random = #C4]) → void
return super.{col::ListMixin::shuffle}(random);
return super.{col::ListBase::shuffle}(random);
mixin-super-stub method asMap() → core::Map<core::int, cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::asMap}();
return super.{col::ListBase::asMap}();
mixin-super-stub operator +(covariant-by-class core::List<cac::_CustomList&Object&ListMixin::E%> other) → core::List<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::+}(other);
return super.{col::ListBase::+}(other);
mixin-super-stub method sublist(core::int start, [core::int? end = #C4]) → core::List<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::sublist}(start, end);
return super.{col::ListBase::sublist}(start, end);
mixin-super-stub method getRange(core::int start, core::int end) → core::Iterable<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::getRange}(start, end);
return super.{col::ListBase::getRange}(start, end);
mixin-super-stub method removeRange(core::int start, core::int end) → void
return super.{col::ListMixin::removeRange}(start, end);
return super.{col::ListBase::removeRange}(start, end);
mixin-super-stub method fillRange(core::int start, core::int end, [covariant-by-class cac::_CustomList&Object&ListMixin::E? fill = #C4]) → void
return super.{col::ListMixin::fillRange}(start, end, fill);
return super.{col::ListBase::fillRange}(start, end, fill);
mixin-super-stub method setRange(core::int start, core::int end, covariant-by-class core::Iterable<cac::_CustomList&Object&ListMixin::E%> iterable, [core::int skipCount = #C2]) → void
return super.{col::ListMixin::setRange}(start, end, iterable, skipCount);
return super.{col::ListBase::setRange}(start, end, iterable, skipCount);
mixin-super-stub method replaceRange(core::int start, core::int end, covariant-by-class core::Iterable<cac::_CustomList&Object&ListMixin::E%> newContents) → void
return super.{col::ListMixin::replaceRange}(start, end, newContents);
return super.{col::ListBase::replaceRange}(start, end, newContents);
mixin-super-stub method indexOf(covariant-by-class core::Object? element, [core::int start = #C2]) → core::int
return super.{col::ListMixin::indexOf}(element, start);
return super.{col::ListBase::indexOf}(element, start);
mixin-super-stub method indexWhere((cac::_CustomList&Object&ListMixin::E%) → core::bool test, [core::int start = #C2]) → core::int
return super.{col::ListMixin::indexWhere}(test, start);
return super.{col::ListBase::indexWhere}(test, start);
mixin-super-stub method lastIndexOf(covariant-by-class core::Object? element, [core::int? start = #C4]) → core::int
return super.{col::ListMixin::lastIndexOf}(element, start);
return super.{col::ListBase::lastIndexOf}(element, start);
mixin-super-stub method lastIndexWhere((cac::_CustomList&Object&ListMixin::E%) → core::bool test, [core::int? start = #C4]) → core::int
return super.{col::ListMixin::lastIndexWhere}(test, start);
return super.{col::ListBase::lastIndexWhere}(test, start);
mixin-super-stub method insert(core::int index, covariant-by-class cac::_CustomList&Object&ListMixin::E% element) → void
return super.{col::ListMixin::insert}(index, element);
return super.{col::ListBase::insert}(index, element);
mixin-super-stub method removeAt(core::int index) → cac::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::removeAt}(index);
return super.{col::ListBase::removeAt}(index);
mixin-super-stub method insertAll(core::int index, covariant-by-class core::Iterable<cac::_CustomList&Object&ListMixin::E%> iterable) → void
return super.{col::ListMixin::insertAll}(index, iterable);
return super.{col::ListBase::insertAll}(index, iterable);
mixin-super-stub method setAll(core::int index, covariant-by-class core::Iterable<cac::_CustomList&Object&ListMixin::E%> iterable) → void
return super.{col::ListMixin::setAll}(index, iterable);
return super.{col::ListBase::setAll}(index, iterable);
mixin-super-stub get reversed() → core::Iterable<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::reversed};
return super.{col::ListBase::reversed};
mixin-super-stub method toString() → core::String
return super.{col::ListMixin::toString}();
return super.{col::ListBase::toString}();
}
class CustomList<E extends core::Object? = dynamic> extends cac::_CustomList&Object&ListMixin<cac::CustomList::E%> {
final field core::List<cac::CustomList::E%> list;

View file

@ -69,130 +69,130 @@ import "cache_lookups.dart" as self;
import "dart:collection";
import "org-dartlang-testcase:///cache_lookups.dart";
abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> = core::Object with col::ListMixin<cac::_CustomList&Object&ListMixin::E%> /*isAnonymousMixin,hasConstConstructor*/ {
abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> = core::Object with col::ListBase<cac::_CustomList&Object&ListMixin::E%> /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → cac::_CustomList&Object&ListMixin<cac::_CustomList&Object&ListMixin::E%>
: super core::Object::•()
;
mixin-super-stub get first() → cac::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::first};
return super.{col::ListBase::first};
mixin-super-stub set first(covariant-by-class cac::_CustomList&Object&ListMixin::E% value) → void
return super.{col::ListMixin::first} = value;
return super.{col::ListBase::first} = value;
mixin-super-stub get last() → cac::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::last};
return super.{col::ListBase::last};
mixin-super-stub set last(covariant-by-class cac::_CustomList&Object&ListMixin::E% value) → void
return super.{col::ListMixin::last} = value;
return super.{col::ListBase::last} = value;
mixin-super-stub get iterator() → core::Iterator<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::iterator};
return super.{col::ListBase::iterator};
mixin-super-stub method elementAt(core::int index) → cac::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::elementAt}(index);
return super.{col::ListBase::elementAt}(index);
mixin-super-stub method followedBy(covariant-by-class core::Iterable<cac::_CustomList&Object&ListMixin::E%> other) → core::Iterable<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::followedBy}(other);
return super.{col::ListBase::followedBy}(other);
mixin-super-stub method forEach((cac::_CustomList&Object&ListMixin::E%) → void action) → void
return super.{col::ListMixin::forEach}(action);
return super.{col::ListBase::forEach}(action);
mixin-super-stub get isEmpty() → core::bool
return super.{col::ListMixin::isEmpty};
return super.{col::ListBase::isEmpty};
mixin-super-stub get isNotEmpty() → core::bool
return super.{col::ListMixin::isNotEmpty};
return super.{col::ListBase::isNotEmpty};
mixin-super-stub get single() → cac::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::single};
return super.{col::ListBase::single};
mixin-super-stub method contains(core::Object? element) → core::bool
return super.{col::ListMixin::contains}(element);
return super.{col::ListBase::contains}(element);
mixin-super-stub method every((cac::_CustomList&Object&ListMixin::E%) → core::bool test) → core::bool
return super.{col::ListMixin::every}(test);
return super.{col::ListBase::every}(test);
mixin-super-stub method any((cac::_CustomList&Object&ListMixin::E%) → core::bool test) → core::bool
return super.{col::ListMixin::any}(test);
return super.{col::ListBase::any}(test);
mixin-super-stub method firstWhere((cac::_CustomList&Object&ListMixin::E%) → core::bool test, {covariant-by-class () →? cac::_CustomList&Object&ListMixin::E% orElse = #C4}) → cac::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::firstWhere}(test, orElse: orElse);
return super.{col::ListBase::firstWhere}(test, orElse: orElse);
mixin-super-stub method lastWhere((cac::_CustomList&Object&ListMixin::E%) → core::bool test, {covariant-by-class () →? cac::_CustomList&Object&ListMixin::E% orElse = #C4}) → cac::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::lastWhere}(test, orElse: orElse);
return super.{col::ListBase::lastWhere}(test, orElse: orElse);
mixin-super-stub method singleWhere((cac::_CustomList&Object&ListMixin::E%) → core::bool test, {covariant-by-class () →? cac::_CustomList&Object&ListMixin::E% orElse = #C4}) → cac::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::singleWhere}(test, orElse: orElse);
return super.{col::ListBase::singleWhere}(test, orElse: orElse);
mixin-super-stub method join([core::String separator = #C5]) → core::String
return super.{col::ListMixin::join}(separator);
return super.{col::ListBase::join}(separator);
mixin-super-stub method where((cac::_CustomList&Object&ListMixin::E%) → core::bool test) → core::Iterable<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::where}(test);
return super.{col::ListBase::where}(test);
mixin-super-stub method whereType<T extends core::Object? = dynamic>() → core::Iterable<cac::_CustomList&Object&ListMixin::whereType::T%>
return super.{col::ListMixin::whereType}<cac::_CustomList&Object&ListMixin::whereType::T%>();
return super.{col::ListBase::whereType}<cac::_CustomList&Object&ListMixin::whereType::T%>();
mixin-super-stub method map<T extends core::Object? = dynamic>((cac::_CustomList&Object&ListMixin::E%) → cac::_CustomList&Object&ListMixin::map::T% f) → core::Iterable<cac::_CustomList&Object&ListMixin::map::T%>
return super.{col::ListMixin::map}<cac::_CustomList&Object&ListMixin::map::T%>(f);
return super.{col::ListBase::map}<cac::_CustomList&Object&ListMixin::map::T%>(f);
mixin-super-stub method expand<T extends core::Object? = dynamic>((cac::_CustomList&Object&ListMixin::E%) → core::Iterable<cac::_CustomList&Object&ListMixin::expand::T%> f) → core::Iterable<cac::_CustomList&Object&ListMixin::expand::T%>
return super.{col::ListMixin::expand}<cac::_CustomList&Object&ListMixin::expand::T%>(f);
return super.{col::ListBase::expand}<cac::_CustomList&Object&ListMixin::expand::T%>(f);
mixin-super-stub method reduce(covariant-by-class (cac::_CustomList&Object&ListMixin::E%, cac::_CustomList&Object&ListMixin::E%) → cac::_CustomList&Object&ListMixin::E% combine) → cac::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::reduce}(combine);
return super.{col::ListBase::reduce}(combine);
mixin-super-stub method fold<T extends core::Object? = dynamic>(cac::_CustomList&Object&ListMixin::fold::T% initialValue, (cac::_CustomList&Object&ListMixin::fold::T%, cac::_CustomList&Object&ListMixin::E%) → cac::_CustomList&Object&ListMixin::fold::T% combine) → cac::_CustomList&Object&ListMixin::fold::T%
return super.{col::ListMixin::fold}<cac::_CustomList&Object&ListMixin::fold::T%>(initialValue, combine);
return super.{col::ListBase::fold}<cac::_CustomList&Object&ListMixin::fold::T%>(initialValue, combine);
mixin-super-stub method skip(core::int count) → core::Iterable<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::skip}(count);
return super.{col::ListBase::skip}(count);
mixin-super-stub method skipWhile((cac::_CustomList&Object&ListMixin::E%) → core::bool test) → core::Iterable<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::skipWhile}(test);
return super.{col::ListBase::skipWhile}(test);
mixin-super-stub method take(core::int count) → core::Iterable<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::take}(count);
return super.{col::ListBase::take}(count);
mixin-super-stub method takeWhile((cac::_CustomList&Object&ListMixin::E%) → core::bool test) → core::Iterable<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::takeWhile}(test);
return super.{col::ListBase::takeWhile}(test);
mixin-super-stub method toList({core::bool growable = #C6}) → core::List<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::toList}(growable: growable);
return super.{col::ListBase::toList}(growable: growable);
mixin-super-stub method toSet() → core::Set<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::toSet}();
return super.{col::ListBase::toSet}();
mixin-super-stub method add(covariant-by-class cac::_CustomList&Object&ListMixin::E% element) → void
return super.{col::ListMixin::add}(element);
return super.{col::ListBase::add}(element);
mixin-super-stub method addAll(covariant-by-class core::Iterable<cac::_CustomList&Object&ListMixin::E%> iterable) → void
return super.{col::ListMixin::addAll}(iterable);
return super.{col::ListBase::addAll}(iterable);
mixin-super-stub method remove(core::Object? element) → core::bool
return super.{col::ListMixin::remove}(element);
return super.{col::ListBase::remove}(element);
mixin-super-stub method _closeGap(core::int start, core::int end) → void
return super.{col::ListMixin::_closeGap}(start, end);
return super.{col::ListBase::_closeGap}(start, end);
mixin-super-stub method removeWhere((cac::_CustomList&Object&ListMixin::E%) → core::bool test) → void
return super.{col::ListMixin::removeWhere}(test);
return super.{col::ListBase::removeWhere}(test);
mixin-super-stub method retainWhere((cac::_CustomList&Object&ListMixin::E%) → core::bool test) → void
return super.{col::ListMixin::retainWhere}(test);
return super.{col::ListBase::retainWhere}(test);
mixin-super-stub method _filter((cac::_CustomList&Object&ListMixin::E%) → core::bool test, core::bool retainMatching) → void
return super.{col::ListMixin::_filter}(test, retainMatching);
return super.{col::ListBase::_filter}(test, retainMatching);
mixin-super-stub method clear() → void
return super.{col::ListMixin::clear}();
return super.{col::ListBase::clear}();
mixin-super-stub method cast<R extends core::Object? = dynamic>() → core::List<cac::_CustomList&Object&ListMixin::cast::R%>
return super.{col::ListMixin::cast}<cac::_CustomList&Object&ListMixin::cast::R%>();
return super.{col::ListBase::cast}<cac::_CustomList&Object&ListMixin::cast::R%>();
mixin-super-stub method removeLast() → cac::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::removeLast}();
return super.{col::ListBase::removeLast}();
mixin-super-stub method sort([(cac::_CustomList&Object&ListMixin::E%, cac::_CustomList&Object&ListMixin::E%) →? core::int compare = #C4]) → void
return super.{col::ListMixin::sort}(compare);
return super.{col::ListBase::sort}(compare);
mixin-super-stub method shuffle([math::Random? random = #C4]) → void
return super.{col::ListMixin::shuffle}(random);
return super.{col::ListBase::shuffle}(random);
mixin-super-stub method asMap() → core::Map<core::int, cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::asMap}();
return super.{col::ListBase::asMap}();
mixin-super-stub operator +(covariant-by-class core::List<cac::_CustomList&Object&ListMixin::E%> other) → core::List<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::+}(other);
return super.{col::ListBase::+}(other);
mixin-super-stub method sublist(core::int start, [core::int? end = #C4]) → core::List<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::sublist}(start, end);
return super.{col::ListBase::sublist}(start, end);
mixin-super-stub method getRange(core::int start, core::int end) → core::Iterable<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::getRange}(start, end);
return super.{col::ListBase::getRange}(start, end);
mixin-super-stub method removeRange(core::int start, core::int end) → void
return super.{col::ListMixin::removeRange}(start, end);
return super.{col::ListBase::removeRange}(start, end);
mixin-super-stub method fillRange(core::int start, core::int end, [covariant-by-class cac::_CustomList&Object&ListMixin::E? fill = #C4]) → void
return super.{col::ListMixin::fillRange}(start, end, fill);
return super.{col::ListBase::fillRange}(start, end, fill);
mixin-super-stub method setRange(core::int start, core::int end, covariant-by-class core::Iterable<cac::_CustomList&Object&ListMixin::E%> iterable, [core::int skipCount = #C2]) → void
return super.{col::ListMixin::setRange}(start, end, iterable, skipCount);
return super.{col::ListBase::setRange}(start, end, iterable, skipCount);
mixin-super-stub method replaceRange(core::int start, core::int end, covariant-by-class core::Iterable<cac::_CustomList&Object&ListMixin::E%> newContents) → void
return super.{col::ListMixin::replaceRange}(start, end, newContents);
return super.{col::ListBase::replaceRange}(start, end, newContents);
mixin-super-stub method indexOf(covariant-by-class core::Object? element, [core::int start = #C2]) → core::int
return super.{col::ListMixin::indexOf}(element, start);
return super.{col::ListBase::indexOf}(element, start);
mixin-super-stub method indexWhere((cac::_CustomList&Object&ListMixin::E%) → core::bool test, [core::int start = #C2]) → core::int
return super.{col::ListMixin::indexWhere}(test, start);
return super.{col::ListBase::indexWhere}(test, start);
mixin-super-stub method lastIndexOf(covariant-by-class core::Object? element, [core::int? start = #C4]) → core::int
return super.{col::ListMixin::lastIndexOf}(element, start);
return super.{col::ListBase::lastIndexOf}(element, start);
mixin-super-stub method lastIndexWhere((cac::_CustomList&Object&ListMixin::E%) → core::bool test, [core::int? start = #C4]) → core::int
return super.{col::ListMixin::lastIndexWhere}(test, start);
return super.{col::ListBase::lastIndexWhere}(test, start);
mixin-super-stub method insert(core::int index, covariant-by-class cac::_CustomList&Object&ListMixin::E% element) → void
return super.{col::ListMixin::insert}(index, element);
return super.{col::ListBase::insert}(index, element);
mixin-super-stub method removeAt(core::int index) → cac::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::removeAt}(index);
return super.{col::ListBase::removeAt}(index);
mixin-super-stub method insertAll(core::int index, covariant-by-class core::Iterable<cac::_CustomList&Object&ListMixin::E%> iterable) → void
return super.{col::ListMixin::insertAll}(index, iterable);
return super.{col::ListBase::insertAll}(index, iterable);
mixin-super-stub method setAll(core::int index, covariant-by-class core::Iterable<cac::_CustomList&Object&ListMixin::E%> iterable) → void
return super.{col::ListMixin::setAll}(index, iterable);
return super.{col::ListBase::setAll}(index, iterable);
mixin-super-stub get reversed() → core::Iterable<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::reversed};
return super.{col::ListBase::reversed};
mixin-super-stub method toString() → core::String
return super.{col::ListMixin::toString}();
return super.{col::ListBase::toString}();
}
class CustomList<E extends core::Object? = dynamic> extends cac::_CustomList&Object&ListMixin<cac::CustomList::E%> {
final field core::List<cac::CustomList::E%> list;

View file

@ -27,130 +27,130 @@ import "dart:math" as math;
import "dart:collection";
import "org-dartlang-testcase:///cache_lookups.dart";
abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> = core::Object with col::ListMixin<self2::_CustomList&Object&ListMixin::E%> /*isAnonymousMixin,hasConstConstructor*/ {
abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> = core::Object with col::ListBase<self2::_CustomList&Object&ListMixin::E%> /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self2::_CustomList&Object&ListMixin<self2::_CustomList&Object&ListMixin::E%>
: super core::Object::•()
;
mixin-super-stub get first() → self2::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::first};
return super.{col::ListBase::first};
mixin-super-stub set first(covariant-by-class self2::_CustomList&Object&ListMixin::E% value) → void
return super.{col::ListMixin::first} = value;
return super.{col::ListBase::first} = value;
mixin-super-stub get last() → self2::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::last};
return super.{col::ListBase::last};
mixin-super-stub set last(covariant-by-class self2::_CustomList&Object&ListMixin::E% value) → void
return super.{col::ListMixin::last} = value;
return super.{col::ListBase::last} = value;
mixin-super-stub get iterator() → core::Iterator<self2::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::iterator};
return super.{col::ListBase::iterator};
mixin-super-stub method elementAt(core::int index) → self2::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::elementAt}(index);
return super.{col::ListBase::elementAt}(index);
mixin-super-stub method followedBy(covariant-by-class core::Iterable<self2::_CustomList&Object&ListMixin::E%> other) → core::Iterable<self2::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::followedBy}(other);
return super.{col::ListBase::followedBy}(other);
mixin-super-stub method forEach((self2::_CustomList&Object&ListMixin::E%) → void action) → void
return super.{col::ListMixin::forEach}(action);
return super.{col::ListBase::forEach}(action);
mixin-super-stub get isEmpty() → core::bool
return super.{col::ListMixin::isEmpty};
return super.{col::ListBase::isEmpty};
mixin-super-stub get isNotEmpty() → core::bool
return super.{col::ListMixin::isNotEmpty};
return super.{col::ListBase::isNotEmpty};
mixin-super-stub get single() → self2::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::single};
return super.{col::ListBase::single};
mixin-super-stub method contains(core::Object? element) → core::bool
return super.{col::ListMixin::contains}(element);
return super.{col::ListBase::contains}(element);
mixin-super-stub method every((self2::_CustomList&Object&ListMixin::E%) → core::bool test) → core::bool
return super.{col::ListMixin::every}(test);
return super.{col::ListBase::every}(test);
mixin-super-stub method any((self2::_CustomList&Object&ListMixin::E%) → core::bool test) → core::bool
return super.{col::ListMixin::any}(test);
return super.{col::ListBase::any}(test);
mixin-super-stub method firstWhere((self2::_CustomList&Object&ListMixin::E%) → core::bool test, {covariant-by-class () →? self2::_CustomList&Object&ListMixin::E% orElse}) → self2::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::firstWhere}(test, orElse: orElse);
return super.{col::ListBase::firstWhere}(test, orElse: orElse);
mixin-super-stub method lastWhere((self2::_CustomList&Object&ListMixin::E%) → core::bool test, {covariant-by-class () →? self2::_CustomList&Object&ListMixin::E% orElse}) → self2::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::lastWhere}(test, orElse: orElse);
return super.{col::ListBase::lastWhere}(test, orElse: orElse);
mixin-super-stub method singleWhere((self2::_CustomList&Object&ListMixin::E%) → core::bool test, {covariant-by-class () →? self2::_CustomList&Object&ListMixin::E% orElse}) → self2::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::singleWhere}(test, orElse: orElse);
return super.{col::ListBase::singleWhere}(test, orElse: orElse);
mixin-super-stub method join([core::String separator]) → core::String
return super.{col::ListMixin::join}(separator);
return super.{col::ListBase::join}(separator);
mixin-super-stub method where((self2::_CustomList&Object&ListMixin::E%) → core::bool test) → core::Iterable<self2::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::where}(test);
return super.{col::ListBase::where}(test);
mixin-super-stub method whereType<T extends core::Object? = dynamic>() → core::Iterable<self2::_CustomList&Object&ListMixin::whereType::T%>
return super.{col::ListMixin::whereType}<self2::_CustomList&Object&ListMixin::whereType::T%>();
return super.{col::ListBase::whereType}<self2::_CustomList&Object&ListMixin::whereType::T%>();
mixin-super-stub method map<T extends core::Object? = dynamic>((self2::_CustomList&Object&ListMixin::E%) → self2::_CustomList&Object&ListMixin::map::T% f) → core::Iterable<self2::_CustomList&Object&ListMixin::map::T%>
return super.{col::ListMixin::map}<self2::_CustomList&Object&ListMixin::map::T%>(f);
return super.{col::ListBase::map}<self2::_CustomList&Object&ListMixin::map::T%>(f);
mixin-super-stub method expand<T extends core::Object? = dynamic>((self2::_CustomList&Object&ListMixin::E%) → core::Iterable<self2::_CustomList&Object&ListMixin::expand::T%> f) → core::Iterable<self2::_CustomList&Object&ListMixin::expand::T%>
return super.{col::ListMixin::expand}<self2::_CustomList&Object&ListMixin::expand::T%>(f);
return super.{col::ListBase::expand}<self2::_CustomList&Object&ListMixin::expand::T%>(f);
mixin-super-stub method reduce(covariant-by-class (self2::_CustomList&Object&ListMixin::E%, self2::_CustomList&Object&ListMixin::E%) → self2::_CustomList&Object&ListMixin::E% combine) → self2::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::reduce}(combine);
return super.{col::ListBase::reduce}(combine);
mixin-super-stub method fold<T extends core::Object? = dynamic>(self2::_CustomList&Object&ListMixin::fold::T% initialValue, (self2::_CustomList&Object&ListMixin::fold::T%, self2::_CustomList&Object&ListMixin::E%) → self2::_CustomList&Object&ListMixin::fold::T% combine) → self2::_CustomList&Object&ListMixin::fold::T%
return super.{col::ListMixin::fold}<self2::_CustomList&Object&ListMixin::fold::T%>(initialValue, combine);
return super.{col::ListBase::fold}<self2::_CustomList&Object&ListMixin::fold::T%>(initialValue, combine);
mixin-super-stub method skip(core::int count) → core::Iterable<self2::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::skip}(count);
return super.{col::ListBase::skip}(count);
mixin-super-stub method skipWhile((self2::_CustomList&Object&ListMixin::E%) → core::bool test) → core::Iterable<self2::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::skipWhile}(test);
return super.{col::ListBase::skipWhile}(test);
mixin-super-stub method take(core::int count) → core::Iterable<self2::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::take}(count);
return super.{col::ListBase::take}(count);
mixin-super-stub method takeWhile((self2::_CustomList&Object&ListMixin::E%) → core::bool test) → core::Iterable<self2::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::takeWhile}(test);
return super.{col::ListBase::takeWhile}(test);
mixin-super-stub method toList({core::bool growable}) → core::List<self2::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::toList}(growable: growable);
return super.{col::ListBase::toList}(growable: growable);
mixin-super-stub method toSet() → core::Set<self2::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::toSet}();
return super.{col::ListBase::toSet}();
mixin-super-stub method add(covariant-by-class self2::_CustomList&Object&ListMixin::E% element) → void
return super.{col::ListMixin::add}(element);
return super.{col::ListBase::add}(element);
mixin-super-stub method addAll(covariant-by-class core::Iterable<self2::_CustomList&Object&ListMixin::E%> iterable) → void
return super.{col::ListMixin::addAll}(iterable);
return super.{col::ListBase::addAll}(iterable);
mixin-super-stub method remove(core::Object? element) → core::bool
return super.{col::ListMixin::remove}(element);
return super.{col::ListBase::remove}(element);
mixin-super-stub method _closeGap(core::int start, core::int end) → void
return super.{col::ListMixin::_closeGap}(start, end);
return super.{col::ListBase::_closeGap}(start, end);
mixin-super-stub method removeWhere((self2::_CustomList&Object&ListMixin::E%) → core::bool test) → void
return super.{col::ListMixin::removeWhere}(test);
return super.{col::ListBase::removeWhere}(test);
mixin-super-stub method retainWhere((self2::_CustomList&Object&ListMixin::E%) → core::bool test) → void
return super.{col::ListMixin::retainWhere}(test);
return super.{col::ListBase::retainWhere}(test);
mixin-super-stub method _filter((self2::_CustomList&Object&ListMixin::E%) → core::bool test, core::bool retainMatching) → void
return super.{col::ListMixin::_filter}(test, retainMatching);
return super.{col::ListBase::_filter}(test, retainMatching);
mixin-super-stub method clear() → void
return super.{col::ListMixin::clear}();
return super.{col::ListBase::clear}();
mixin-super-stub method cast<R extends core::Object? = dynamic>() → core::List<self2::_CustomList&Object&ListMixin::cast::R%>
return super.{col::ListMixin::cast}<self2::_CustomList&Object&ListMixin::cast::R%>();
return super.{col::ListBase::cast}<self2::_CustomList&Object&ListMixin::cast::R%>();
mixin-super-stub method removeLast() → self2::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::removeLast}();
return super.{col::ListBase::removeLast}();
mixin-super-stub method sort([(self2::_CustomList&Object&ListMixin::E%, self2::_CustomList&Object&ListMixin::E%) →? core::int compare]) → void
return super.{col::ListMixin::sort}(compare);
return super.{col::ListBase::sort}(compare);
mixin-super-stub method shuffle([math::Random? random]) → void
return super.{col::ListMixin::shuffle}(random);
return super.{col::ListBase::shuffle}(random);
mixin-super-stub method asMap() → core::Map<core::int, self2::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::asMap}();
return super.{col::ListBase::asMap}();
mixin-super-stub operator +(covariant-by-class core::List<self2::_CustomList&Object&ListMixin::E%> other) → core::List<self2::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::+}(other);
return super.{col::ListBase::+}(other);
mixin-super-stub method sublist(core::int start, [core::int? end]) → core::List<self2::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::sublist}(start, end);
return super.{col::ListBase::sublist}(start, end);
mixin-super-stub method getRange(core::int start, core::int end) → core::Iterable<self2::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::getRange}(start, end);
return super.{col::ListBase::getRange}(start, end);
mixin-super-stub method removeRange(core::int start, core::int end) → void
return super.{col::ListMixin::removeRange}(start, end);
return super.{col::ListBase::removeRange}(start, end);
mixin-super-stub method fillRange(core::int start, core::int end, [covariant-by-class self2::_CustomList&Object&ListMixin::E? fill]) → void
return super.{col::ListMixin::fillRange}(start, end, fill);
return super.{col::ListBase::fillRange}(start, end, fill);
mixin-super-stub method setRange(core::int start, core::int end, covariant-by-class core::Iterable<self2::_CustomList&Object&ListMixin::E%> iterable, [core::int skipCount]) → void
return super.{col::ListMixin::setRange}(start, end, iterable, skipCount);
return super.{col::ListBase::setRange}(start, end, iterable, skipCount);
mixin-super-stub method replaceRange(core::int start, core::int end, covariant-by-class core::Iterable<self2::_CustomList&Object&ListMixin::E%> newContents) → void
return super.{col::ListMixin::replaceRange}(start, end, newContents);
return super.{col::ListBase::replaceRange}(start, end, newContents);
mixin-super-stub method indexOf(covariant-by-class core::Object? element, [core::int start]) → core::int
return super.{col::ListMixin::indexOf}(element, start);
return super.{col::ListBase::indexOf}(element, start);
mixin-super-stub method indexWhere((self2::_CustomList&Object&ListMixin::E%) → core::bool test, [core::int start]) → core::int
return super.{col::ListMixin::indexWhere}(test, start);
return super.{col::ListBase::indexWhere}(test, start);
mixin-super-stub method lastIndexOf(covariant-by-class core::Object? element, [core::int? start]) → core::int
return super.{col::ListMixin::lastIndexOf}(element, start);
return super.{col::ListBase::lastIndexOf}(element, start);
mixin-super-stub method lastIndexWhere((self2::_CustomList&Object&ListMixin::E%) → core::bool test, [core::int? start]) → core::int
return super.{col::ListMixin::lastIndexWhere}(test, start);
return super.{col::ListBase::lastIndexWhere}(test, start);
mixin-super-stub method insert(core::int index, covariant-by-class self2::_CustomList&Object&ListMixin::E% element) → void
return super.{col::ListMixin::insert}(index, element);
return super.{col::ListBase::insert}(index, element);
mixin-super-stub method removeAt(core::int index) → self2::_CustomList&Object&ListMixin::E%
return super.{col::ListMixin::removeAt}(index);
return super.{col::ListBase::removeAt}(index);
mixin-super-stub method insertAll(core::int index, covariant-by-class core::Iterable<self2::_CustomList&Object&ListMixin::E%> iterable) → void
return super.{col::ListMixin::insertAll}(index, iterable);
return super.{col::ListBase::insertAll}(index, iterable);
mixin-super-stub method setAll(core::int index, covariant-by-class core::Iterable<self2::_CustomList&Object&ListMixin::E%> iterable) → void
return super.{col::ListMixin::setAll}(index, iterable);
return super.{col::ListBase::setAll}(index, iterable);
mixin-super-stub get reversed() → core::Iterable<self2::_CustomList&Object&ListMixin::E%>
return super.{col::ListMixin::reversed};
return super.{col::ListBase::reversed};
mixin-super-stub method toString() → core::String
return super.{col::ListMixin::toString}();
return super.{col::ListBase::toString}();
}
class CustomList<E extends core::Object? = dynamic> extends self2::_CustomList&Object&ListMixin<self2::CustomList::E%> {
final field core::List<self2::CustomList::E%> list;

View file

@ -78,7 +78,7 @@ import "cache_lookups.dart" as self;
import "dart:collection";
import "org-dartlang-testcase:///cache_lookups.dart";
abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> extends core::Object implements col::ListMixin<cac::_CustomList&Object&ListMixin::E%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> extends core::Object implements col::ListBase<cac::_CustomList&Object&ListMixin::E%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
const synthetic constructor •() → cac::_CustomList&Object&ListMixin<cac::_CustomList&Object&ListMixin::E%>
: super core::Object::•()
;
@ -122,7 +122,7 @@ abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> e
get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ isEmpty() → core::bool
return this.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} 0;
get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ isNotEmpty() → core::bool
return !this.{col::ListMixin::isEmpty}{core::bool};
return !this.{col::ListBase::isEmpty}{core::bool};
get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ single() → cac::_CustomList&Object&ListMixin::E% {
if(this.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} 0)
throw _in::IterableElementError::noElement();
@ -265,7 +265,7 @@ abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> e
return new _in::TakeWhileIterable::•<cac::_CustomList&Object&ListMixin::E%>(this, test);
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ toList({core::bool growable = #C8}) → core::List<cac::_CustomList&Object&ListMixin::E%> {
if(this.{col::ListMixin::isEmpty}{core::bool})
if(this.{col::ListBase::isEmpty}{core::bool})
return core::List::empty<cac::_CustomList&Object&ListMixin::E%>(growable: growable);
cac::_CustomList&Object&ListMixin::E% first = this.{core::List::[]}(0){(core::int) → cac::_CustomList&Object&ListMixin::E%};
core::List<cac::_CustomList&Object&ListMixin::E%> result = core::List::filled<cac::_CustomList&Object&ListMixin::E%>(this.{core::List::length}{core::int}, first, growable: growable);
@ -292,7 +292,7 @@ abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> e
cac::_CustomList&Object&ListMixin::E% element = :sync-for-iterator.{core::Iterator::current}{cac::_CustomList&Object&ListMixin::E%};
{
assert(this.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} i || (throw new core::ConcurrentModificationError::•(this)));
this.{col::ListMixin::add}(element){(cac::_CustomList&Object&ListMixin::E%) → void};
this.{col::ListBase::add}(element){(cac::_CustomList&Object&ListMixin::E%) → void};
i = i.{core::num::+}(1){(core::num) → core::int};
}
}
@ -301,7 +301,7 @@ abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> e
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ remove(core::Object? element) → core::bool {
for (core::int i = 0; i.{core::num::<}(this.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
if(this.{core::List::[]}(i){(core::int) → cac::_CustomList&Object&ListMixin::E%} =={core::Object::==}{(core::Object) → core::bool} element) {
this.{col::ListMixin::_closeGap}(i, i.{core::num::+}(1){(core::num) → core::int}){(core::int, core::int) → void};
this.{col::ListBase::_closeGap}(i, i.{core::num::+}(1){(core::num) → core::int}){(core::int, core::int) → void};
return true;
}
}
@ -319,10 +319,10 @@ abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> e
this.{core::List::length} = length.{core::num::-}(size){(core::num) → core::int};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeWhere((cac::_CustomList&Object&ListMixin::E%) → core::bool test) → void {
this.{col::ListMixin::_filter}(test, false){((cac::_CustomList&Object&ListMixin::E%) → core::bool, core::bool) → void};
this.{col::ListBase::_filter}(test, false){((cac::_CustomList&Object&ListMixin::E%) → core::bool, core::bool) → void};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ retainWhere((cac::_CustomList&Object&ListMixin::E%) → core::bool test) → void {
this.{col::ListMixin::_filter}(test, true){((cac::_CustomList&Object&ListMixin::E%) → core::bool, core::bool) → void};
this.{col::ListBase::_filter}(test, true){((cac::_CustomList&Object&ListMixin::E%) → core::bool, core::bool) → void};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ _filter((cac::_CustomList&Object&ListMixin::E%) → core::bool test, core::bool retainMatching) → void {
core::List<cac::_CustomList&Object&ListMixin::E%> retained = core::_GrowableList::•<cac::_CustomList&Object&ListMixin::E%>(0);
@ -337,7 +337,7 @@ abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> e
}
}
if(!(retained.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} this.{core::List::length}{core::int})) {
this.{col::ListMixin::setRange}(0, retained.{core::List::length}{core::int}, retained){(core::int, core::int, core::Iterable<cac::_CustomList&Object&ListMixin::E%>, [core::int]) → void};
this.{col::ListBase::setRange}(0, retained.{core::List::length}{core::int}, retained){(core::int, core::int, core::Iterable<cac::_CustomList&Object&ListMixin::E%>, [core::int]) → void};
this.{core::List::length} = retained.{core::List::length}{core::int};
}
}
@ -384,7 +384,7 @@ abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> e
if(end{core::int} == null)
throw "!";
core::RangeError::checkValidRange(start, end{core::int}, listLength);
return core::List::from<cac::_CustomList&Object&ListMixin::E%>(this.{col::ListMixin::getRange}(start, end{core::int}){(core::int, core::int) → core::Iterable<cac::_CustomList&Object&ListMixin::E%>});
return core::List::from<cac::_CustomList&Object&ListMixin::E%>(this.{col::ListBase::getRange}(start, end{core::int}){(core::int, core::int) → core::Iterable<cac::_CustomList&Object&ListMixin::E%>});
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ getRange(core::int start, core::int end) → core::Iterable<cac::_CustomList&Object&ListMixin::E%> {
core::RangeError::checkValidRange(start, end, this.{core::List::length}{core::int});
@ -393,7 +393,7 @@ abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> e
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeRange(core::int start, core::int end) → void {
core::RangeError::checkValidRange(start, end, this.{core::List::length}{core::int});
if(end.{core::num::>}(start){(core::num) → core::bool}) {
this.{col::ListMixin::_closeGap}(start, end){(core::int, core::int) → void};
this.{col::ListBase::_closeGap}(start, end){(core::int, core::int) → void};
}
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ fillRange(core::int start, core::int end, [covariant-by-class cac::_CustomList&Object&ListMixin::E? fill = #C5]) → void {
@ -436,7 +436,7 @@ abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> e
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ replaceRange(core::int start, core::int end, covariant-by-class core::Iterable<cac::_CustomList&Object&ListMixin::E%> newContents) → void {
core::RangeError::checkValidRange(start, end, this.{core::List::length}{core::int});
if(start =={core::num::==}{(core::Object) → core::bool} this.{core::List::length}{core::int}) {
this.{col::ListMixin::addAll}(newContents){(core::Iterable<cac::_CustomList&Object&ListMixin::E%>) → void};
this.{col::ListBase::addAll}(newContents){(core::Iterable<cac::_CustomList&Object&ListMixin::E%>) → void};
return;
}
if(!(newContents is{ForNonNullableByDefault} _in::EfficientLengthIterable<dynamic>)) {
@ -446,9 +446,9 @@ abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> e
core::int insertLength = newContents.{core::Iterable::length}{core::int};
if(removeLength.{core::num::>=}(insertLength){(core::num) → core::bool}) {
core::int insertEnd = start.{core::num::+}(insertLength){(core::num) → core::int};
this.{col::ListMixin::setRange}(start, insertEnd, newContents){(core::int, core::int, core::Iterable<cac::_CustomList&Object&ListMixin::E%>, [core::int]) → void};
this.{col::ListBase::setRange}(start, insertEnd, newContents){(core::int, core::int, core::Iterable<cac::_CustomList&Object&ListMixin::E%>, [core::int]) → void};
if(removeLength.{core::num::>}(insertLength){(core::num) → core::bool}) {
this.{col::ListMixin::_closeGap}(insertEnd, end){(core::int, core::int) → void};
this.{col::ListBase::_closeGap}(insertEnd, end){(core::int, core::int) → void};
}
}
else
@ -463,7 +463,7 @@ abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> e
this.{core::List::[]=}(i, element){(core::int, cac::_CustomList&Object&ListMixin::E%) → void};
}
else {
this.{col::ListMixin::add}(element){(cac::_CustomList&Object&ListMixin::E%) → void};
this.{col::ListBase::add}(element){(cac::_CustomList&Object&ListMixin::E%) → void};
}
i = i.{core::num::+}(1){(core::num) → core::int};
}
@ -475,12 +475,12 @@ abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> e
core::int oldLength = this.{core::List::length}{core::int};
core::int insertEnd = start.{core::num::+}(insertLength){(core::num) → core::int};
for (core::int i = oldLength.{core::num::-}(delta){(core::num) → core::int}; i.{core::num::<}(oldLength){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
this.{col::ListMixin::add}(this.{core::List::[]}(i.{core::num::>}(0){(core::num) → core::bool} ?{core::int} i : 0){(core::int) → cac::_CustomList&Object&ListMixin::E%}){(cac::_CustomList&Object&ListMixin::E%) → void};
this.{col::ListBase::add}(this.{core::List::[]}(i.{core::num::>}(0){(core::num) → core::bool} ?{core::int} i : 0){(core::int) → cac::_CustomList&Object&ListMixin::E%}){(cac::_CustomList&Object&ListMixin::E%) → void};
}
if(insertEnd.{core::num::<}(oldLength){(core::num) → core::bool}) {
this.{col::ListMixin::setRange}(insertEnd, oldLength, this, end){(core::int, core::int, core::Iterable<cac::_CustomList&Object&ListMixin::E%>, [core::int]) → void};
this.{col::ListBase::setRange}(insertEnd, oldLength, this, end){(core::int, core::int, core::Iterable<cac::_CustomList&Object&ListMixin::E%>, [core::int]) → void};
}
this.{col::ListMixin::setRange}(start, insertEnd, newContents){(core::int, core::int, core::Iterable<cac::_CustomList&Object&ListMixin::E%>, [core::int]) → void};
this.{col::ListBase::setRange}(start, insertEnd, newContents){(core::int, core::int, core::Iterable<cac::_CustomList&Object&ListMixin::E%>, [core::int]) → void};
}
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ indexOf(covariant-by-class core::Object? element, [core::int start = #C2]) → core::int {
@ -527,21 +527,21 @@ abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> e
_in::checkNotNullable<core::int>(index, "index");
core::int length = this.{core::List::length}{core::int};
core::RangeError::checkValueInInterval(index, 0, length, "index");
this.{col::ListMixin::add}(element){(cac::_CustomList&Object&ListMixin::E%) → void};
this.{col::ListBase::add}(element){(cac::_CustomList&Object&ListMixin::E%) → void};
if(!(index =={core::num::==}{(core::Object) → core::bool} length)) {
this.{col::ListMixin::setRange}(index.{core::num::+}(1){(core::num) → core::int}, length.{core::num::+}(1){(core::num) → core::int}, this, index){(core::int, core::int, core::Iterable<cac::_CustomList&Object&ListMixin::E%>, [core::int]) → void};
this.{col::ListBase::setRange}(index.{core::num::+}(1){(core::num) → core::int}, length.{core::num::+}(1){(core::num) → core::int}, this, index){(core::int, core::int, core::Iterable<cac::_CustomList&Object&ListMixin::E%>, [core::int]) → void};
this.{core::List::[]=}(index, element){(core::int, cac::_CustomList&Object&ListMixin::E%) → void};
}
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeAt(core::int index) → cac::_CustomList&Object&ListMixin::E% {
cac::_CustomList&Object&ListMixin::E% result = this.{core::List::[]}(index){(core::int) → cac::_CustomList&Object&ListMixin::E%};
this.{col::ListMixin::_closeGap}(index, index.{core::num::+}(1){(core::num) → core::int}){(core::int, core::int) → void};
this.{col::ListBase::_closeGap}(index, index.{core::num::+}(1){(core::num) → core::int}){(core::int, core::int) → void};
return result;
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ insertAll(core::int index, covariant-by-class core::Iterable<cac::_CustomList&Object&ListMixin::E%> iterable) → void {
core::RangeError::checkValueInInterval(index, 0, this.{core::List::length}{core::int}, "index");
if(index =={core::num::==}{(core::Object) → core::bool} this.{core::List::length}{core::int}) {
this.{col::ListMixin::addAll}(iterable){(core::Iterable<cac::_CustomList&Object&ListMixin::E%>) → void};
this.{col::ListBase::addAll}(iterable){(core::Iterable<cac::_CustomList&Object&ListMixin::E%>) → void};
return;
}
if(!(iterable is{ForNonNullableByDefault} _in::EfficientLengthIterable<dynamic>) || core::identical(iterable, this)) {
@ -553,7 +553,7 @@ abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> e
}
core::int oldLength = this.{core::List::length}{core::int};
for (core::int i = oldLength.{core::num::-}(insertionLength){(core::num) → core::int}; i.{core::num::<}(oldLength){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
this.{col::ListMixin::add}(this.{core::List::[]}(i.{core::num::>}(0){(core::num) → core::bool} ?{core::int} i : 0){(core::int) → cac::_CustomList&Object&ListMixin::E%}){(cac::_CustomList&Object&ListMixin::E%) → void};
this.{col::ListBase::add}(this.{core::List::[]}(i.{core::num::>}(0){(core::num) → core::bool} ?{core::int} i : 0){(core::int) → cac::_CustomList&Object&ListMixin::E%}){(cac::_CustomList&Object&ListMixin::E%) → void};
}
if(!(iterable.{core::Iterable::length}{core::int} =={core::num::==}{(core::Object) → core::bool} insertionLength)) {
this.{core::List::length} = this.{core::List::length}{core::int}.{core::num::-}(insertionLength){(core::num) → core::int};
@ -561,13 +561,13 @@ abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> e
}
core::int oldCopyStart = index.{core::num::+}(insertionLength){(core::num) → core::int};
if(oldCopyStart.{core::num::<}(oldLength){(core::num) → core::bool}) {
this.{col::ListMixin::setRange}(oldCopyStart, oldLength, this, index){(core::int, core::int, core::Iterable<cac::_CustomList&Object&ListMixin::E%>, [core::int]) → void};
this.{col::ListBase::setRange}(oldCopyStart, oldLength, this, index){(core::int, core::int, core::Iterable<cac::_CustomList&Object&ListMixin::E%>, [core::int]) → void};
}
this.{col::ListMixin::setAll}(index, iterable){(core::int, core::Iterable<cac::_CustomList&Object&ListMixin::E%>) → void};
this.{col::ListBase::setAll}(index, iterable){(core::int, core::Iterable<cac::_CustomList&Object&ListMixin::E%>) → void};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ setAll(core::int index, covariant-by-class core::Iterable<cac::_CustomList&Object&ListMixin::E%> iterable) → void {
if(iterable is{ForNonNullableByDefault} core::List<dynamic>) {
this.{col::ListMixin::setRange}(index, index.{core::num::+}(iterable.{core::Iterable::length}{core::int}){(core::num) → core::int}, iterable){(core::int, core::int, core::Iterable<cac::_CustomList&Object&ListMixin::E%>, [core::int]) → void};
this.{col::ListBase::setRange}(index, index.{core::num::+}(iterable.{core::Iterable::length}{core::int}){(core::num) → core::int}, iterable){(core::int, core::int, core::Iterable<cac::_CustomList&Object&ListMixin::E%>, [core::int]) → void};
}
else {
{
@ -584,10 +584,12 @@ abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> e
get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ reversed() → core::Iterable<cac::_CustomList&Object&ListMixin::E%>
return new _in::ReversedListIterable::•<cac::_CustomList&Object&ListMixin::E%>(this);
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ toString() → core::String
return col::IterableBase::iterableToFullString(this, "[", "]");
return col::ListBase::listToString(this);
static method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ _compareAny(dynamic a, dynamic b) → core::int {
return core::Comparable::compare(a as{ForNonNullableByDefault} core::Comparable<dynamic>, b as{ForNonNullableByDefault} core::Comparable<dynamic>);
}
static method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ listToString(core::List<core::Object?> list) → core::String
return col::IterableBase::iterableToFullString(list, "[", "]");
}
class CustomList<E extends core::Object? = dynamic> extends cac::_CustomList&Object&ListMixin<cac::CustomList::E%> {
final field core::List<cac::CustomList::E%> list;
@ -617,12 +619,12 @@ constants {
#C6 = core::pragma {name:#C4, options:#C5}
#C7 = ""
#C8 = true
#C9 = static-tearoff col::ListMixin::_compareAny
#C9 = static-tearoff col::ListBase::_compareAny
}
Extra constant evaluation status:
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:492:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:500:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:512:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:524:12 -> IntConstant(-1)
Extra constant evaluation: evaluated: 1157, effectively constant: 4
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:456:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:464:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:476:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:488:12 -> IntConstant(-1)
Extra constant evaluation: evaluated: 1159, effectively constant: 4

View file

@ -5,49 +5,49 @@ import "dart:collection" as col;
import "dart:collection";
abstract class _MyMap&Object&MapMixin<K extends core::Object? = dynamic, V extends core::Object? = dynamic> = core::Object with col::MapMixin<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%> /*isAnonymousMixin,hasConstConstructor*/ {
abstract class _MyMap&Object&MapMixin<K extends core::Object? = dynamic, V extends core::Object? = dynamic> = core::Object with col::MapBase<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%> /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_MyMap&Object&MapMixin<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>
: super core::Object::•()
;
mixin-super-stub method containsKey(core::Object? key) → core::bool
return super.{col::MapMixin::containsKey}(key);
abstract mixin-stub operator [](core::Object? key) → self::_MyMap&Object&MapMixin::V?; -> col::MapMixin::[]
abstract mixin-stub operator []=(covariant-by-class self::_MyMap&Object&MapMixin::K% key, covariant-by-class self::_MyMap&Object&MapMixin::V% value) → void; -> col::MapMixin::[]=
abstract mixin-stub method clear() → void; -> col::MapMixin::clear
abstract mixin-stub method remove(core::Object? key) → self::_MyMap&Object&MapMixin::V?; -> col::MapMixin::remove
abstract mixin-stub get keys() → core::Iterable<self::_MyMap&Object&MapMixin::K%>; -> col::MapMixin::keys
return super.{col::MapBase::containsKey}(key);
abstract mixin-stub operator [](core::Object? key) → self::_MyMap&Object&MapMixin::V?; -> col::MapBase::[]
abstract mixin-stub operator []=(covariant-by-class self::_MyMap&Object&MapMixin::K% key, covariant-by-class self::_MyMap&Object&MapMixin::V% value) → void; -> col::MapBase::[]=
abstract mixin-stub method clear() → void; -> col::MapBase::clear
abstract mixin-stub method remove(core::Object? key) → self::_MyMap&Object&MapMixin::V?; -> col::MapBase::remove
abstract mixin-stub get keys() → core::Iterable<self::_MyMap&Object&MapMixin::K%>; -> col::MapBase::keys
mixin-super-stub method cast<RK extends core::Object? = dynamic, RV extends core::Object? = dynamic>() → core::Map<self::_MyMap&Object&MapMixin::cast::RK%, self::_MyMap&Object&MapMixin::cast::RV%>
return super.{col::MapMixin::cast}<self::_MyMap&Object&MapMixin::cast::RK%, self::_MyMap&Object&MapMixin::cast::RV%>();
return super.{col::MapBase::cast}<self::_MyMap&Object&MapMixin::cast::RK%, self::_MyMap&Object&MapMixin::cast::RV%>();
mixin-super-stub method forEach((self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void action) → void
return super.{col::MapMixin::forEach}(action);
return super.{col::MapBase::forEach}(action);
mixin-super-stub method addAll(covariant-by-class core::Map<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%> other) → void
return super.{col::MapMixin::addAll}(other);
return super.{col::MapBase::addAll}(other);
mixin-super-stub method containsValue(core::Object? value) → core::bool
return super.{col::MapMixin::containsValue}(value);
return super.{col::MapBase::containsValue}(value);
mixin-super-stub method putIfAbsent(covariant-by-class self::_MyMap&Object&MapMixin::K% key, covariant-by-class () → self::_MyMap&Object&MapMixin::V% ifAbsent) → self::_MyMap&Object&MapMixin::V%
return super.{col::MapMixin::putIfAbsent}(key, ifAbsent);
return super.{col::MapBase::putIfAbsent}(key, ifAbsent);
mixin-super-stub method update(covariant-by-class self::_MyMap&Object&MapMixin::K% key, covariant-by-class (self::_MyMap&Object&MapMixin::V%) → self::_MyMap&Object&MapMixin::V% update, {covariant-by-class () →? self::_MyMap&Object&MapMixin::V% ifAbsent = #C1}) → self::_MyMap&Object&MapMixin::V%
return super.{col::MapMixin::update}(key, update, ifAbsent: ifAbsent);
return super.{col::MapBase::update}(key, update, ifAbsent: ifAbsent);
mixin-super-stub method updateAll(covariant-by-class (self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → self::_MyMap&Object&MapMixin::V% update) → void
return super.{col::MapMixin::updateAll}(update);
return super.{col::MapBase::updateAll}(update);
mixin-super-stub get entries() → core::Iterable<core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>>
return super.{col::MapMixin::entries};
return super.{col::MapBase::entries};
mixin-super-stub method map<K2 extends core::Object? = dynamic, V2 extends core::Object? = dynamic>((self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → core::MapEntry<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%> transform) → core::Map<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%>
return super.{col::MapMixin::map}<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%>(transform);
return super.{col::MapBase::map}<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%>(transform);
mixin-super-stub method addEntries(covariant-by-class core::Iterable<core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>> newEntries) → void
return super.{col::MapMixin::addEntries}(newEntries);
return super.{col::MapBase::addEntries}(newEntries);
mixin-super-stub method removeWhere((self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → core::bool test) → void
return super.{col::MapMixin::removeWhere}(test);
return super.{col::MapBase::removeWhere}(test);
mixin-super-stub get length() → core::int
return super.{col::MapMixin::length};
return super.{col::MapBase::length};
mixin-super-stub get isEmpty() → core::bool
return super.{col::MapMixin::isEmpty};
return super.{col::MapBase::isEmpty};
mixin-super-stub get isNotEmpty() → core::bool
return super.{col::MapMixin::isNotEmpty};
return super.{col::MapBase::isNotEmpty};
mixin-super-stub get values() → core::Iterable<self::_MyMap&Object&MapMixin::V%>
return super.{col::MapMixin::values};
return super.{col::MapBase::values};
mixin-super-stub method toString() → core::String
return super.{col::MapMixin::toString}();
return super.{col::MapBase::toString}();
}
class MyMap<K extends core::Object? = dynamic, V extends core::Object? = dynamic> extends self::_MyMap&Object&MapMixin<self::MyMap::K%, self::MyMap::V%> {
field core::int containsKeyCount = 0;

View file

@ -5,12 +5,12 @@ import "dart:collection" as col;
import "dart:collection";
abstract class _MyMap&Object&MapMixin<K extends core::Object? = dynamic, V extends core::Object? = dynamic> extends core::Object implements col::MapMixin<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
abstract class _MyMap&Object&MapMixin<K extends core::Object? = dynamic, V extends core::Object? = dynamic> extends core::Object implements col::MapBase<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_MyMap&Object&MapMixin<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>
: super core::Object::•()
;
method /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ containsKey(core::Object? key) → core::bool
return this.{col::MapMixin::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::contains}(key){(core::Object?) → core::bool};
return this.{col::MapBase::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::contains}(key){(core::Object?) → core::bool};
abstract operator /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ [](core::Object? key) → self::_MyMap&Object&MapMixin::V?;
abstract operator /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ []=(covariant-by-class self::_MyMap&Object&MapMixin::K% key, covariant-by-class self::_MyMap&Object&MapMixin::V% value) → void;
abstract method /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ clear() → void;
@ -20,27 +20,27 @@ abstract class _MyMap&Object&MapMixin<K extends core::Object? = dynamic, V exten
return core::Map::castFrom<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%, self::_MyMap&Object&MapMixin::cast::RK%, self::_MyMap&Object&MapMixin::cast::RV%>(this);
method /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ forEach((self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void action) → void {
{
synthesized core::Iterator<self::_MyMap&Object&MapMixin::K%> :sync-for-iterator = this.{col::MapMixin::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::iterator}{core::Iterator<self::_MyMap&Object&MapMixin::K%>};
synthesized core::Iterator<self::_MyMap&Object&MapMixin::K%> :sync-for-iterator = this.{col::MapBase::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::iterator}{core::Iterator<self::_MyMap&Object&MapMixin::K%>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
self::_MyMap&Object&MapMixin::K% key = :sync-for-iterator.{core::Iterator::current}{self::_MyMap&Object&MapMixin::K%};
{
action(key, let self::_MyMap&Object&MapMixin::V? #t1 = this.{col::MapMixin::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t1 == null ?{self::_MyMap&Object&MapMixin::V%} let self::_MyMap&Object&MapMixin::V? #t2 = #t1 in #t2 == null ?{self::_MyMap&Object&MapMixin::V%} #t2 as{ForNonNullableByDefault} self::_MyMap&Object&MapMixin::V% : #t2{self::_MyMap&Object&MapMixin::V%} : #t1{self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void};
action(key, let self::_MyMap&Object&MapMixin::V? #t1 = this.{col::MapBase::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t1 == null ?{self::_MyMap&Object&MapMixin::V%} let self::_MyMap&Object&MapMixin::V? #t2 = #t1 in #t2 == null ?{self::_MyMap&Object&MapMixin::V%} #t2 as{ForNonNullableByDefault} self::_MyMap&Object&MapMixin::V% : #t2{self::_MyMap&Object&MapMixin::V%} : #t1{self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void};
}
}
}
}
method /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ addAll(covariant-by-class core::Map<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%> other) → void {
other.{core::Map::forEach}((self::_MyMap&Object&MapMixin::K% key, self::_MyMap&Object&MapMixin::V% value) → void {
this.{col::MapMixin::[]=}(key, value){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void};
this.{col::MapBase::[]=}(key, value){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void};
}){((self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void) → void};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ containsValue(core::Object? value) → core::bool {
{
synthesized core::Iterator<self::_MyMap&Object&MapMixin::K%> :sync-for-iterator = this.{col::MapMixin::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::iterator}{core::Iterator<self::_MyMap&Object&MapMixin::K%>};
synthesized core::Iterator<self::_MyMap&Object&MapMixin::K%> :sync-for-iterator = this.{col::MapBase::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::iterator}{core::Iterator<self::_MyMap&Object&MapMixin::K%>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
self::_MyMap&Object&MapMixin::K% key = :sync-for-iterator.{core::Iterator::current}{self::_MyMap&Object&MapMixin::K%};
{
if(this.{col::MapMixin::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} =={core::Object::==}{(core::Object) → core::bool} value)
if(this.{col::MapBase::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} =={core::Object::==}{(core::Object) → core::bool} value)
return true;
}
}
@ -48,42 +48,42 @@ abstract class _MyMap&Object&MapMixin<K extends core::Object? = dynamic, V exten
return false;
}
method /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ putIfAbsent(covariant-by-class self::_MyMap&Object&MapMixin::K% key, covariant-by-class () → self::_MyMap&Object&MapMixin::V% ifAbsent) → self::_MyMap&Object&MapMixin::V% {
if(this.{col::MapMixin::containsKey}(key){(core::Object?) → core::bool}) {
return let self::_MyMap&Object&MapMixin::V? #t3 = this.{col::MapMixin::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t3 == null ?{self::_MyMap&Object&MapMixin::V%} let self::_MyMap&Object&MapMixin::V? #t4 = #t3 in #t4 == null ?{self::_MyMap&Object&MapMixin::V%} #t4 as{ForNonNullableByDefault} self::_MyMap&Object&MapMixin::V% : #t4{self::_MyMap&Object&MapMixin::V%} : #t3{self::_MyMap&Object&MapMixin::V%};
if(this.{col::MapBase::containsKey}(key){(core::Object?) → core::bool}) {
return let self::_MyMap&Object&MapMixin::V? #t3 = this.{col::MapBase::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t3 == null ?{self::_MyMap&Object&MapMixin::V%} let self::_MyMap&Object&MapMixin::V? #t4 = #t3 in #t4 == null ?{self::_MyMap&Object&MapMixin::V%} #t4 as{ForNonNullableByDefault} self::_MyMap&Object&MapMixin::V% : #t4{self::_MyMap&Object&MapMixin::V%} : #t3{self::_MyMap&Object&MapMixin::V%};
}
return let final self::_MyMap&Object&MapMixin::K% #t5 = key in let final self::_MyMap&Object&MapMixin::V% #t6 = ifAbsent(){() → self::_MyMap&Object&MapMixin::V%} in let final void #t7 = this.{col::MapMixin::[]=}(#t5, #t6){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void} in #t6;
return let final self::_MyMap&Object&MapMixin::K% #t5 = key in let final self::_MyMap&Object&MapMixin::V% #t6 = ifAbsent(){() → self::_MyMap&Object&MapMixin::V%} in let final void #t7 = this.{col::MapBase::[]=}(#t5, #t6){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void} in #t6;
}
method /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ update(covariant-by-class self::_MyMap&Object&MapMixin::K% key, covariant-by-class (self::_MyMap&Object&MapMixin::V%) → self::_MyMap&Object&MapMixin::V% update, {covariant-by-class () →? self::_MyMap&Object&MapMixin::V% ifAbsent = #C1}) → self::_MyMap&Object&MapMixin::V% {
if(this.{col::MapMixin::containsKey}(key){(core::Object?) → core::bool}) {
return let final self::_MyMap&Object&MapMixin::K% #t8 = key in let final self::_MyMap&Object&MapMixin::V% #t9 = update(let self::_MyMap&Object&MapMixin::V? #t10 = this.{col::MapMixin::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t10 == null ?{self::_MyMap&Object&MapMixin::V%} let self::_MyMap&Object&MapMixin::V? #t11 = #t10 in #t11 == null ?{self::_MyMap&Object&MapMixin::V%} #t11 as{ForNonNullableByDefault} self::_MyMap&Object&MapMixin::V% : #t11{self::_MyMap&Object&MapMixin::V%} : #t10{self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::V%) → self::_MyMap&Object&MapMixin::V%} in let final void #t12 = this.{col::MapMixin::[]=}(#t8, #t9){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void} in #t9;
if(this.{col::MapBase::containsKey}(key){(core::Object?) → core::bool}) {
return let final self::_MyMap&Object&MapMixin::K% #t8 = key in let final self::_MyMap&Object&MapMixin::V% #t9 = update(let self::_MyMap&Object&MapMixin::V? #t10 = this.{col::MapBase::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t10 == null ?{self::_MyMap&Object&MapMixin::V%} let self::_MyMap&Object&MapMixin::V? #t11 = #t10 in #t11 == null ?{self::_MyMap&Object&MapMixin::V%} #t11 as{ForNonNullableByDefault} self::_MyMap&Object&MapMixin::V% : #t11{self::_MyMap&Object&MapMixin::V%} : #t10{self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::V%) → self::_MyMap&Object&MapMixin::V%} in let final void #t12 = this.{col::MapBase::[]=}(#t8, #t9){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void} in #t9;
}
if(!(ifAbsent == null)) {
return let final self::_MyMap&Object&MapMixin::K% #t13 = key in let final self::_MyMap&Object&MapMixin::V% #t14 = ifAbsent{() → self::_MyMap&Object&MapMixin::V%}(){() → self::_MyMap&Object&MapMixin::V%} in let final void #t15 = this.{col::MapMixin::[]=}(#t13, #t14){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void} in #t14;
return let final self::_MyMap&Object&MapMixin::K% #t13 = key in let final self::_MyMap&Object&MapMixin::V% #t14 = ifAbsent{() → self::_MyMap&Object&MapMixin::V%}(){() → self::_MyMap&Object&MapMixin::V%} in let final void #t15 = this.{col::MapBase::[]=}(#t13, #t14){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void} in #t14;
}
throw new core::ArgumentError::value(key, "key", "Key not in map.");
}
method /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ updateAll(covariant-by-class (self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → self::_MyMap&Object&MapMixin::V% update) → void {
{
synthesized core::Iterator<self::_MyMap&Object&MapMixin::K%> :sync-for-iterator = this.{col::MapMixin::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::iterator}{core::Iterator<self::_MyMap&Object&MapMixin::K%>};
synthesized core::Iterator<self::_MyMap&Object&MapMixin::K%> :sync-for-iterator = this.{col::MapBase::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::iterator}{core::Iterator<self::_MyMap&Object&MapMixin::K%>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
self::_MyMap&Object&MapMixin::K% key = :sync-for-iterator.{core::Iterator::current}{self::_MyMap&Object&MapMixin::K%};
{
this.{col::MapMixin::[]=}(key, update(key, let self::_MyMap&Object&MapMixin::V? #t16 = this.{col::MapMixin::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t16 == null ?{self::_MyMap&Object&MapMixin::V%} let self::_MyMap&Object&MapMixin::V? #t17 = #t16 in #t17 == null ?{self::_MyMap&Object&MapMixin::V%} #t17 as{ForNonNullableByDefault} self::_MyMap&Object&MapMixin::V% : #t17{self::_MyMap&Object&MapMixin::V%} : #t16{self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void};
this.{col::MapBase::[]=}(key, update(key, let self::_MyMap&Object&MapMixin::V? #t16 = this.{col::MapBase::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t16 == null ?{self::_MyMap&Object&MapMixin::V%} let self::_MyMap&Object&MapMixin::V? #t17 = #t16 in #t17 == null ?{self::_MyMap&Object&MapMixin::V%} #t17 as{ForNonNullableByDefault} self::_MyMap&Object&MapMixin::V% : #t17{self::_MyMap&Object&MapMixin::V%} : #t16{self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void};
}
}
}
}
get /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ entries() → core::Iterable<core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>> {
return this.{col::MapMixin::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::map}<core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>>((self::_MyMap&Object&MapMixin::K% key) → core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%> => new core::MapEntry::_<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>(key, let self::_MyMap&Object&MapMixin::V? #t18 = this.{col::MapMixin::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t18 == null ?{self::_MyMap&Object&MapMixin::V%} let self::_MyMap&Object&MapMixin::V? #t19 = #t18 in #t19 == null ?{self::_MyMap&Object&MapMixin::V%} #t19 as{ForNonNullableByDefault} self::_MyMap&Object&MapMixin::V% : #t19{self::_MyMap&Object&MapMixin::V%} : #t18{self::_MyMap&Object&MapMixin::V%})){((self::_MyMap&Object&MapMixin::K%) → core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>) → core::Iterable<core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>>};
return this.{col::MapBase::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::map}<core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>>((self::_MyMap&Object&MapMixin::K% key) → core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%> => new core::MapEntry::_<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>(key, let self::_MyMap&Object&MapMixin::V? #t18 = this.{col::MapBase::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t18 == null ?{self::_MyMap&Object&MapMixin::V%} let self::_MyMap&Object&MapMixin::V? #t19 = #t18 in #t19 == null ?{self::_MyMap&Object&MapMixin::V%} #t19 as{ForNonNullableByDefault} self::_MyMap&Object&MapMixin::V% : #t19{self::_MyMap&Object&MapMixin::V%} : #t18{self::_MyMap&Object&MapMixin::V%})){((self::_MyMap&Object&MapMixin::K%) → core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>) → core::Iterable<core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>>};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ map<K2 extends core::Object? = dynamic, V2 extends core::Object? = dynamic>((self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → core::MapEntry<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%> transform) → core::Map<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%> {
core::Map<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%> result = <self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%>{};
{
synthesized core::Iterator<self::_MyMap&Object&MapMixin::K%> :sync-for-iterator = this.{col::MapMixin::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::iterator}{core::Iterator<self::_MyMap&Object&MapMixin::K%>};
synthesized core::Iterator<self::_MyMap&Object&MapMixin::K%> :sync-for-iterator = this.{col::MapBase::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::iterator}{core::Iterator<self::_MyMap&Object&MapMixin::K%>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
self::_MyMap&Object&MapMixin::K% key = :sync-for-iterator.{core::Iterator::current}{self::_MyMap&Object&MapMixin::K%};
{
core::MapEntry<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%> entry = transform(key, let self::_MyMap&Object&MapMixin::V? #t20 = this.{col::MapMixin::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t20 == null ?{self::_MyMap&Object&MapMixin::V%} let self::_MyMap&Object&MapMixin::V? #t21 = #t20 in #t21 == null ?{self::_MyMap&Object&MapMixin::V%} #t21 as{ForNonNullableByDefault} self::_MyMap&Object&MapMixin::V% : #t21{self::_MyMap&Object&MapMixin::V%} : #t20{self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → core::MapEntry<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%>};
core::MapEntry<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%> entry = transform(key, let self::_MyMap&Object&MapMixin::V? #t20 = this.{col::MapBase::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t20 == null ?{self::_MyMap&Object&MapMixin::V%} let self::_MyMap&Object&MapMixin::V? #t21 = #t20 in #t21 == null ?{self::_MyMap&Object&MapMixin::V%} #t21 as{ForNonNullableByDefault} self::_MyMap&Object&MapMixin::V% : #t21{self::_MyMap&Object&MapMixin::V%} : #t20{self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → core::MapEntry<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%>};
result.{core::Map::[]=}(entry.{core::MapEntry::key}{self::_MyMap&Object&MapMixin::map::K2%}, entry.{core::MapEntry::value}{self::_MyMap&Object&MapMixin::map::V2%}){(self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%) → void};
}
}
@ -96,7 +96,7 @@ abstract class _MyMap&Object&MapMixin<K extends core::Object? = dynamic, V exten
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%> entry = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>};
{
this.{col::MapMixin::[]=}(entry.{core::MapEntry::key}{self::_MyMap&Object&MapMixin::K%}, entry.{core::MapEntry::value}{self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void};
this.{col::MapBase::[]=}(entry.{core::MapEntry::key}{self::_MyMap&Object&MapMixin::K%}, entry.{core::MapEntry::value}{self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void};
}
}
}
@ -104,11 +104,11 @@ abstract class _MyMap&Object&MapMixin<K extends core::Object? = dynamic, V exten
method /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ removeWhere((self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → core::bool test) → void {
core::List<self::_MyMap&Object&MapMixin::K%> keysToRemove = core::_GrowableList::•<self::_MyMap&Object&MapMixin::K%>(0);
{
synthesized core::Iterator<self::_MyMap&Object&MapMixin::K%> :sync-for-iterator = this.{col::MapMixin::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::iterator}{core::Iterator<self::_MyMap&Object&MapMixin::K%>};
synthesized core::Iterator<self::_MyMap&Object&MapMixin::K%> :sync-for-iterator = this.{col::MapBase::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::iterator}{core::Iterator<self::_MyMap&Object&MapMixin::K%>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
self::_MyMap&Object&MapMixin::K% key = :sync-for-iterator.{core::Iterator::current}{self::_MyMap&Object&MapMixin::K%};
{
if(test(key, let self::_MyMap&Object&MapMixin::V? #t22 = this.{col::MapMixin::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t22 == null ?{self::_MyMap&Object&MapMixin::V%} let self::_MyMap&Object&MapMixin::V? #t23 = #t22 in #t23 == null ?{self::_MyMap&Object&MapMixin::V%} #t23 as{ForNonNullableByDefault} self::_MyMap&Object&MapMixin::V% : #t23{self::_MyMap&Object&MapMixin::V%} : #t22{self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → core::bool})
if(test(key, let self::_MyMap&Object&MapMixin::V? #t22 = this.{col::MapBase::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t22 == null ?{self::_MyMap&Object&MapMixin::V%} let self::_MyMap&Object&MapMixin::V? #t23 = #t22 in #t23 == null ?{self::_MyMap&Object&MapMixin::V%} #t23 as{ForNonNullableByDefault} self::_MyMap&Object&MapMixin::V% : #t23{self::_MyMap&Object&MapMixin::V%} : #t22{self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → core::bool})
keysToRemove.{core::List::add}(key){(self::_MyMap&Object&MapMixin::K%) → void};
}
}
@ -118,21 +118,76 @@ abstract class _MyMap&Object&MapMixin<K extends core::Object? = dynamic, V exten
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
self::_MyMap&Object&MapMixin::K% key = :sync-for-iterator.{core::Iterator::current}{self::_MyMap&Object&MapMixin::K%};
{
this.{col::MapMixin::remove}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?};
this.{col::MapBase::remove}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?};
}
}
}
}
get /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ length() → core::int
return this.{col::MapMixin::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::length}{core::int};
return this.{col::MapBase::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::length}{core::int};
get /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ isEmpty() → core::bool
return this.{col::MapMixin::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::isEmpty}{core::bool};
return this.{col::MapBase::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::isEmpty}{core::bool};
get /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ isNotEmpty() → core::bool
return this.{col::MapMixin::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::isNotEmpty}{core::bool};
return this.{col::MapBase::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::isNotEmpty}{core::bool};
get /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ values() → core::Iterable<self::_MyMap&Object&MapMixin::V%>
return new col::_MapBaseValueIterable::•<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>(this);
method /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ toString() → core::String
return col::MapBase::mapToString(this);
static method /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ mapToString(core::Map<core::Object?, core::Object?> m) → core::String {
if(col::_isToStringVisiting(m)) {
return "{...}";
}
core::StringBuffer result = new core::StringBuffer::•();
try {
col::_toStringVisiting.{core::List::add}(m){(core::Object) → void};
result.{core::StringBuffer::write}("{"){(core::Object?) → void};
core::bool first = true;
m.{core::Map::forEach}((core::Object? k, core::Object? v) → void {
if(!first) {
result.{core::StringBuffer::write}(", "){(core::Object?) → void};
}
first = false;
result.{core::StringBuffer::write}(k){(core::Object?) → void};
result.{core::StringBuffer::write}(": "){(core::Object?) → void};
result.{core::StringBuffer::write}(v){(core::Object?) → void};
}){((core::Object?, core::Object?) → void) → void};
result.{core::StringBuffer::write}("}"){(core::Object?) → void};
}
finally {
assert(core::identical(col::_toStringVisiting.{core::Iterable::last}{core::Object}, m));
col::_toStringVisiting.{core::List::removeLast}(){() → core::Object};
}
return result.{core::StringBuffer::toString}(){() → core::String};
}
static method /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ _fillMapWithMappedIterable(core::Map<core::Object?, core::Object?> map, core::Iterable<core::Object?> iterable, (core::Object?) →? core::Object? key, (core::Object?) →? core::Object? value) → void {
key == null ?{(core::Object?) → core::Object?} key = #C2 : null;
value == null ?{(core::Object?) → core::Object?} value = #C2 : null;
{
synthesized core::Iterator<core::Object?> :sync-for-iterator = iterable.{core::Iterable::iterator}{core::Iterator<core::Object?>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
core::Object? element = :sync-for-iterator.{core::Iterator::current}{core::Object?};
{
map.{core::Map::[]=}(key{(core::Object?) → core::Object?}(element){(core::Object?) → core::Object?}, value{(core::Object?) → core::Object?}(element){(core::Object?) → core::Object?}){(core::Object?, core::Object?) → void};
}
}
}
}
static method /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ _id(core::Object? x) → core::Object?
return x;
static method /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ _fillMapWithIterables(core::Map<core::Object?, core::Object?> map, core::Iterable<core::Object?> keys, core::Iterable<core::Object?> values) → void {
core::Iterator<core::Object?> keyIterator = keys.{core::Iterable::iterator}{core::Iterator<core::Object?>};
core::Iterator<core::Object?> valueIterator = values.{core::Iterable::iterator}{core::Iterator<core::Object?>};
core::bool hasNextKey = keyIterator.{core::Iterator::moveNext}(){() → core::bool};
core::bool hasNextValue = valueIterator.{core::Iterator::moveNext}(){() → core::bool};
while (hasNextKey && hasNextValue) {
map.{core::Map::[]=}(keyIterator.{core::Iterator::current}{core::Object?}, valueIterator.{core::Iterator::current}{core::Object?}){(core::Object?, core::Object?) → void};
hasNextKey = keyIterator.{core::Iterator::moveNext}(){() → core::bool};
hasNextValue = valueIterator.{core::Iterator::moveNext}(){() → core::bool};
}
if(hasNextKey || hasNextValue) {
throw new core::ArgumentError::•("Iterables do not have same length.");
}
}
}
class MyMap<K extends core::Object? = dynamic, V extends core::Object? = dynamic> extends self::_MyMap&Object&MapMixin<self::MyMap::K%, self::MyMap::V%> {
field core::int containsKeyCount = 0;
@ -159,26 +214,26 @@ class MyMap<K extends core::Object? = dynamic, V extends core::Object? = dynamic
return this.{self::MyMap::_map}{core::Map<self::MyMap::K%, self::MyMap::V%>}.{core::Map::remove}(key){(core::Object?) → self::MyMap::V?};
}
static get hasUnsoundNullSafety() → core::bool
return #C2 is{ForNonNullableByDefault} core::List<core::Object>;
return #C3 is{ForNonNullableByDefault} core::List<core::Object>;
static method method(core::Map<core::int, core::String?> m) → core::int {
#L1:
{
final synthesized core::Map<core::int, core::String?> #0#0 = m;
function ##0#3#initializer() → core::String?
return #0#0.{core::Map::[]}(#C3){(core::Object?) → core::String?};
return #0#0.{core::Map::[]}(#C4){(core::Object?) → core::String?};
late final synthesized core::String? #0#3 = ##0#3#initializer(){() → core::String?};
function ##0#2#initializer() → core::bool
return #0#0.{core::Map::containsKey}(#C3){(core::Object?) → core::bool};
return #0#0.{core::Map::containsKey}(#C4){(core::Object?) → core::bool};
late final synthesized core::bool #0#2 = ##0#2#initializer(){() → core::bool};
{
if((!(#0#3 == null) || null is{ForNonNullableByDefault} core::String? && #0#2) && #C4 =={core::String::==}{(core::Object) → core::bool} #0#3) {
if((!(#0#3 == null) || null is{ForNonNullableByDefault} core::String? && #0#2) && #C5 =={core::String::==}{(core::Object) → core::bool} #0#3) {
{
return 0;
}
}
}
{
if((!(#0#3 == null) || null is{ForNonNullableByDefault} core::String? && #0#2) && #C5 =={core::String::==}{(core::Object) → core::bool} #0#3) {
if((!(#0#3 == null) || null is{ForNonNullableByDefault} core::String? && #0#2) && #C6 =={core::String::==}{(core::Object) → core::bool} #0#3) {
{
return 1;
}
@ -206,14 +261,15 @@ static method expect(dynamic expected, dynamic actual, dynamic message) → dyna
constants {
#C1 = null
#C2 = <Null>[]
#C3 = 1
#C4 = "foo"
#C5 = "bar"
#C2 = static-tearoff col::MapBase::_id
#C3 = <Null>[]
#C4 = 1
#C5 = "foo"
#C6 = "bar"
}
Extra constant evaluation status:
Evaluated: IsExpression @ org-dartlang-testcase:///caching_constants.dart:7:49 -> BoolConstant(false)
Evaluated: IsExpression @ org-dartlang-testcase:///caching_constants.dart:38:12 -> BoolConstant(true)
Evaluated: IsExpression @ org-dartlang-testcase:///caching_constants.dart:40:12 -> BoolConstant(true)
Extra constant evaluation: evaluated: 392, effectively constant: 3
Extra constant evaluation: evaluated: 477, effectively constant: 3

View file

@ -5,49 +5,49 @@ import "dart:collection" as col;
import "dart:collection";
abstract class _MyMap&Object&MapMixin<K extends core::Object? = dynamic, V extends core::Object? = dynamic> = core::Object with col::MapMixin<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%> /*isAnonymousMixin,hasConstConstructor*/ {
abstract class _MyMap&Object&MapMixin<K extends core::Object? = dynamic, V extends core::Object? = dynamic> = core::Object with col::MapBase<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%> /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_MyMap&Object&MapMixin<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>
: super core::Object::•()
;
mixin-super-stub method containsKey(core::Object? key) → core::bool
return super.{col::MapMixin::containsKey}(key);
abstract mixin-stub operator [](core::Object? key) → self::_MyMap&Object&MapMixin::V?; -> col::MapMixin::[]
abstract mixin-stub operator []=(covariant-by-class self::_MyMap&Object&MapMixin::K% key, covariant-by-class self::_MyMap&Object&MapMixin::V% value) → void; -> col::MapMixin::[]=
abstract mixin-stub method clear() → void; -> col::MapMixin::clear
abstract mixin-stub method remove(core::Object? key) → self::_MyMap&Object&MapMixin::V?; -> col::MapMixin::remove
abstract mixin-stub get keys() → core::Iterable<self::_MyMap&Object&MapMixin::K%>; -> col::MapMixin::keys
return super.{col::MapBase::containsKey}(key);
abstract mixin-stub operator [](core::Object? key) → self::_MyMap&Object&MapMixin::V?; -> col::MapBase::[]
abstract mixin-stub operator []=(covariant-by-class self::_MyMap&Object&MapMixin::K% key, covariant-by-class self::_MyMap&Object&MapMixin::V% value) → void; -> col::MapBase::[]=
abstract mixin-stub method clear() → void; -> col::MapBase::clear
abstract mixin-stub method remove(core::Object? key) → self::_MyMap&Object&MapMixin::V?; -> col::MapBase::remove
abstract mixin-stub get keys() → core::Iterable<self::_MyMap&Object&MapMixin::K%>; -> col::MapBase::keys
mixin-super-stub method cast<RK extends core::Object? = dynamic, RV extends core::Object? = dynamic>() → core::Map<self::_MyMap&Object&MapMixin::cast::RK%, self::_MyMap&Object&MapMixin::cast::RV%>
return super.{col::MapMixin::cast}<self::_MyMap&Object&MapMixin::cast::RK%, self::_MyMap&Object&MapMixin::cast::RV%>();
return super.{col::MapBase::cast}<self::_MyMap&Object&MapMixin::cast::RK%, self::_MyMap&Object&MapMixin::cast::RV%>();
mixin-super-stub method forEach((self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void action) → void
return super.{col::MapMixin::forEach}(action);
return super.{col::MapBase::forEach}(action);
mixin-super-stub method addAll(covariant-by-class core::Map<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%> other) → void
return super.{col::MapMixin::addAll}(other);
return super.{col::MapBase::addAll}(other);
mixin-super-stub method containsValue(core::Object? value) → core::bool
return super.{col::MapMixin::containsValue}(value);
return super.{col::MapBase::containsValue}(value);
mixin-super-stub method putIfAbsent(covariant-by-class self::_MyMap&Object&MapMixin::K% key, covariant-by-class () → self::_MyMap&Object&MapMixin::V% ifAbsent) → self::_MyMap&Object&MapMixin::V%
return super.{col::MapMixin::putIfAbsent}(key, ifAbsent);
return super.{col::MapBase::putIfAbsent}(key, ifAbsent);
mixin-super-stub method update(covariant-by-class self::_MyMap&Object&MapMixin::K% key, covariant-by-class (self::_MyMap&Object&MapMixin::V%) → self::_MyMap&Object&MapMixin::V% update, {covariant-by-class () →? self::_MyMap&Object&MapMixin::V% ifAbsent = #C1}) → self::_MyMap&Object&MapMixin::V%
return super.{col::MapMixin::update}(key, update, ifAbsent: ifAbsent);
return super.{col::MapBase::update}(key, update, ifAbsent: ifAbsent);
mixin-super-stub method updateAll(covariant-by-class (self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → self::_MyMap&Object&MapMixin::V% update) → void
return super.{col::MapMixin::updateAll}(update);
return super.{col::MapBase::updateAll}(update);
mixin-super-stub get entries() → core::Iterable<core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>>
return super.{col::MapMixin::entries};
return super.{col::MapBase::entries};
mixin-super-stub method map<K2 extends core::Object? = dynamic, V2 extends core::Object? = dynamic>((self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → core::MapEntry<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%> transform) → core::Map<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%>
return super.{col::MapMixin::map}<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%>(transform);
return super.{col::MapBase::map}<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%>(transform);
mixin-super-stub method addEntries(covariant-by-class core::Iterable<core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>> newEntries) → void
return super.{col::MapMixin::addEntries}(newEntries);
return super.{col::MapBase::addEntries}(newEntries);
mixin-super-stub method removeWhere((self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → core::bool test) → void
return super.{col::MapMixin::removeWhere}(test);
return super.{col::MapBase::removeWhere}(test);
mixin-super-stub get length() → core::int
return super.{col::MapMixin::length};
return super.{col::MapBase::length};
mixin-super-stub get isEmpty() → core::bool
return super.{col::MapMixin::isEmpty};
return super.{col::MapBase::isEmpty};
mixin-super-stub get isNotEmpty() → core::bool
return super.{col::MapMixin::isNotEmpty};
return super.{col::MapBase::isNotEmpty};
mixin-super-stub get values() → core::Iterable<self::_MyMap&Object&MapMixin::V%>
return super.{col::MapMixin::values};
return super.{col::MapBase::values};
mixin-super-stub method toString() → core::String
return super.{col::MapMixin::toString}();
return super.{col::MapBase::toString}();
}
class MyMap<K extends core::Object? = dynamic, V extends core::Object? = dynamic> extends self::_MyMap&Object&MapMixin<self::MyMap::K%, self::MyMap::V%> {
field core::int containsKeyCount = 0;

View file

@ -5,49 +5,49 @@ import "dart:collection" as col;
import "dart:collection";
abstract class _MyMap&Object&MapMixin<K extends core::Object? = dynamic, V extends core::Object? = dynamic> = core::Object with col::MapMixin<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%> /*isAnonymousMixin,hasConstConstructor*/ {
abstract class _MyMap&Object&MapMixin<K extends core::Object? = dynamic, V extends core::Object? = dynamic> = core::Object with col::MapBase<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%> /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_MyMap&Object&MapMixin<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>
: super core::Object::•()
;
mixin-super-stub method containsKey(core::Object? key) → core::bool
return super.{col::MapMixin::containsKey}(key);
abstract mixin-stub operator [](core::Object? key) → self::_MyMap&Object&MapMixin::V?; -> col::MapMixin::[]
abstract mixin-stub operator []=(covariant-by-class self::_MyMap&Object&MapMixin::K% key, covariant-by-class self::_MyMap&Object&MapMixin::V% value) → void; -> col::MapMixin::[]=
abstract mixin-stub method clear() → void; -> col::MapMixin::clear
abstract mixin-stub method remove(core::Object? key) → self::_MyMap&Object&MapMixin::V?; -> col::MapMixin::remove
abstract mixin-stub get keys() → core::Iterable<self::_MyMap&Object&MapMixin::K%>; -> col::MapMixin::keys
return super.{col::MapBase::containsKey}(key);
abstract mixin-stub operator [](core::Object? key) → self::_MyMap&Object&MapMixin::V?; -> col::MapBase::[]
abstract mixin-stub operator []=(covariant-by-class self::_MyMap&Object&MapMixin::K% key, covariant-by-class self::_MyMap&Object&MapMixin::V% value) → void; -> col::MapBase::[]=
abstract mixin-stub method clear() → void; -> col::MapBase::clear
abstract mixin-stub method remove(core::Object? key) → self::_MyMap&Object&MapMixin::V?; -> col::MapBase::remove
abstract mixin-stub get keys() → core::Iterable<self::_MyMap&Object&MapMixin::K%>; -> col::MapBase::keys
mixin-super-stub method cast<RK extends core::Object? = dynamic, RV extends core::Object? = dynamic>() → core::Map<self::_MyMap&Object&MapMixin::cast::RK%, self::_MyMap&Object&MapMixin::cast::RV%>
return super.{col::MapMixin::cast}<self::_MyMap&Object&MapMixin::cast::RK%, self::_MyMap&Object&MapMixin::cast::RV%>();
return super.{col::MapBase::cast}<self::_MyMap&Object&MapMixin::cast::RK%, self::_MyMap&Object&MapMixin::cast::RV%>();
mixin-super-stub method forEach((self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void action) → void
return super.{col::MapMixin::forEach}(action);
return super.{col::MapBase::forEach}(action);
mixin-super-stub method addAll(covariant-by-class core::Map<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%> other) → void
return super.{col::MapMixin::addAll}(other);
return super.{col::MapBase::addAll}(other);
mixin-super-stub method containsValue(core::Object? value) → core::bool
return super.{col::MapMixin::containsValue}(value);
return super.{col::MapBase::containsValue}(value);
mixin-super-stub method putIfAbsent(covariant-by-class self::_MyMap&Object&MapMixin::K% key, covariant-by-class () → self::_MyMap&Object&MapMixin::V% ifAbsent) → self::_MyMap&Object&MapMixin::V%
return super.{col::MapMixin::putIfAbsent}(key, ifAbsent);
return super.{col::MapBase::putIfAbsent}(key, ifAbsent);
mixin-super-stub method update(covariant-by-class self::_MyMap&Object&MapMixin::K% key, covariant-by-class (self::_MyMap&Object&MapMixin::V%) → self::_MyMap&Object&MapMixin::V% update, {covariant-by-class () →? self::_MyMap&Object&MapMixin::V% ifAbsent = #C1}) → self::_MyMap&Object&MapMixin::V%
return super.{col::MapMixin::update}(key, update, ifAbsent: ifAbsent);
return super.{col::MapBase::update}(key, update, ifAbsent: ifAbsent);
mixin-super-stub method updateAll(covariant-by-class (self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → self::_MyMap&Object&MapMixin::V% update) → void
return super.{col::MapMixin::updateAll}(update);
return super.{col::MapBase::updateAll}(update);
mixin-super-stub get entries() → core::Iterable<core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>>
return super.{col::MapMixin::entries};
return super.{col::MapBase::entries};
mixin-super-stub method map<K2 extends core::Object? = dynamic, V2 extends core::Object? = dynamic>((self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → core::MapEntry<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%> transform) → core::Map<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%>
return super.{col::MapMixin::map}<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%>(transform);
return super.{col::MapBase::map}<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%>(transform);
mixin-super-stub method addEntries(covariant-by-class core::Iterable<core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>> newEntries) → void
return super.{col::MapMixin::addEntries}(newEntries);
return super.{col::MapBase::addEntries}(newEntries);
mixin-super-stub method removeWhere((self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → core::bool test) → void
return super.{col::MapMixin::removeWhere}(test);
return super.{col::MapBase::removeWhere}(test);
mixin-super-stub get length() → core::int
return super.{col::MapMixin::length};
return super.{col::MapBase::length};
mixin-super-stub get isEmpty() → core::bool
return super.{col::MapMixin::isEmpty};
return super.{col::MapBase::isEmpty};
mixin-super-stub get isNotEmpty() → core::bool
return super.{col::MapMixin::isNotEmpty};
return super.{col::MapBase::isNotEmpty};
mixin-super-stub get values() → core::Iterable<self::_MyMap&Object&MapMixin::V%>
return super.{col::MapMixin::values};
return super.{col::MapBase::values};
mixin-super-stub method toString() → core::String
return super.{col::MapMixin::toString}();
return super.{col::MapBase::toString}();
}
class MyMap<K extends core::Object? = dynamic, V extends core::Object? = dynamic> extends self::_MyMap&Object&MapMixin<self::MyMap::K%, self::MyMap::V%> {
field core::int containsKeyCount = 0;

View file

@ -5,49 +5,49 @@ import "dart:collection" as col;
import "dart:collection";
abstract class _MyMap&Object&MapMixin<K extends core::Object? = dynamic, V extends core::Object? = dynamic> = core::Object with col::MapMixin<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%> /*isAnonymousMixin,hasConstConstructor*/ {
abstract class _MyMap&Object&MapMixin<K extends core::Object? = dynamic, V extends core::Object? = dynamic> = core::Object with col::MapBase<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%> /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_MyMap&Object&MapMixin<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>
: super core::Object::•()
;
mixin-super-stub method containsKey(core::Object? key) → core::bool
return super.{col::MapMixin::containsKey}(key);
abstract mixin-stub operator [](core::Object? key) → self::_MyMap&Object&MapMixin::V?; -> col::MapMixin::[]
abstract mixin-stub operator []=(covariant-by-class self::_MyMap&Object&MapMixin::K% key, covariant-by-class self::_MyMap&Object&MapMixin::V% value) → void; -> col::MapMixin::[]=
abstract mixin-stub method clear() → void; -> col::MapMixin::clear
abstract mixin-stub method remove(core::Object? key) → self::_MyMap&Object&MapMixin::V?; -> col::MapMixin::remove
abstract mixin-stub get keys() → core::Iterable<self::_MyMap&Object&MapMixin::K%>; -> col::MapMixin::keys
return super.{col::MapBase::containsKey}(key);
abstract mixin-stub operator [](core::Object? key) → self::_MyMap&Object&MapMixin::V?; -> col::MapBase::[]
abstract mixin-stub operator []=(covariant-by-class self::_MyMap&Object&MapMixin::K% key, covariant-by-class self::_MyMap&Object&MapMixin::V% value) → void; -> col::MapBase::[]=
abstract mixin-stub method clear() → void; -> col::MapBase::clear
abstract mixin-stub method remove(core::Object? key) → self::_MyMap&Object&MapMixin::V?; -> col::MapBase::remove
abstract mixin-stub get keys() → core::Iterable<self::_MyMap&Object&MapMixin::K%>; -> col::MapBase::keys
mixin-super-stub method cast<RK extends core::Object? = dynamic, RV extends core::Object? = dynamic>() → core::Map<self::_MyMap&Object&MapMixin::cast::RK%, self::_MyMap&Object&MapMixin::cast::RV%>
return super.{col::MapMixin::cast}<self::_MyMap&Object&MapMixin::cast::RK%, self::_MyMap&Object&MapMixin::cast::RV%>();
return super.{col::MapBase::cast}<self::_MyMap&Object&MapMixin::cast::RK%, self::_MyMap&Object&MapMixin::cast::RV%>();
mixin-super-stub method forEach((self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void action) → void
return super.{col::MapMixin::forEach}(action);
return super.{col::MapBase::forEach}(action);
mixin-super-stub method addAll(covariant-by-class core::Map<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%> other) → void
return super.{col::MapMixin::addAll}(other);
return super.{col::MapBase::addAll}(other);
mixin-super-stub method containsValue(core::Object? value) → core::bool
return super.{col::MapMixin::containsValue}(value);
return super.{col::MapBase::containsValue}(value);
mixin-super-stub method putIfAbsent(covariant-by-class self::_MyMap&Object&MapMixin::K% key, covariant-by-class () → self::_MyMap&Object&MapMixin::V% ifAbsent) → self::_MyMap&Object&MapMixin::V%
return super.{col::MapMixin::putIfAbsent}(key, ifAbsent);
return super.{col::MapBase::putIfAbsent}(key, ifAbsent);
mixin-super-stub method update(covariant-by-class self::_MyMap&Object&MapMixin::K% key, covariant-by-class (self::_MyMap&Object&MapMixin::V%) → self::_MyMap&Object&MapMixin::V% update, {covariant-by-class () →? self::_MyMap&Object&MapMixin::V% ifAbsent}) → self::_MyMap&Object&MapMixin::V%
return super.{col::MapMixin::update}(key, update, ifAbsent: ifAbsent);
return super.{col::MapBase::update}(key, update, ifAbsent: ifAbsent);
mixin-super-stub method updateAll(covariant-by-class (self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → self::_MyMap&Object&MapMixin::V% update) → void
return super.{col::MapMixin::updateAll}(update);
return super.{col::MapBase::updateAll}(update);
mixin-super-stub get entries() → core::Iterable<core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>>
return super.{col::MapMixin::entries};
return super.{col::MapBase::entries};
mixin-super-stub method map<K2 extends core::Object? = dynamic, V2 extends core::Object? = dynamic>((self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → core::MapEntry<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%> transform) → core::Map<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%>
return super.{col::MapMixin::map}<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%>(transform);
return super.{col::MapBase::map}<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%>(transform);
mixin-super-stub method addEntries(covariant-by-class core::Iterable<core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>> newEntries) → void
return super.{col::MapMixin::addEntries}(newEntries);
return super.{col::MapBase::addEntries}(newEntries);
mixin-super-stub method removeWhere((self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → core::bool test) → void
return super.{col::MapMixin::removeWhere}(test);
return super.{col::MapBase::removeWhere}(test);
mixin-super-stub get length() → core::int
return super.{col::MapMixin::length};
return super.{col::MapBase::length};
mixin-super-stub get isEmpty() → core::bool
return super.{col::MapMixin::isEmpty};
return super.{col::MapBase::isEmpty};
mixin-super-stub get isNotEmpty() → core::bool
return super.{col::MapMixin::isNotEmpty};
return super.{col::MapBase::isNotEmpty};
mixin-super-stub get values() → core::Iterable<self::_MyMap&Object&MapMixin::V%>
return super.{col::MapMixin::values};
return super.{col::MapBase::values};
mixin-super-stub method toString() → core::String
return super.{col::MapMixin::toString}();
return super.{col::MapBase::toString}();
}
class MyMap<K extends core::Object? = dynamic, V extends core::Object? = dynamic> extends self::_MyMap&Object&MapMixin<self::MyMap::K%, self::MyMap::V%> {
field core::int containsKeyCount;

View file

@ -5,12 +5,12 @@ import "dart:collection" as col;
import "dart:collection";
abstract class _MyMap&Object&MapMixin<K extends core::Object? = dynamic, V extends core::Object? = dynamic> extends core::Object implements col::MapMixin<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
abstract class _MyMap&Object&MapMixin<K extends core::Object? = dynamic, V extends core::Object? = dynamic> extends core::Object implements col::MapBase<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_MyMap&Object&MapMixin<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>
: super core::Object::•()
;
method /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ containsKey(core::Object? key) → core::bool
return this.{col::MapMixin::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::contains}(key){(core::Object?) → core::bool};
return this.{col::MapBase::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::contains}(key){(core::Object?) → core::bool};
abstract operator /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ [](core::Object? key) → self::_MyMap&Object&MapMixin::V?;
abstract operator /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ []=(covariant-by-class self::_MyMap&Object&MapMixin::K% key, covariant-by-class self::_MyMap&Object&MapMixin::V% value) → void;
abstract method /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ clear() → void;
@ -20,27 +20,27 @@ abstract class _MyMap&Object&MapMixin<K extends core::Object? = dynamic, V exten
return core::Map::castFrom<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%, self::_MyMap&Object&MapMixin::cast::RK%, self::_MyMap&Object&MapMixin::cast::RV%>(this);
method /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ forEach((self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void action) → void {
{
synthesized core::Iterator<self::_MyMap&Object&MapMixin::K%> :sync-for-iterator = this.{col::MapMixin::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::iterator}{core::Iterator<self::_MyMap&Object&MapMixin::K%>};
synthesized core::Iterator<self::_MyMap&Object&MapMixin::K%> :sync-for-iterator = this.{col::MapBase::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::iterator}{core::Iterator<self::_MyMap&Object&MapMixin::K%>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
self::_MyMap&Object&MapMixin::K% key = :sync-for-iterator.{core::Iterator::current}{self::_MyMap&Object&MapMixin::K%};
{
action(key, let self::_MyMap&Object&MapMixin::V? #t1 = this.{col::MapMixin::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t1 == null ?{self::_MyMap&Object&MapMixin::V%} #t1 : #t1{self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void};
action(key, let self::_MyMap&Object&MapMixin::V? #t1 = this.{col::MapBase::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t1 == null ?{self::_MyMap&Object&MapMixin::V%} #t1 : #t1{self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void};
}
}
}
}
method /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ addAll(covariant-by-class core::Map<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%> other) → void {
other.{core::Map::forEach}((self::_MyMap&Object&MapMixin::K% key, self::_MyMap&Object&MapMixin::V% value) → void {
this.{col::MapMixin::[]=}(key, value){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void};
this.{col::MapBase::[]=}(key, value){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void};
}){((self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void) → void};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ containsValue(core::Object? value) → core::bool {
{
synthesized core::Iterator<self::_MyMap&Object&MapMixin::K%> :sync-for-iterator = this.{col::MapMixin::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::iterator}{core::Iterator<self::_MyMap&Object&MapMixin::K%>};
synthesized core::Iterator<self::_MyMap&Object&MapMixin::K%> :sync-for-iterator = this.{col::MapBase::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::iterator}{core::Iterator<self::_MyMap&Object&MapMixin::K%>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
self::_MyMap&Object&MapMixin::K% key = :sync-for-iterator.{core::Iterator::current}{self::_MyMap&Object&MapMixin::K%};
{
if(this.{col::MapMixin::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} =={core::Object::==}{(core::Object) → core::bool} value)
if(this.{col::MapBase::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} =={core::Object::==}{(core::Object) → core::bool} value)
return true;
}
}
@ -48,42 +48,42 @@ abstract class _MyMap&Object&MapMixin<K extends core::Object? = dynamic, V exten
return false;
}
method /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ putIfAbsent(covariant-by-class self::_MyMap&Object&MapMixin::K% key, covariant-by-class () → self::_MyMap&Object&MapMixin::V% ifAbsent) → self::_MyMap&Object&MapMixin::V% {
if(this.{col::MapMixin::containsKey}(key){(core::Object?) → core::bool}) {
return let self::_MyMap&Object&MapMixin::V? #t2 = this.{col::MapMixin::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t2 == null ?{self::_MyMap&Object&MapMixin::V%} #t2 : #t2{self::_MyMap&Object&MapMixin::V%};
if(this.{col::MapBase::containsKey}(key){(core::Object?) → core::bool}) {
return let self::_MyMap&Object&MapMixin::V? #t2 = this.{col::MapBase::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t2 == null ?{self::_MyMap&Object&MapMixin::V%} #t2 : #t2{self::_MyMap&Object&MapMixin::V%};
}
return let final self::_MyMap&Object&MapMixin::K% #t3 = key in let final self::_MyMap&Object&MapMixin::V% #t4 = ifAbsent(){() → self::_MyMap&Object&MapMixin::V%} in let final void #t5 = this.{col::MapMixin::[]=}(#t3, #t4){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void} in #t4;
return let final self::_MyMap&Object&MapMixin::K% #t3 = key in let final self::_MyMap&Object&MapMixin::V% #t4 = ifAbsent(){() → self::_MyMap&Object&MapMixin::V%} in let final void #t5 = this.{col::MapBase::[]=}(#t3, #t4){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void} in #t4;
}
method /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ update(covariant-by-class self::_MyMap&Object&MapMixin::K% key, covariant-by-class (self::_MyMap&Object&MapMixin::V%) → self::_MyMap&Object&MapMixin::V% update, {covariant-by-class () →? self::_MyMap&Object&MapMixin::V% ifAbsent = #C1}) → self::_MyMap&Object&MapMixin::V% {
if(this.{col::MapMixin::containsKey}(key){(core::Object?) → core::bool}) {
return let final self::_MyMap&Object&MapMixin::K% #t6 = key in let final self::_MyMap&Object&MapMixin::V% #t7 = update(let self::_MyMap&Object&MapMixin::V? #t8 = this.{col::MapMixin::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t8 == null ?{self::_MyMap&Object&MapMixin::V%} #t8 : #t8{self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::V%) → self::_MyMap&Object&MapMixin::V%} in let final void #t9 = this.{col::MapMixin::[]=}(#t6, #t7){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void} in #t7;
if(this.{col::MapBase::containsKey}(key){(core::Object?) → core::bool}) {
return let final self::_MyMap&Object&MapMixin::K% #t6 = key in let final self::_MyMap&Object&MapMixin::V% #t7 = update(let self::_MyMap&Object&MapMixin::V? #t8 = this.{col::MapBase::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t8 == null ?{self::_MyMap&Object&MapMixin::V%} #t8 : #t8{self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::V%) → self::_MyMap&Object&MapMixin::V%} in let final void #t9 = this.{col::MapBase::[]=}(#t6, #t7){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void} in #t7;
}
if(!(ifAbsent == null)) {
return let final self::_MyMap&Object&MapMixin::K% #t10 = key in let final self::_MyMap&Object&MapMixin::V% #t11 = ifAbsent{() → self::_MyMap&Object&MapMixin::V%}(){() → self::_MyMap&Object&MapMixin::V%} in let final void #t12 = this.{col::MapMixin::[]=}(#t10, #t11){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void} in #t11;
return let final self::_MyMap&Object&MapMixin::K% #t10 = key in let final self::_MyMap&Object&MapMixin::V% #t11 = ifAbsent{() → self::_MyMap&Object&MapMixin::V%}(){() → self::_MyMap&Object&MapMixin::V%} in let final void #t12 = this.{col::MapBase::[]=}(#t10, #t11){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void} in #t11;
}
throw new core::ArgumentError::value(key, "key", "Key not in map.");
}
method /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ updateAll(covariant-by-class (self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → self::_MyMap&Object&MapMixin::V% update) → void {
{
synthesized core::Iterator<self::_MyMap&Object&MapMixin::K%> :sync-for-iterator = this.{col::MapMixin::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::iterator}{core::Iterator<self::_MyMap&Object&MapMixin::K%>};
synthesized core::Iterator<self::_MyMap&Object&MapMixin::K%> :sync-for-iterator = this.{col::MapBase::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::iterator}{core::Iterator<self::_MyMap&Object&MapMixin::K%>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
self::_MyMap&Object&MapMixin::K% key = :sync-for-iterator.{core::Iterator::current}{self::_MyMap&Object&MapMixin::K%};
{
this.{col::MapMixin::[]=}(key, update(key, let self::_MyMap&Object&MapMixin::V? #t13 = this.{col::MapMixin::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t13 == null ?{self::_MyMap&Object&MapMixin::V%} #t13 : #t13{self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void};
this.{col::MapBase::[]=}(key, update(key, let self::_MyMap&Object&MapMixin::V? #t13 = this.{col::MapBase::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t13 == null ?{self::_MyMap&Object&MapMixin::V%} #t13 : #t13{self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void};
}
}
}
}
get /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ entries() → core::Iterable<core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>> {
return this.{col::MapMixin::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::map}<core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>>((self::_MyMap&Object&MapMixin::K% key) → core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%> => new core::MapEntry::_<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>(key, let self::_MyMap&Object&MapMixin::V? #t14 = this.{col::MapMixin::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t14 == null ?{self::_MyMap&Object&MapMixin::V%} #t14 : #t14{self::_MyMap&Object&MapMixin::V%})){((self::_MyMap&Object&MapMixin::K%) → core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>) → core::Iterable<core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>>};
return this.{col::MapBase::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::map}<core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>>((self::_MyMap&Object&MapMixin::K% key) → core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%> => new core::MapEntry::_<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>(key, let self::_MyMap&Object&MapMixin::V? #t14 = this.{col::MapBase::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t14 == null ?{self::_MyMap&Object&MapMixin::V%} #t14 : #t14{self::_MyMap&Object&MapMixin::V%})){((self::_MyMap&Object&MapMixin::K%) → core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>) → core::Iterable<core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>>};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ map<K2 extends core::Object? = dynamic, V2 extends core::Object? = dynamic>((self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → core::MapEntry<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%> transform) → core::Map<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%> {
core::Map<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%> result = <self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%>{};
{
synthesized core::Iterator<self::_MyMap&Object&MapMixin::K%> :sync-for-iterator = this.{col::MapMixin::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::iterator}{core::Iterator<self::_MyMap&Object&MapMixin::K%>};
synthesized core::Iterator<self::_MyMap&Object&MapMixin::K%> :sync-for-iterator = this.{col::MapBase::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::iterator}{core::Iterator<self::_MyMap&Object&MapMixin::K%>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
self::_MyMap&Object&MapMixin::K% key = :sync-for-iterator.{core::Iterator::current}{self::_MyMap&Object&MapMixin::K%};
{
core::MapEntry<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%> entry = transform(key, let self::_MyMap&Object&MapMixin::V? #t15 = this.{col::MapMixin::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t15 == null ?{self::_MyMap&Object&MapMixin::V%} #t15 : #t15{self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → core::MapEntry<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%>};
core::MapEntry<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%> entry = transform(key, let self::_MyMap&Object&MapMixin::V? #t15 = this.{col::MapBase::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t15 == null ?{self::_MyMap&Object&MapMixin::V%} #t15 : #t15{self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → core::MapEntry<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%>};
result.{core::Map::[]=}(entry.{core::MapEntry::key}{self::_MyMap&Object&MapMixin::map::K2%}, entry.{core::MapEntry::value}{self::_MyMap&Object&MapMixin::map::V2%}){(self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%) → void};
}
}
@ -96,7 +96,7 @@ abstract class _MyMap&Object&MapMixin<K extends core::Object? = dynamic, V exten
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%> entry = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>};
{
this.{col::MapMixin::[]=}(entry.{core::MapEntry::key}{self::_MyMap&Object&MapMixin::K%}, entry.{core::MapEntry::value}{self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void};
this.{col::MapBase::[]=}(entry.{core::MapEntry::key}{self::_MyMap&Object&MapMixin::K%}, entry.{core::MapEntry::value}{self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void};
}
}
}
@ -104,11 +104,11 @@ abstract class _MyMap&Object&MapMixin<K extends core::Object? = dynamic, V exten
method /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ removeWhere((self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → core::bool test) → void {
core::List<self::_MyMap&Object&MapMixin::K%> keysToRemove = core::_GrowableList::•<self::_MyMap&Object&MapMixin::K%>(0);
{
synthesized core::Iterator<self::_MyMap&Object&MapMixin::K%> :sync-for-iterator = this.{col::MapMixin::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::iterator}{core::Iterator<self::_MyMap&Object&MapMixin::K%>};
synthesized core::Iterator<self::_MyMap&Object&MapMixin::K%> :sync-for-iterator = this.{col::MapBase::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::iterator}{core::Iterator<self::_MyMap&Object&MapMixin::K%>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
self::_MyMap&Object&MapMixin::K% key = :sync-for-iterator.{core::Iterator::current}{self::_MyMap&Object&MapMixin::K%};
{
if(test(key, let self::_MyMap&Object&MapMixin::V? #t16 = this.{col::MapMixin::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t16 == null ?{self::_MyMap&Object&MapMixin::V%} #t16 : #t16{self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → core::bool})
if(test(key, let self::_MyMap&Object&MapMixin::V? #t16 = this.{col::MapBase::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t16 == null ?{self::_MyMap&Object&MapMixin::V%} #t16 : #t16{self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → core::bool})
keysToRemove.{core::List::add}(key){(self::_MyMap&Object&MapMixin::K%) → void};
}
}
@ -118,21 +118,76 @@ abstract class _MyMap&Object&MapMixin<K extends core::Object? = dynamic, V exten
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
self::_MyMap&Object&MapMixin::K% key = :sync-for-iterator.{core::Iterator::current}{self::_MyMap&Object&MapMixin::K%};
{
this.{col::MapMixin::remove}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?};
this.{col::MapBase::remove}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?};
}
}
}
}
get /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ length() → core::int
return this.{col::MapMixin::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::length}{core::int};
return this.{col::MapBase::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::length}{core::int};
get /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ isEmpty() → core::bool
return this.{col::MapMixin::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::isEmpty}{core::bool};
return this.{col::MapBase::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::isEmpty}{core::bool};
get /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ isNotEmpty() → core::bool
return this.{col::MapMixin::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::isNotEmpty}{core::bool};
return this.{col::MapBase::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::isNotEmpty}{core::bool};
get /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ values() → core::Iterable<self::_MyMap&Object&MapMixin::V%>
return new col::_MapBaseValueIterable::•<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>(this);
method /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ toString() → core::String
return col::MapBase::mapToString(this);
static method /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ mapToString(core::Map<core::Object?, core::Object?> m) → core::String {
if(col::_isToStringVisiting(m)) {
return "{...}";
}
core::StringBuffer result = new core::StringBuffer::•();
try {
col::_toStringVisiting.{core::List::add}(m){(core::Object) → void};
result.{core::StringBuffer::write}("{"){(core::Object?) → void};
core::bool first = true;
m.{core::Map::forEach}((core::Object? k, core::Object? v) → void {
if(!first) {
result.{core::StringBuffer::write}(", "){(core::Object?) → void};
}
first = false;
result.{core::StringBuffer::write}(k){(core::Object?) → void};
result.{core::StringBuffer::write}(": "){(core::Object?) → void};
result.{core::StringBuffer::write}(v){(core::Object?) → void};
}){((core::Object?, core::Object?) → void) → void};
result.{core::StringBuffer::write}("}"){(core::Object?) → void};
}
finally {
assert(core::identical(col::_toStringVisiting.{core::Iterable::last}{core::Object}, m));
col::_toStringVisiting.{core::List::removeLast}(){() → core::Object};
}
return result.{core::StringBuffer::toString}(){() → core::String};
}
static method /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ _fillMapWithMappedIterable(core::Map<core::Object?, core::Object?> map, core::Iterable<core::Object?> iterable, (core::Object?) →? core::Object? key, (core::Object?) →? core::Object? value) → void {
key == null ?{(core::Object?) → core::Object?} key = #C2 : null;
value == null ?{(core::Object?) → core::Object?} value = #C2 : null;
{
synthesized core::Iterator<core::Object?> :sync-for-iterator = iterable.{core::Iterable::iterator}{core::Iterator<core::Object?>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
core::Object? element = :sync-for-iterator.{core::Iterator::current}{core::Object?};
{
map.{core::Map::[]=}(key{(core::Object?) → core::Object?}(element){(core::Object?) → core::Object?}, value{(core::Object?) → core::Object?}(element){(core::Object?) → core::Object?}){(core::Object?, core::Object?) → void};
}
}
}
}
static method /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ _id(core::Object? x) → core::Object?
return x;
static method /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ _fillMapWithIterables(core::Map<core::Object?, core::Object?> map, core::Iterable<core::Object?> keys, core::Iterable<core::Object?> values) → void {
core::Iterator<core::Object?> keyIterator = keys.{core::Iterable::iterator}{core::Iterator<core::Object?>};
core::Iterator<core::Object?> valueIterator = values.{core::Iterable::iterator}{core::Iterator<core::Object?>};
core::bool hasNextKey = keyIterator.{core::Iterator::moveNext}(){() → core::bool};
core::bool hasNextValue = valueIterator.{core::Iterator::moveNext}(){() → core::bool};
while (hasNextKey && hasNextValue) {
map.{core::Map::[]=}(keyIterator.{core::Iterator::current}{core::Object?}, valueIterator.{core::Iterator::current}{core::Object?}){(core::Object?, core::Object?) → void};
hasNextKey = keyIterator.{core::Iterator::moveNext}(){() → core::bool};
hasNextValue = valueIterator.{core::Iterator::moveNext}(){() → core::bool};
}
if(hasNextKey || hasNextValue) {
throw new core::ArgumentError::•("Iterables do not have same length.");
}
}
}
class MyMap<K extends core::Object? = dynamic, V extends core::Object? = dynamic> extends self::_MyMap&Object&MapMixin<self::MyMap::K%, self::MyMap::V%> {
field core::int containsKeyCount = 0;
@ -159,26 +214,26 @@ class MyMap<K extends core::Object? = dynamic, V extends core::Object? = dynamic
return this.{self::MyMap::_map}{core::Map<self::MyMap::K%, self::MyMap::V%>}.{core::Map::remove}(key){(core::Object?) → self::MyMap::V?};
}
static get hasUnsoundNullSafety() → core::bool
return #C2 is{ForNonNullableByDefault} core::List<core::Object>;
return #C3 is{ForNonNullableByDefault} core::List<core::Object>;
static method method(core::Map<core::int, core::String?> m) → core::int {
#L1:
{
final synthesized core::Map<core::int, core::String?> #0#0 = m;
function ##0#2#initializer() → core::bool
return #0#0.{core::Map::containsKey}(#C3){(core::Object?) → core::bool};
return #0#0.{core::Map::containsKey}(#C4){(core::Object?) → core::bool};
late final synthesized core::bool #0#2 = ##0#2#initializer(){() → core::bool};
function ##0#3#initializer() → core::String?
return #0#0.{core::Map::[]}(#C3){(core::Object?) → core::String?};
return #0#0.{core::Map::[]}(#C4){(core::Object?) → core::String?};
late final synthesized core::String? #0#3 = ##0#3#initializer(){() → core::String?};
{
if(#0#2 && #C4 =={core::String::==}{(core::Object) → core::bool} #0#3) {
if(#0#2 && #C5 =={core::String::==}{(core::Object) → core::bool} #0#3) {
{
return 0;
}
}
}
{
if(#0#2 && #C5 =={core::String::==}{(core::Object) → core::bool} #0#3) {
if(#0#2 && #C6 =={core::String::==}{(core::Object) → core::bool} #0#3) {
{
return 1;
}
@ -206,12 +261,13 @@ static method expect(dynamic expected, dynamic actual, dynamic message) → dyna
constants {
#C1 = null
#C2 = <Null>[]
#C3 = 1
#C4 = "foo"
#C5 = "bar"
#C2 = static-tearoff col::MapBase::_id
#C3 = <Null>[]
#C4 = 1
#C5 = "foo"
#C6 = "bar"
}
Extra constant evaluation status:
Evaluated: IsExpression @ org-dartlang-testcase:///caching_constants.dart:7:49 -> BoolConstant(true)
Extra constant evaluation: evaluated: 331, effectively constant: 1
Extra constant evaluation: evaluated: 416, effectively constant: 1

View file

@ -6,130 +6,130 @@ import "dart:math" as math;
import "dart:collection";
abstract class _A&Object&ListMixin = core::Object with col::ListMixin<core::int> /*isAnonymousMixin,hasConstConstructor*/ {
abstract class _A&Object&ListMixin = core::Object with col::ListBase<core::int> /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_A&Object&ListMixin
: super core::Object::•()
;
mixin-super-stub get first() → core::int
return super.{col::ListMixin::first};
return super.{col::ListBase::first};
mixin-super-stub set first(covariant-by-class core::int value) → void
return super.{col::ListMixin::first} = value;
return super.{col::ListBase::first} = value;
mixin-super-stub get last() → core::int
return super.{col::ListMixin::last};
return super.{col::ListBase::last};
mixin-super-stub set last(covariant-by-class core::int value) → void
return super.{col::ListMixin::last} = value;
return super.{col::ListBase::last} = value;
mixin-super-stub get iterator() → core::Iterator<core::int>
return super.{col::ListMixin::iterator};
return super.{col::ListBase::iterator};
mixin-super-stub method elementAt(core::int index) → core::int
return super.{col::ListMixin::elementAt}(index);
return super.{col::ListBase::elementAt}(index);
mixin-super-stub method followedBy(covariant-by-class core::Iterable<core::int> other) → core::Iterable<core::int>
return super.{col::ListMixin::followedBy}(other);
return super.{col::ListBase::followedBy}(other);
mixin-super-stub method forEach((core::int) → void action) → void
return super.{col::ListMixin::forEach}(action);
return super.{col::ListBase::forEach}(action);
mixin-super-stub get isEmpty() → core::bool
return super.{col::ListMixin::isEmpty};
return super.{col::ListBase::isEmpty};
mixin-super-stub get isNotEmpty() → core::bool
return super.{col::ListMixin::isNotEmpty};
return super.{col::ListBase::isNotEmpty};
mixin-super-stub get single() → core::int
return super.{col::ListMixin::single};
return super.{col::ListBase::single};
mixin-super-stub method contains(core::Object? element) → core::bool
return super.{col::ListMixin::contains}(element);
return super.{col::ListBase::contains}(element);
mixin-super-stub method every((core::int) → core::bool test) → core::bool
return super.{col::ListMixin::every}(test);
return super.{col::ListBase::every}(test);
mixin-super-stub method any((core::int) → core::bool test) → core::bool
return super.{col::ListMixin::any}(test);
return super.{col::ListBase::any}(test);
mixin-super-stub method firstWhere((core::int) → core::bool test, {covariant-by-class () →? core::int orElse = #C1}) → core::int
return super.{col::ListMixin::firstWhere}(test, orElse: orElse);
return super.{col::ListBase::firstWhere}(test, orElse: orElse);
mixin-super-stub method lastWhere((core::int) → core::bool test, {covariant-by-class () →? core::int orElse = #C1}) → core::int
return super.{col::ListMixin::lastWhere}(test, orElse: orElse);
return super.{col::ListBase::lastWhere}(test, orElse: orElse);
mixin-super-stub method singleWhere((core::int) → core::bool test, {covariant-by-class () →? core::int orElse = #C1}) → core::int
return super.{col::ListMixin::singleWhere}(test, orElse: orElse);
return super.{col::ListBase::singleWhere}(test, orElse: orElse);
mixin-super-stub method join([core::String separator = #C2]) → core::String
return super.{col::ListMixin::join}(separator);
return super.{col::ListBase::join}(separator);
mixin-super-stub method where((core::int) → core::bool test) → core::Iterable<core::int>
return super.{col::ListMixin::where}(test);
return super.{col::ListBase::where}(test);
mixin-super-stub method whereType<T extends core::Object? = dynamic>() → core::Iterable<self::_A&Object&ListMixin::whereType::T%>
return super.{col::ListMixin::whereType}<self::_A&Object&ListMixin::whereType::T%>();
return super.{col::ListBase::whereType}<self::_A&Object&ListMixin::whereType::T%>();
mixin-super-stub method map<T extends core::Object? = dynamic>((core::int) → self::_A&Object&ListMixin::map::T% f) → core::Iterable<self::_A&Object&ListMixin::map::T%>
return super.{col::ListMixin::map}<self::_A&Object&ListMixin::map::T%>(f);
return super.{col::ListBase::map}<self::_A&Object&ListMixin::map::T%>(f);
mixin-super-stub method expand<T extends core::Object? = dynamic>((core::int) → core::Iterable<self::_A&Object&ListMixin::expand::T%> f) → core::Iterable<self::_A&Object&ListMixin::expand::T%>
return super.{col::ListMixin::expand}<self::_A&Object&ListMixin::expand::T%>(f);
return super.{col::ListBase::expand}<self::_A&Object&ListMixin::expand::T%>(f);
mixin-super-stub method reduce(covariant-by-class (core::int, core::int) → core::int combine) → core::int
return super.{col::ListMixin::reduce}(combine);
return super.{col::ListBase::reduce}(combine);
mixin-super-stub method fold<T extends core::Object? = dynamic>(self::_A&Object&ListMixin::fold::T% initialValue, (self::_A&Object&ListMixin::fold::T%, core::int) → self::_A&Object&ListMixin::fold::T% combine) → self::_A&Object&ListMixin::fold::T%
return super.{col::ListMixin::fold}<self::_A&Object&ListMixin::fold::T%>(initialValue, combine);
return super.{col::ListBase::fold}<self::_A&Object&ListMixin::fold::T%>(initialValue, combine);
mixin-super-stub method skip(core::int count) → core::Iterable<core::int>
return super.{col::ListMixin::skip}(count);
return super.{col::ListBase::skip}(count);
mixin-super-stub method skipWhile((core::int) → core::bool test) → core::Iterable<core::int>
return super.{col::ListMixin::skipWhile}(test);
return super.{col::ListBase::skipWhile}(test);
mixin-super-stub method take(core::int count) → core::Iterable<core::int>
return super.{col::ListMixin::take}(count);
return super.{col::ListBase::take}(count);
mixin-super-stub method takeWhile((core::int) → core::bool test) → core::Iterable<core::int>
return super.{col::ListMixin::takeWhile}(test);
return super.{col::ListBase::takeWhile}(test);
mixin-super-stub method toList({core::bool growable = #C3}) → core::List<core::int>
return super.{col::ListMixin::toList}(growable: growable);
return super.{col::ListBase::toList}(growable: growable);
mixin-super-stub method toSet() → core::Set<core::int>
return super.{col::ListMixin::toSet}();
return super.{col::ListBase::toSet}();
mixin-super-stub method add(covariant-by-class core::int element) → void
return super.{col::ListMixin::add}(element);
return super.{col::ListBase::add}(element);
mixin-super-stub method addAll(covariant-by-class core::Iterable<core::int> iterable) → void
return super.{col::ListMixin::addAll}(iterable);
return super.{col::ListBase::addAll}(iterable);
mixin-super-stub method remove(core::Object? element) → core::bool
return super.{col::ListMixin::remove}(element);
return super.{col::ListBase::remove}(element);
mixin-super-stub method _closeGap(core::int start, core::int end) → void
return super.{col::ListMixin::_closeGap}(start, end);
return super.{col::ListBase::_closeGap}(start, end);
mixin-super-stub method removeWhere((core::int) → core::bool test) → void
return super.{col::ListMixin::removeWhere}(test);
return super.{col::ListBase::removeWhere}(test);
mixin-super-stub method retainWhere((core::int) → core::bool test) → void
return super.{col::ListMixin::retainWhere}(test);
return super.{col::ListBase::retainWhere}(test);
mixin-super-stub method _filter((core::int) → core::bool test, core::bool retainMatching) → void
return super.{col::ListMixin::_filter}(test, retainMatching);
return super.{col::ListBase::_filter}(test, retainMatching);
mixin-super-stub method clear() → void
return super.{col::ListMixin::clear}();
return super.{col::ListBase::clear}();
mixin-super-stub method cast<R extends core::Object? = dynamic>() → core::List<self::_A&Object&ListMixin::cast::R%>
return super.{col::ListMixin::cast}<self::_A&Object&ListMixin::cast::R%>();
return super.{col::ListBase::cast}<self::_A&Object&ListMixin::cast::R%>();
mixin-super-stub method removeLast() → core::int
return super.{col::ListMixin::removeLast}();
return super.{col::ListBase::removeLast}();
mixin-super-stub method sort([(core::int, core::int) →? core::int compare = #C1]) → void
return super.{col::ListMixin::sort}(compare);
return super.{col::ListBase::sort}(compare);
mixin-super-stub method shuffle([math::Random? random = #C1]) → void
return super.{col::ListMixin::shuffle}(random);
return super.{col::ListBase::shuffle}(random);
mixin-super-stub method asMap() → core::Map<core::int, core::int>
return super.{col::ListMixin::asMap}();
return super.{col::ListBase::asMap}();
mixin-super-stub operator +(covariant-by-class core::List<core::int> other) → core::List<core::int>
return super.{col::ListMixin::+}(other);
return super.{col::ListBase::+}(other);
mixin-super-stub method sublist(core::int start, [core::int? end = #C1]) → core::List<core::int>
return super.{col::ListMixin::sublist}(start, end);
return super.{col::ListBase::sublist}(start, end);
mixin-super-stub method getRange(core::int start, core::int end) → core::Iterable<core::int>
return super.{col::ListMixin::getRange}(start, end);
return super.{col::ListBase::getRange}(start, end);
mixin-super-stub method removeRange(core::int start, core::int end) → void
return super.{col::ListMixin::removeRange}(start, end);
return super.{col::ListBase::removeRange}(start, end);
mixin-super-stub method fillRange(core::int start, core::int end, [covariant-by-class core::int? fill = #C1]) → void
return super.{col::ListMixin::fillRange}(start, end, fill);
return super.{col::ListBase::fillRange}(start, end, fill);
mixin-super-stub method setRange(core::int start, core::int end, covariant-by-class core::Iterable<core::int> iterable, [core::int skipCount = #C4]) → void
return super.{col::ListMixin::setRange}(start, end, iterable, skipCount);
return super.{col::ListBase::setRange}(start, end, iterable, skipCount);
mixin-super-stub method replaceRange(core::int start, core::int end, covariant-by-class core::Iterable<core::int> newContents) → void
return super.{col::ListMixin::replaceRange}(start, end, newContents);
return super.{col::ListBase::replaceRange}(start, end, newContents);
mixin-super-stub method indexOf(covariant-by-class core::Object? element, [core::int start = #C4]) → core::int
return super.{col::ListMixin::indexOf}(element, start);
return super.{col::ListBase::indexOf}(element, start);
mixin-super-stub method indexWhere((core::int) → core::bool test, [core::int start = #C4]) → core::int
return super.{col::ListMixin::indexWhere}(test, start);
return super.{col::ListBase::indexWhere}(test, start);
mixin-super-stub method lastIndexOf(covariant-by-class core::Object? element, [core::int? start = #C1]) → core::int
return super.{col::ListMixin::lastIndexOf}(element, start);
return super.{col::ListBase::lastIndexOf}(element, start);
mixin-super-stub method lastIndexWhere((core::int) → core::bool test, [core::int? start = #C1]) → core::int
return super.{col::ListMixin::lastIndexWhere}(test, start);
return super.{col::ListBase::lastIndexWhere}(test, start);
mixin-super-stub method insert(core::int index, covariant-by-class core::int element) → void
return super.{col::ListMixin::insert}(index, element);
return super.{col::ListBase::insert}(index, element);
mixin-super-stub method removeAt(core::int index) → core::int
return super.{col::ListMixin::removeAt}(index);
return super.{col::ListBase::removeAt}(index);
mixin-super-stub method insertAll(core::int index, covariant-by-class core::Iterable<core::int> iterable) → void
return super.{col::ListMixin::insertAll}(index, iterable);
return super.{col::ListBase::insertAll}(index, iterable);
mixin-super-stub method setAll(core::int index, covariant-by-class core::Iterable<core::int> iterable) → void
return super.{col::ListMixin::setAll}(index, iterable);
return super.{col::ListBase::setAll}(index, iterable);
mixin-super-stub get reversed() → core::Iterable<core::int>
return super.{col::ListMixin::reversed};
return super.{col::ListBase::reversed};
mixin-super-stub method toString() → core::String
return super.{col::ListMixin::toString}();
return super.{col::ListBase::toString}();
}
class A extends self::_A&Object&ListMixin {
field core::int count = 0;

View file

@ -7,7 +7,7 @@ import "dart:math" as math;
import "dart:collection";
abstract class _A&Object&ListMixin extends core::Object implements col::ListMixin<core::int> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
abstract class _A&Object&ListMixin extends core::Object implements col::ListBase<core::int> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_A&Object&ListMixin
: super core::Object::•()
;
@ -51,7 +51,7 @@ abstract class _A&Object&ListMixin extends core::Object implements col::ListMixi
get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ isEmpty() → core::bool
return this.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} 0;
get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ isNotEmpty() → core::bool
return !this.{col::ListMixin::isEmpty}{core::bool};
return !this.{col::ListBase::isEmpty}{core::bool};
get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ single() → core::int {
if(this.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} 0)
throw _in::IterableElementError::noElement();
@ -194,7 +194,7 @@ abstract class _A&Object&ListMixin extends core::Object implements col::ListMixi
return new _in::TakeWhileIterable::•<core::int>(this, test);
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ toList({core::bool growable = #C5}) → core::List<core::int> {
if(this.{col::ListMixin::isEmpty}{core::bool})
if(this.{col::ListBase::isEmpty}{core::bool})
return core::List::empty<core::int>(growable: growable);
core::int first = this.{core::List::[]}(0){(core::int) → core::int};
core::List<core::int> result = core::List::filled<core::int>(this.{core::List::length}{core::int}, first, growable: growable);
@ -221,7 +221,7 @@ abstract class _A&Object&ListMixin extends core::Object implements col::ListMixi
core::int element = :sync-for-iterator.{core::Iterator::current}{core::int};
{
assert(this.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} i || (throw new core::ConcurrentModificationError::•(this)));
this.{col::ListMixin::add}(element){(core::int) → void};
this.{col::ListBase::add}(element){(core::int) → void};
i = i.{core::num::+}(1){(core::num) → core::int};
}
}
@ -230,7 +230,7 @@ abstract class _A&Object&ListMixin extends core::Object implements col::ListMixi
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ remove(core::Object? element) → core::bool {
for (core::int i = 0; i.{core::num::<}(this.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
if(this.{core::List::[]}(i){(core::int) → core::int} =={core::Object::==}{(core::Object) → core::bool} element) {
this.{col::ListMixin::_closeGap}(i, i.{core::num::+}(1){(core::num) → core::int}){(core::int, core::int) → void};
this.{col::ListBase::_closeGap}(i, i.{core::num::+}(1){(core::num) → core::int}){(core::int, core::int) → void};
return true;
}
}
@ -248,10 +248,10 @@ abstract class _A&Object&ListMixin extends core::Object implements col::ListMixi
this.{core::List::length} = length.{core::num::-}(size){(core::num) → core::int};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeWhere((core::int) → core::bool test) → void {
this.{col::ListMixin::_filter}(test, false){((core::int) → core::bool, core::bool) → void};
this.{col::ListBase::_filter}(test, false){((core::int) → core::bool, core::bool) → void};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ retainWhere((core::int) → core::bool test) → void {
this.{col::ListMixin::_filter}(test, true){((core::int) → core::bool, core::bool) → void};
this.{col::ListBase::_filter}(test, true){((core::int) → core::bool, core::bool) → void};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ _filter((core::int) → core::bool test, core::bool retainMatching) → void {
core::List<core::int> retained = core::_GrowableList::•<core::int>(0);
@ -266,7 +266,7 @@ abstract class _A&Object&ListMixin extends core::Object implements col::ListMixi
}
}
if(!(retained.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} this.{core::List::length}{core::int})) {
this.{col::ListMixin::setRange}(0, retained.{core::List::length}{core::int}, retained){(core::int, core::int, core::Iterable<core::int>, [core::int]) → void};
this.{col::ListBase::setRange}(0, retained.{core::List::length}{core::int}, retained){(core::int, core::int, core::Iterable<core::int>, [core::int]) → void};
this.{core::List::length} = retained.{core::List::length}{core::int};
}
}
@ -313,7 +313,7 @@ abstract class _A&Object&ListMixin extends core::Object implements col::ListMixi
if(end{core::int} == null)
throw "!";
core::RangeError::checkValidRange(start, end{core::int}, listLength);
return core::List::from<core::int>(this.{col::ListMixin::getRange}(start, end{core::int}){(core::int, core::int) → core::Iterable<core::int>});
return core::List::from<core::int>(this.{col::ListBase::getRange}(start, end{core::int}){(core::int, core::int) → core::Iterable<core::int>});
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ getRange(core::int start, core::int end) → core::Iterable<core::int> {
core::RangeError::checkValidRange(start, end, this.{core::List::length}{core::int});
@ -322,7 +322,7 @@ abstract class _A&Object&ListMixin extends core::Object implements col::ListMixi
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeRange(core::int start, core::int end) → void {
core::RangeError::checkValidRange(start, end, this.{core::List::length}{core::int});
if(end.{core::num::>}(start){(core::num) → core::bool}) {
this.{col::ListMixin::_closeGap}(start, end){(core::int, core::int) → void};
this.{col::ListBase::_closeGap}(start, end){(core::int, core::int) → void};
}
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ fillRange(core::int start, core::int end, [covariant-by-class core::int? fill = #C2]) → void {
@ -365,7 +365,7 @@ abstract class _A&Object&ListMixin extends core::Object implements col::ListMixi
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ replaceRange(core::int start, core::int end, covariant-by-class core::Iterable<core::int> newContents) → void {
core::RangeError::checkValidRange(start, end, this.{core::List::length}{core::int});
if(start =={core::num::==}{(core::Object) → core::bool} this.{core::List::length}{core::int}) {
this.{col::ListMixin::addAll}(newContents){(core::Iterable<core::int>) → void};
this.{col::ListBase::addAll}(newContents){(core::Iterable<core::int>) → void};
return;
}
if(!(newContents is{ForNonNullableByDefault} _in::EfficientLengthIterable<dynamic>)) {
@ -375,9 +375,9 @@ abstract class _A&Object&ListMixin extends core::Object implements col::ListMixi
core::int insertLength = newContents.{core::Iterable::length}{core::int};
if(removeLength.{core::num::>=}(insertLength){(core::num) → core::bool}) {
core::int insertEnd = start.{core::num::+}(insertLength){(core::num) → core::int};
this.{col::ListMixin::setRange}(start, insertEnd, newContents){(core::int, core::int, core::Iterable<core::int>, [core::int]) → void};
this.{col::ListBase::setRange}(start, insertEnd, newContents){(core::int, core::int, core::Iterable<core::int>, [core::int]) → void};
if(removeLength.{core::num::>}(insertLength){(core::num) → core::bool}) {
this.{col::ListMixin::_closeGap}(insertEnd, end){(core::int, core::int) → void};
this.{col::ListBase::_closeGap}(insertEnd, end){(core::int, core::int) → void};
}
}
else
@ -392,7 +392,7 @@ abstract class _A&Object&ListMixin extends core::Object implements col::ListMixi
this.{core::List::[]=}(i, element){(core::int, core::int) → void};
}
else {
this.{col::ListMixin::add}(element){(core::int) → void};
this.{col::ListBase::add}(element){(core::int) → void};
}
i = i.{core::num::+}(1){(core::num) → core::int};
}
@ -404,12 +404,12 @@ abstract class _A&Object&ListMixin extends core::Object implements col::ListMixi
core::int oldLength = this.{core::List::length}{core::int};
core::int insertEnd = start.{core::num::+}(insertLength){(core::num) → core::int};
for (core::int i = oldLength.{core::num::-}(delta){(core::num) → core::int}; i.{core::num::<}(oldLength){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
this.{col::ListMixin::add}(this.{core::List::[]}(i.{core::num::>}(0){(core::num) → core::bool} ?{core::int} i : 0){(core::int) → core::int}){(core::int) → void};
this.{col::ListBase::add}(this.{core::List::[]}(i.{core::num::>}(0){(core::num) → core::bool} ?{core::int} i : 0){(core::int) → core::int}){(core::int) → void};
}
if(insertEnd.{core::num::<}(oldLength){(core::num) → core::bool}) {
this.{col::ListMixin::setRange}(insertEnd, oldLength, this, end){(core::int, core::int, core::Iterable<core::int>, [core::int]) → void};
this.{col::ListBase::setRange}(insertEnd, oldLength, this, end){(core::int, core::int, core::Iterable<core::int>, [core::int]) → void};
}
this.{col::ListMixin::setRange}(start, insertEnd, newContents){(core::int, core::int, core::Iterable<core::int>, [core::int]) → void};
this.{col::ListBase::setRange}(start, insertEnd, newContents){(core::int, core::int, core::Iterable<core::int>, [core::int]) → void};
}
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ indexOf(covariant-by-class core::Object? element, [core::int start = #C7]) → core::int {
@ -456,21 +456,21 @@ abstract class _A&Object&ListMixin extends core::Object implements col::ListMixi
_in::checkNotNullable<core::int>(index, "index");
core::int length = this.{core::List::length}{core::int};
core::RangeError::checkValueInInterval(index, 0, length, "index");
this.{col::ListMixin::add}(element){(core::int) → void};
this.{col::ListBase::add}(element){(core::int) → void};
if(!(index =={core::num::==}{(core::Object) → core::bool} length)) {
this.{col::ListMixin::setRange}(index.{core::num::+}(1){(core::num) → core::int}, length.{core::num::+}(1){(core::num) → core::int}, this, index){(core::int, core::int, core::Iterable<core::int>, [core::int]) → void};
this.{col::ListBase::setRange}(index.{core::num::+}(1){(core::num) → core::int}, length.{core::num::+}(1){(core::num) → core::int}, this, index){(core::int, core::int, core::Iterable<core::int>, [core::int]) → void};
this.{core::List::[]=}(index, element){(core::int, core::int) → void};
}
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeAt(core::int index) → core::int {
core::int result = this.{core::List::[]}(index){(core::int) → core::int};
this.{col::ListMixin::_closeGap}(index, index.{core::num::+}(1){(core::num) → core::int}){(core::int, core::int) → void};
this.{col::ListBase::_closeGap}(index, index.{core::num::+}(1){(core::num) → core::int}){(core::int, core::int) → void};
return result;
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ insertAll(core::int index, covariant-by-class core::Iterable<core::int> iterable) → void {
core::RangeError::checkValueInInterval(index, 0, this.{core::List::length}{core::int}, "index");
if(index =={core::num::==}{(core::Object) → core::bool} this.{core::List::length}{core::int}) {
this.{col::ListMixin::addAll}(iterable){(core::Iterable<core::int>) → void};
this.{col::ListBase::addAll}(iterable){(core::Iterable<core::int>) → void};
return;
}
if(!(iterable is{ForNonNullableByDefault} _in::EfficientLengthIterable<dynamic>) || core::identical(iterable, this)) {
@ -482,7 +482,7 @@ abstract class _A&Object&ListMixin extends core::Object implements col::ListMixi
}
core::int oldLength = this.{core::List::length}{core::int};
for (core::int i = oldLength.{core::num::-}(insertionLength){(core::num) → core::int}; i.{core::num::<}(oldLength){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
this.{col::ListMixin::add}(this.{core::List::[]}(i.{core::num::>}(0){(core::num) → core::bool} ?{core::int} i : 0){(core::int) → core::int}){(core::int) → void};
this.{col::ListBase::add}(this.{core::List::[]}(i.{core::num::>}(0){(core::num) → core::bool} ?{core::int} i : 0){(core::int) → core::int}){(core::int) → void};
}
if(!(iterable.{core::Iterable::length}{core::int} =={core::num::==}{(core::Object) → core::bool} insertionLength)) {
this.{core::List::length} = this.{core::List::length}{core::int}.{core::num::-}(insertionLength){(core::num) → core::int};
@ -490,13 +490,13 @@ abstract class _A&Object&ListMixin extends core::Object implements col::ListMixi
}
core::int oldCopyStart = index.{core::num::+}(insertionLength){(core::num) → core::int};
if(oldCopyStart.{core::num::<}(oldLength){(core::num) → core::bool}) {
this.{col::ListMixin::setRange}(oldCopyStart, oldLength, this, index){(core::int, core::int, core::Iterable<core::int>, [core::int]) → void};
this.{col::ListBase::setRange}(oldCopyStart, oldLength, this, index){(core::int, core::int, core::Iterable<core::int>, [core::int]) → void};
}
this.{col::ListMixin::setAll}(index, iterable){(core::int, core::Iterable<core::int>) → void};
this.{col::ListBase::setAll}(index, iterable){(core::int, core::Iterable<core::int>) → void};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ setAll(core::int index, covariant-by-class core::Iterable<core::int> iterable) → void {
if(iterable is{ForNonNullableByDefault} core::List<dynamic>) {
this.{col::ListMixin::setRange}(index, index.{core::num::+}(iterable.{core::Iterable::length}{core::int}){(core::num) → core::int}, iterable){(core::int, core::int, core::Iterable<core::int>, [core::int]) → void};
this.{col::ListBase::setRange}(index, index.{core::num::+}(iterable.{core::Iterable::length}{core::int}){(core::num) → core::int}, iterable){(core::int, core::int, core::Iterable<core::int>, [core::int]) → void};
}
else {
{
@ -513,10 +513,12 @@ abstract class _A&Object&ListMixin extends core::Object implements col::ListMixi
get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ reversed() → core::Iterable<core::int>
return new _in::ReversedListIterable::•<core::int>(this);
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ toString() → core::String
return col::IterableBase::iterableToFullString(this, "[", "]");
return col::ListBase::listToString(this);
static method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ _compareAny(dynamic a, dynamic b) → core::int {
return core::Comparable::compare(a as{ForNonNullableByDefault} core::Comparable<dynamic>, b as{ForNonNullableByDefault} core::Comparable<dynamic>);
}
static method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ listToString(core::List<core::Object?> list) → core::String
return col::IterableBase::iterableToFullString(list, "[", "]");
}
class A extends self::_A&Object&ListMixin {
field core::int count = 0;
@ -563,14 +565,14 @@ constants {
#C3 = core::pragma {name:#C1, options:#C2}
#C4 = ""
#C5 = true
#C6 = static-tearoff col::ListMixin::_compareAny
#C6 = static-tearoff col::ListBase::_compareAny
#C7 = 0
#C8 = 2
}
Extra constant evaluation status:
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:492:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:500:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:512:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:524:12 -> IntConstant(-1)
Extra constant evaluation: evaluated: 1098, effectively constant: 4
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:456:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:464:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:476:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:488:12 -> IntConstant(-1)
Extra constant evaluation: evaluated: 1100, effectively constant: 4

View file

@ -6,130 +6,130 @@ import "dart:math" as math;
import "dart:collection";
abstract class _A&Object&ListMixin = core::Object with col::ListMixin<core::int> /*isAnonymousMixin,hasConstConstructor*/ {
abstract class _A&Object&ListMixin = core::Object with col::ListBase<core::int> /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_A&Object&ListMixin
: super core::Object::•()
;
mixin-super-stub get first() → core::int
return super.{col::ListMixin::first};
return super.{col::ListBase::first};
mixin-super-stub set first(covariant-by-class core::int value) → void
return super.{col::ListMixin::first} = value;
return super.{col::ListBase::first} = value;
mixin-super-stub get last() → core::int
return super.{col::ListMixin::last};
return super.{col::ListBase::last};
mixin-super-stub set last(covariant-by-class core::int value) → void
return super.{col::ListMixin::last} = value;
return super.{col::ListBase::last} = value;
mixin-super-stub get iterator() → core::Iterator<core::int>
return super.{col::ListMixin::iterator};
return super.{col::ListBase::iterator};
mixin-super-stub method elementAt(core::int index) → core::int
return super.{col::ListMixin::elementAt}(index);
return super.{col::ListBase::elementAt}(index);
mixin-super-stub method followedBy(covariant-by-class core::Iterable<core::int> other) → core::Iterable<core::int>
return super.{col::ListMixin::followedBy}(other);
return super.{col::ListBase::followedBy}(other);
mixin-super-stub method forEach((core::int) → void action) → void
return super.{col::ListMixin::forEach}(action);
return super.{col::ListBase::forEach}(action);
mixin-super-stub get isEmpty() → core::bool
return super.{col::ListMixin::isEmpty};
return super.{col::ListBase::isEmpty};
mixin-super-stub get isNotEmpty() → core::bool
return super.{col::ListMixin::isNotEmpty};
return super.{col::ListBase::isNotEmpty};
mixin-super-stub get single() → core::int
return super.{col::ListMixin::single};
return super.{col::ListBase::single};
mixin-super-stub method contains(core::Object? element) → core::bool
return super.{col::ListMixin::contains}(element);
return super.{col::ListBase::contains}(element);
mixin-super-stub method every((core::int) → core::bool test) → core::bool
return super.{col::ListMixin::every}(test);
return super.{col::ListBase::every}(test);
mixin-super-stub method any((core::int) → core::bool test) → core::bool
return super.{col::ListMixin::any}(test);
return super.{col::ListBase::any}(test);
mixin-super-stub method firstWhere((core::int) → core::bool test, {covariant-by-class () →? core::int orElse = #C1}) → core::int
return super.{col::ListMixin::firstWhere}(test, orElse: orElse);
return super.{col::ListBase::firstWhere}(test, orElse: orElse);
mixin-super-stub method lastWhere((core::int) → core::bool test, {covariant-by-class () →? core::int orElse = #C1}) → core::int
return super.{col::ListMixin::lastWhere}(test, orElse: orElse);
return super.{col::ListBase::lastWhere}(test, orElse: orElse);
mixin-super-stub method singleWhere((core::int) → core::bool test, {covariant-by-class () →? core::int orElse = #C1}) → core::int
return super.{col::ListMixin::singleWhere}(test, orElse: orElse);
return super.{col::ListBase::singleWhere}(test, orElse: orElse);
mixin-super-stub method join([core::String separator = #C2]) → core::String
return super.{col::ListMixin::join}(separator);
return super.{col::ListBase::join}(separator);
mixin-super-stub method where((core::int) → core::bool test) → core::Iterable<core::int>
return super.{col::ListMixin::where}(test);
return super.{col::ListBase::where}(test);
mixin-super-stub method whereType<T extends core::Object? = dynamic>() → core::Iterable<self::_A&Object&ListMixin::whereType::T%>
return super.{col::ListMixin::whereType}<self::_A&Object&ListMixin::whereType::T%>();
return super.{col::ListBase::whereType}<self::_A&Object&ListMixin::whereType::T%>();
mixin-super-stub method map<T extends core::Object? = dynamic>((core::int) → self::_A&Object&ListMixin::map::T% f) → core::Iterable<self::_A&Object&ListMixin::map::T%>
return super.{col::ListMixin::map}<self::_A&Object&ListMixin::map::T%>(f);
return super.{col::ListBase::map}<self::_A&Object&ListMixin::map::T%>(f);
mixin-super-stub method expand<T extends core::Object? = dynamic>((core::int) → core::Iterable<self::_A&Object&ListMixin::expand::T%> f) → core::Iterable<self::_A&Object&ListMixin::expand::T%>
return super.{col::ListMixin::expand}<self::_A&Object&ListMixin::expand::T%>(f);
return super.{col::ListBase::expand}<self::_A&Object&ListMixin::expand::T%>(f);
mixin-super-stub method reduce(covariant-by-class (core::int, core::int) → core::int combine) → core::int
return super.{col::ListMixin::reduce}(combine);
return super.{col::ListBase::reduce}(combine);
mixin-super-stub method fold<T extends core::Object? = dynamic>(self::_A&Object&ListMixin::fold::T% initialValue, (self::_A&Object&ListMixin::fold::T%, core::int) → self::_A&Object&ListMixin::fold::T% combine) → self::_A&Object&ListMixin::fold::T%
return super.{col::ListMixin::fold}<self::_A&Object&ListMixin::fold::T%>(initialValue, combine);
return super.{col::ListBase::fold}<self::_A&Object&ListMixin::fold::T%>(initialValue, combine);
mixin-super-stub method skip(core::int count) → core::Iterable<core::int>
return super.{col::ListMixin::skip}(count);
return super.{col::ListBase::skip}(count);
mixin-super-stub method skipWhile((core::int) → core::bool test) → core::Iterable<core::int>
return super.{col::ListMixin::skipWhile}(test);
return super.{col::ListBase::skipWhile}(test);
mixin-super-stub method take(core::int count) → core::Iterable<core::int>
return super.{col::ListMixin::take}(count);
return super.{col::ListBase::take}(count);
mixin-super-stub method takeWhile((core::int) → core::bool test) → core::Iterable<core::int>
return super.{col::ListMixin::takeWhile}(test);
return super.{col::ListBase::takeWhile}(test);
mixin-super-stub method toList({core::bool growable = #C3}) → core::List<core::int>
return super.{col::ListMixin::toList}(growable: growable);
return super.{col::ListBase::toList}(growable: growable);
mixin-super-stub method toSet() → core::Set<core::int>
return super.{col::ListMixin::toSet}();
return super.{col::ListBase::toSet}();
mixin-super-stub method add(covariant-by-class core::int element) → void
return super.{col::ListMixin::add}(element);
return super.{col::ListBase::add}(element);
mixin-super-stub method addAll(covariant-by-class core::Iterable<core::int> iterable) → void
return super.{col::ListMixin::addAll}(iterable);
return super.{col::ListBase::addAll}(iterable);
mixin-super-stub method remove(core::Object? element) → core::bool
return super.{col::ListMixin::remove}(element);
return super.{col::ListBase::remove}(element);
mixin-super-stub method _closeGap(core::int start, core::int end) → void
return super.{col::ListMixin::_closeGap}(start, end);
return super.{col::ListBase::_closeGap}(start, end);
mixin-super-stub method removeWhere((core::int) → core::bool test) → void
return super.{col::ListMixin::removeWhere}(test);
return super.{col::ListBase::removeWhere}(test);
mixin-super-stub method retainWhere((core::int) → core::bool test) → void
return super.{col::ListMixin::retainWhere}(test);
return super.{col::ListBase::retainWhere}(test);
mixin-super-stub method _filter((core::int) → core::bool test, core::bool retainMatching) → void
return super.{col::ListMixin::_filter}(test, retainMatching);
return super.{col::ListBase::_filter}(test, retainMatching);
mixin-super-stub method clear() → void
return super.{col::ListMixin::clear}();
return super.{col::ListBase::clear}();
mixin-super-stub method cast<R extends core::Object? = dynamic>() → core::List<self::_A&Object&ListMixin::cast::R%>
return super.{col::ListMixin::cast}<self::_A&Object&ListMixin::cast::R%>();
return super.{col::ListBase::cast}<self::_A&Object&ListMixin::cast::R%>();
mixin-super-stub method removeLast() → core::int
return super.{col::ListMixin::removeLast}();
return super.{col::ListBase::removeLast}();
mixin-super-stub method sort([(core::int, core::int) →? core::int compare = #C1]) → void
return super.{col::ListMixin::sort}(compare);
return super.{col::ListBase::sort}(compare);
mixin-super-stub method shuffle([math::Random? random = #C1]) → void
return super.{col::ListMixin::shuffle}(random);
return super.{col::ListBase::shuffle}(random);
mixin-super-stub method asMap() → core::Map<core::int, core::int>
return super.{col::ListMixin::asMap}();
return super.{col::ListBase::asMap}();
mixin-super-stub operator +(covariant-by-class core::List<core::int> other) → core::List<core::int>
return super.{col::ListMixin::+}(other);
return super.{col::ListBase::+}(other);
mixin-super-stub method sublist(core::int start, [core::int? end = #C1]) → core::List<core::int>
return super.{col::ListMixin::sublist}(start, end);
return super.{col::ListBase::sublist}(start, end);
mixin-super-stub method getRange(core::int start, core::int end) → core::Iterable<core::int>
return super.{col::ListMixin::getRange}(start, end);
return super.{col::ListBase::getRange}(start, end);
mixin-super-stub method removeRange(core::int start, core::int end) → void
return super.{col::ListMixin::removeRange}(start, end);
return super.{col::ListBase::removeRange}(start, end);
mixin-super-stub method fillRange(core::int start, core::int end, [covariant-by-class core::int? fill = #C1]) → void
return super.{col::ListMixin::fillRange}(start, end, fill);
return super.{col::ListBase::fillRange}(start, end, fill);
mixin-super-stub method setRange(core::int start, core::int end, covariant-by-class core::Iterable<core::int> iterable, [core::int skipCount = #C4]) → void
return super.{col::ListMixin::setRange}(start, end, iterable, skipCount);
return super.{col::ListBase::setRange}(start, end, iterable, skipCount);
mixin-super-stub method replaceRange(core::int start, core::int end, covariant-by-class core::Iterable<core::int> newContents) → void
return super.{col::ListMixin::replaceRange}(start, end, newContents);
return super.{col::ListBase::replaceRange}(start, end, newContents);
mixin-super-stub method indexOf(covariant-by-class core::Object? element, [core::int start = #C4]) → core::int
return super.{col::ListMixin::indexOf}(element, start);
return super.{col::ListBase::indexOf}(element, start);
mixin-super-stub method indexWhere((core::int) → core::bool test, [core::int start = #C4]) → core::int
return super.{col::ListMixin::indexWhere}(test, start);
return super.{col::ListBase::indexWhere}(test, start);
mixin-super-stub method lastIndexOf(covariant-by-class core::Object? element, [core::int? start = #C1]) → core::int
return super.{col::ListMixin::lastIndexOf}(element, start);
return super.{col::ListBase::lastIndexOf}(element, start);
mixin-super-stub method lastIndexWhere((core::int) → core::bool test, [core::int? start = #C1]) → core::int
return super.{col::ListMixin::lastIndexWhere}(test, start);
return super.{col::ListBase::lastIndexWhere}(test, start);
mixin-super-stub method insert(core::int index, covariant-by-class core::int element) → void
return super.{col::ListMixin::insert}(index, element);
return super.{col::ListBase::insert}(index, element);
mixin-super-stub method removeAt(core::int index) → core::int
return super.{col::ListMixin::removeAt}(index);
return super.{col::ListBase::removeAt}(index);
mixin-super-stub method insertAll(core::int index, covariant-by-class core::Iterable<core::int> iterable) → void
return super.{col::ListMixin::insertAll}(index, iterable);
return super.{col::ListBase::insertAll}(index, iterable);
mixin-super-stub method setAll(core::int index, covariant-by-class core::Iterable<core::int> iterable) → void
return super.{col::ListMixin::setAll}(index, iterable);
return super.{col::ListBase::setAll}(index, iterable);
mixin-super-stub get reversed() → core::Iterable<core::int>
return super.{col::ListMixin::reversed};
return super.{col::ListBase::reversed};
mixin-super-stub method toString() → core::String
return super.{col::ListMixin::toString}();
return super.{col::ListBase::toString}();
}
class A extends self::_A&Object&ListMixin {
field core::int count = 0;

View file

@ -6,130 +6,130 @@ import "dart:math" as math;
import "dart:collection";
abstract class _A&Object&ListMixin = core::Object with col::ListMixin<core::int> /*isAnonymousMixin,hasConstConstructor*/ {
abstract class _A&Object&ListMixin = core::Object with col::ListBase<core::int> /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_A&Object&ListMixin
: super core::Object::•()
;
mixin-super-stub get first() → core::int
return super.{col::ListMixin::first};
return super.{col::ListBase::first};
mixin-super-stub set first(covariant-by-class core::int value) → void
return super.{col::ListMixin::first} = value;
return super.{col::ListBase::first} = value;
mixin-super-stub get last() → core::int
return super.{col::ListMixin::last};
return super.{col::ListBase::last};
mixin-super-stub set last(covariant-by-class core::int value) → void
return super.{col::ListMixin::last} = value;
return super.{col::ListBase::last} = value;
mixin-super-stub get iterator() → core::Iterator<core::int>
return super.{col::ListMixin::iterator};
return super.{col::ListBase::iterator};
mixin-super-stub method elementAt(core::int index) → core::int
return super.{col::ListMixin::elementAt}(index);
return super.{col::ListBase::elementAt}(index);
mixin-super-stub method followedBy(covariant-by-class core::Iterable<core::int> other) → core::Iterable<core::int>
return super.{col::ListMixin::followedBy}(other);
return super.{col::ListBase::followedBy}(other);
mixin-super-stub method forEach((core::int) → void action) → void
return super.{col::ListMixin::forEach}(action);
return super.{col::ListBase::forEach}(action);
mixin-super-stub get isEmpty() → core::bool
return super.{col::ListMixin::isEmpty};
return super.{col::ListBase::isEmpty};
mixin-super-stub get isNotEmpty() → core::bool
return super.{col::ListMixin::isNotEmpty};
return super.{col::ListBase::isNotEmpty};
mixin-super-stub get single() → core::int
return super.{col::ListMixin::single};
return super.{col::ListBase::single};
mixin-super-stub method contains(core::Object? element) → core::bool
return super.{col::ListMixin::contains}(element);
return super.{col::ListBase::contains}(element);
mixin-super-stub method every((core::int) → core::bool test) → core::bool
return super.{col::ListMixin::every}(test);
return super.{col::ListBase::every}(test);
mixin-super-stub method any((core::int) → core::bool test) → core::bool
return super.{col::ListMixin::any}(test);
return super.{col::ListBase::any}(test);
mixin-super-stub method firstWhere((core::int) → core::bool test, {covariant-by-class () →? core::int orElse = #C1}) → core::int
return super.{col::ListMixin::firstWhere}(test, orElse: orElse);
return super.{col::ListBase::firstWhere}(test, orElse: orElse);
mixin-super-stub method lastWhere((core::int) → core::bool test, {covariant-by-class () →? core::int orElse = #C1}) → core::int
return super.{col::ListMixin::lastWhere}(test, orElse: orElse);
return super.{col::ListBase::lastWhere}(test, orElse: orElse);
mixin-super-stub method singleWhere((core::int) → core::bool test, {covariant-by-class () →? core::int orElse = #C1}) → core::int
return super.{col::ListMixin::singleWhere}(test, orElse: orElse);
return super.{col::ListBase::singleWhere}(test, orElse: orElse);
mixin-super-stub method join([core::String separator = #C2]) → core::String
return super.{col::ListMixin::join}(separator);
return super.{col::ListBase::join}(separator);
mixin-super-stub method where((core::int) → core::bool test) → core::Iterable<core::int>
return super.{col::ListMixin::where}(test);
return super.{col::ListBase::where}(test);
mixin-super-stub method whereType<T extends core::Object? = dynamic>() → core::Iterable<self::_A&Object&ListMixin::whereType::T%>
return super.{col::ListMixin::whereType}<self::_A&Object&ListMixin::whereType::T%>();
return super.{col::ListBase::whereType}<self::_A&Object&ListMixin::whereType::T%>();
mixin-super-stub method map<T extends core::Object? = dynamic>((core::int) → self::_A&Object&ListMixin::map::T% f) → core::Iterable<self::_A&Object&ListMixin::map::T%>
return super.{col::ListMixin::map}<self::_A&Object&ListMixin::map::T%>(f);
return super.{col::ListBase::map}<self::_A&Object&ListMixin::map::T%>(f);
mixin-super-stub method expand<T extends core::Object? = dynamic>((core::int) → core::Iterable<self::_A&Object&ListMixin::expand::T%> f) → core::Iterable<self::_A&Object&ListMixin::expand::T%>
return super.{col::ListMixin::expand}<self::_A&Object&ListMixin::expand::T%>(f);
return super.{col::ListBase::expand}<self::_A&Object&ListMixin::expand::T%>(f);
mixin-super-stub method reduce(covariant-by-class (core::int, core::int) → core::int combine) → core::int
return super.{col::ListMixin::reduce}(combine);
return super.{col::ListBase::reduce}(combine);
mixin-super-stub method fold<T extends core::Object? = dynamic>(self::_A&Object&ListMixin::fold::T% initialValue, (self::_A&Object&ListMixin::fold::T%, core::int) → self::_A&Object&ListMixin::fold::T% combine) → self::_A&Object&ListMixin::fold::T%
return super.{col::ListMixin::fold}<self::_A&Object&ListMixin::fold::T%>(initialValue, combine);
return super.{col::ListBase::fold}<self::_A&Object&ListMixin::fold::T%>(initialValue, combine);
mixin-super-stub method skip(core::int count) → core::Iterable<core::int>
return super.{col::ListMixin::skip}(count);
return super.{col::ListBase::skip}(count);
mixin-super-stub method skipWhile((core::int) → core::bool test) → core::Iterable<core::int>
return super.{col::ListMixin::skipWhile}(test);
return super.{col::ListBase::skipWhile}(test);
mixin-super-stub method take(core::int count) → core::Iterable<core::int>
return super.{col::ListMixin::take}(count);
return super.{col::ListBase::take}(count);
mixin-super-stub method takeWhile((core::int) → core::bool test) → core::Iterable<core::int>
return super.{col::ListMixin::takeWhile}(test);
return super.{col::ListBase::takeWhile}(test);
mixin-super-stub method toList({core::bool growable = #C3}) → core::List<core::int>
return super.{col::ListMixin::toList}(growable: growable);
return super.{col::ListBase::toList}(growable: growable);
mixin-super-stub method toSet() → core::Set<core::int>
return super.{col::ListMixin::toSet}();
return super.{col::ListBase::toSet}();
mixin-super-stub method add(covariant-by-class core::int element) → void
return super.{col::ListMixin::add}(element);
return super.{col::ListBase::add}(element);
mixin-super-stub method addAll(covariant-by-class core::Iterable<core::int> iterable) → void
return super.{col::ListMixin::addAll}(iterable);
return super.{col::ListBase::addAll}(iterable);
mixin-super-stub method remove(core::Object? element) → core::bool
return super.{col::ListMixin::remove}(element);
return super.{col::ListBase::remove}(element);
mixin-super-stub method _closeGap(core::int start, core::int end) → void
return super.{col::ListMixin::_closeGap}(start, end);
return super.{col::ListBase::_closeGap}(start, end);
mixin-super-stub method removeWhere((core::int) → core::bool test) → void
return super.{col::ListMixin::removeWhere}(test);
return super.{col::ListBase::removeWhere}(test);
mixin-super-stub method retainWhere((core::int) → core::bool test) → void
return super.{col::ListMixin::retainWhere}(test);
return super.{col::ListBase::retainWhere}(test);
mixin-super-stub method _filter((core::int) → core::bool test, core::bool retainMatching) → void
return super.{col::ListMixin::_filter}(test, retainMatching);
return super.{col::ListBase::_filter}(test, retainMatching);
mixin-super-stub method clear() → void
return super.{col::ListMixin::clear}();
return super.{col::ListBase::clear}();
mixin-super-stub method cast<R extends core::Object? = dynamic>() → core::List<self::_A&Object&ListMixin::cast::R%>
return super.{col::ListMixin::cast}<self::_A&Object&ListMixin::cast::R%>();
return super.{col::ListBase::cast}<self::_A&Object&ListMixin::cast::R%>();
mixin-super-stub method removeLast() → core::int
return super.{col::ListMixin::removeLast}();
return super.{col::ListBase::removeLast}();
mixin-super-stub method sort([(core::int, core::int) →? core::int compare = #C1]) → void
return super.{col::ListMixin::sort}(compare);
return super.{col::ListBase::sort}(compare);
mixin-super-stub method shuffle([math::Random? random = #C1]) → void
return super.{col::ListMixin::shuffle}(random);
return super.{col::ListBase::shuffle}(random);
mixin-super-stub method asMap() → core::Map<core::int, core::int>
return super.{col::ListMixin::asMap}();
return super.{col::ListBase::asMap}();
mixin-super-stub operator +(covariant-by-class core::List<core::int> other) → core::List<core::int>
return super.{col::ListMixin::+}(other);
return super.{col::ListBase::+}(other);
mixin-super-stub method sublist(core::int start, [core::int? end = #C1]) → core::List<core::int>
return super.{col::ListMixin::sublist}(start, end);
return super.{col::ListBase::sublist}(start, end);
mixin-super-stub method getRange(core::int start, core::int end) → core::Iterable<core::int>
return super.{col::ListMixin::getRange}(start, end);
return super.{col::ListBase::getRange}(start, end);
mixin-super-stub method removeRange(core::int start, core::int end) → void
return super.{col::ListMixin::removeRange}(start, end);
return super.{col::ListBase::removeRange}(start, end);
mixin-super-stub method fillRange(core::int start, core::int end, [covariant-by-class core::int? fill = #C1]) → void
return super.{col::ListMixin::fillRange}(start, end, fill);
return super.{col::ListBase::fillRange}(start, end, fill);
mixin-super-stub method setRange(core::int start, core::int end, covariant-by-class core::Iterable<core::int> iterable, [core::int skipCount = #C4]) → void
return super.{col::ListMixin::setRange}(start, end, iterable, skipCount);
return super.{col::ListBase::setRange}(start, end, iterable, skipCount);
mixin-super-stub method replaceRange(core::int start, core::int end, covariant-by-class core::Iterable<core::int> newContents) → void
return super.{col::ListMixin::replaceRange}(start, end, newContents);
return super.{col::ListBase::replaceRange}(start, end, newContents);
mixin-super-stub method indexOf(covariant-by-class core::Object? element, [core::int start = #C4]) → core::int
return super.{col::ListMixin::indexOf}(element, start);
return super.{col::ListBase::indexOf}(element, start);
mixin-super-stub method indexWhere((core::int) → core::bool test, [core::int start = #C4]) → core::int
return super.{col::ListMixin::indexWhere}(test, start);
return super.{col::ListBase::indexWhere}(test, start);
mixin-super-stub method lastIndexOf(covariant-by-class core::Object? element, [core::int? start = #C1]) → core::int
return super.{col::ListMixin::lastIndexOf}(element, start);
return super.{col::ListBase::lastIndexOf}(element, start);
mixin-super-stub method lastIndexWhere((core::int) → core::bool test, [core::int? start = #C1]) → core::int
return super.{col::ListMixin::lastIndexWhere}(test, start);
return super.{col::ListBase::lastIndexWhere}(test, start);
mixin-super-stub method insert(core::int index, covariant-by-class core::int element) → void
return super.{col::ListMixin::insert}(index, element);
return super.{col::ListBase::insert}(index, element);
mixin-super-stub method removeAt(core::int index) → core::int
return super.{col::ListMixin::removeAt}(index);
return super.{col::ListBase::removeAt}(index);
mixin-super-stub method insertAll(core::int index, covariant-by-class core::Iterable<core::int> iterable) → void
return super.{col::ListMixin::insertAll}(index, iterable);
return super.{col::ListBase::insertAll}(index, iterable);
mixin-super-stub method setAll(core::int index, covariant-by-class core::Iterable<core::int> iterable) → void
return super.{col::ListMixin::setAll}(index, iterable);
return super.{col::ListBase::setAll}(index, iterable);
mixin-super-stub get reversed() → core::Iterable<core::int>
return super.{col::ListMixin::reversed};
return super.{col::ListBase::reversed};
mixin-super-stub method toString() → core::String
return super.{col::ListMixin::toString}();
return super.{col::ListBase::toString}();
}
class A extends self::_A&Object&ListMixin {
field core::int count = 0;

View file

@ -6,130 +6,130 @@ import "dart:math" as math;
import "dart:collection";
abstract class _A&Object&ListMixin = core::Object with col::ListMixin<core::int> /*isAnonymousMixin,hasConstConstructor*/ {
abstract class _A&Object&ListMixin = core::Object with col::ListBase<core::int> /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_A&Object&ListMixin
: super core::Object::•()
;
mixin-super-stub get first() → core::int
return super.{col::ListMixin::first};
return super.{col::ListBase::first};
mixin-super-stub set first(covariant-by-class core::int value) → void
return super.{col::ListMixin::first} = value;
return super.{col::ListBase::first} = value;
mixin-super-stub get last() → core::int
return super.{col::ListMixin::last};
return super.{col::ListBase::last};
mixin-super-stub set last(covariant-by-class core::int value) → void
return super.{col::ListMixin::last} = value;
return super.{col::ListBase::last} = value;
mixin-super-stub get iterator() → core::Iterator<core::int>
return super.{col::ListMixin::iterator};
return super.{col::ListBase::iterator};
mixin-super-stub method elementAt(core::int index) → core::int
return super.{col::ListMixin::elementAt}(index);
return super.{col::ListBase::elementAt}(index);
mixin-super-stub method followedBy(covariant-by-class core::Iterable<core::int> other) → core::Iterable<core::int>
return super.{col::ListMixin::followedBy}(other);
return super.{col::ListBase::followedBy}(other);
mixin-super-stub method forEach((core::int) → void action) → void
return super.{col::ListMixin::forEach}(action);
return super.{col::ListBase::forEach}(action);
mixin-super-stub get isEmpty() → core::bool
return super.{col::ListMixin::isEmpty};
return super.{col::ListBase::isEmpty};
mixin-super-stub get isNotEmpty() → core::bool
return super.{col::ListMixin::isNotEmpty};
return super.{col::ListBase::isNotEmpty};
mixin-super-stub get single() → core::int
return super.{col::ListMixin::single};
return super.{col::ListBase::single};
mixin-super-stub method contains(core::Object? element) → core::bool
return super.{col::ListMixin::contains}(element);
return super.{col::ListBase::contains}(element);
mixin-super-stub method every((core::int) → core::bool test) → core::bool
return super.{col::ListMixin::every}(test);
return super.{col::ListBase::every}(test);
mixin-super-stub method any((core::int) → core::bool test) → core::bool
return super.{col::ListMixin::any}(test);
return super.{col::ListBase::any}(test);
mixin-super-stub method firstWhere((core::int) → core::bool test, {covariant-by-class () →? core::int orElse}) → core::int
return super.{col::ListMixin::firstWhere}(test, orElse: orElse);
return super.{col::ListBase::firstWhere}(test, orElse: orElse);
mixin-super-stub method lastWhere((core::int) → core::bool test, {covariant-by-class () →? core::int orElse}) → core::int
return super.{col::ListMixin::lastWhere}(test, orElse: orElse);
return super.{col::ListBase::lastWhere}(test, orElse: orElse);
mixin-super-stub method singleWhere((core::int) → core::bool test, {covariant-by-class () →? core::int orElse}) → core::int
return super.{col::ListMixin::singleWhere}(test, orElse: orElse);
return super.{col::ListBase::singleWhere}(test, orElse: orElse);
mixin-super-stub method join([core::String separator]) → core::String
return super.{col::ListMixin::join}(separator);
return super.{col::ListBase::join}(separator);
mixin-super-stub method where((core::int) → core::bool test) → core::Iterable<core::int>
return super.{col::ListMixin::where}(test);
return super.{col::ListBase::where}(test);
mixin-super-stub method whereType<T extends core::Object? = dynamic>() → core::Iterable<self::_A&Object&ListMixin::whereType::T%>
return super.{col::ListMixin::whereType}<self::_A&Object&ListMixin::whereType::T%>();
return super.{col::ListBase::whereType}<self::_A&Object&ListMixin::whereType::T%>();
mixin-super-stub method map<T extends core::Object? = dynamic>((core::int) → self::_A&Object&ListMixin::map::T% f) → core::Iterable<self::_A&Object&ListMixin::map::T%>
return super.{col::ListMixin::map}<self::_A&Object&ListMixin::map::T%>(f);
return super.{col::ListBase::map}<self::_A&Object&ListMixin::map::T%>(f);
mixin-super-stub method expand<T extends core::Object? = dynamic>((core::int) → core::Iterable<self::_A&Object&ListMixin::expand::T%> f) → core::Iterable<self::_A&Object&ListMixin::expand::T%>
return super.{col::ListMixin::expand}<self::_A&Object&ListMixin::expand::T%>(f);
return super.{col::ListBase::expand}<self::_A&Object&ListMixin::expand::T%>(f);
mixin-super-stub method reduce(covariant-by-class (core::int, core::int) → core::int combine) → core::int
return super.{col::ListMixin::reduce}(combine);
return super.{col::ListBase::reduce}(combine);
mixin-super-stub method fold<T extends core::Object? = dynamic>(self::_A&Object&ListMixin::fold::T% initialValue, (self::_A&Object&ListMixin::fold::T%, core::int) → self::_A&Object&ListMixin::fold::T% combine) → self::_A&Object&ListMixin::fold::T%
return super.{col::ListMixin::fold}<self::_A&Object&ListMixin::fold::T%>(initialValue, combine);
return super.{col::ListBase::fold}<self::_A&Object&ListMixin::fold::T%>(initialValue, combine);
mixin-super-stub method skip(core::int count) → core::Iterable<core::int>
return super.{col::ListMixin::skip}(count);
return super.{col::ListBase::skip}(count);
mixin-super-stub method skipWhile((core::int) → core::bool test) → core::Iterable<core::int>
return super.{col::ListMixin::skipWhile}(test);
return super.{col::ListBase::skipWhile}(test);
mixin-super-stub method take(core::int count) → core::Iterable<core::int>
return super.{col::ListMixin::take}(count);
return super.{col::ListBase::take}(count);
mixin-super-stub method takeWhile((core::int) → core::bool test) → core::Iterable<core::int>
return super.{col::ListMixin::takeWhile}(test);
return super.{col::ListBase::takeWhile}(test);
mixin-super-stub method toList({core::bool growable}) → core::List<core::int>
return super.{col::ListMixin::toList}(growable: growable);
return super.{col::ListBase::toList}(growable: growable);
mixin-super-stub method toSet() → core::Set<core::int>
return super.{col::ListMixin::toSet}();
return super.{col::ListBase::toSet}();
mixin-super-stub method add(covariant-by-class core::int element) → void
return super.{col::ListMixin::add}(element);
return super.{col::ListBase::add}(element);
mixin-super-stub method addAll(covariant-by-class core::Iterable<core::int> iterable) → void
return super.{col::ListMixin::addAll}(iterable);
return super.{col::ListBase::addAll}(iterable);
mixin-super-stub method remove(core::Object? element) → core::bool
return super.{col::ListMixin::remove}(element);
return super.{col::ListBase::remove}(element);
mixin-super-stub method _closeGap(core::int start, core::int end) → void
return super.{col::ListMixin::_closeGap}(start, end);
return super.{col::ListBase::_closeGap}(start, end);
mixin-super-stub method removeWhere((core::int) → core::bool test) → void
return super.{col::ListMixin::removeWhere}(test);
return super.{col::ListBase::removeWhere}(test);
mixin-super-stub method retainWhere((core::int) → core::bool test) → void
return super.{col::ListMixin::retainWhere}(test);
return super.{col::ListBase::retainWhere}(test);
mixin-super-stub method _filter((core::int) → core::bool test, core::bool retainMatching) → void
return super.{col::ListMixin::_filter}(test, retainMatching);
return super.{col::ListBase::_filter}(test, retainMatching);
mixin-super-stub method clear() → void
return super.{col::ListMixin::clear}();
return super.{col::ListBase::clear}();
mixin-super-stub method cast<R extends core::Object? = dynamic>() → core::List<self::_A&Object&ListMixin::cast::R%>
return super.{col::ListMixin::cast}<self::_A&Object&ListMixin::cast::R%>();
return super.{col::ListBase::cast}<self::_A&Object&ListMixin::cast::R%>();
mixin-super-stub method removeLast() → core::int
return super.{col::ListMixin::removeLast}();
return super.{col::ListBase::removeLast}();
mixin-super-stub method sort([(core::int, core::int) →? core::int compare]) → void
return super.{col::ListMixin::sort}(compare);
return super.{col::ListBase::sort}(compare);
mixin-super-stub method shuffle([math::Random? random]) → void
return super.{col::ListMixin::shuffle}(random);
return super.{col::ListBase::shuffle}(random);
mixin-super-stub method asMap() → core::Map<core::int, core::int>
return super.{col::ListMixin::asMap}();
return super.{col::ListBase::asMap}();
mixin-super-stub operator +(covariant-by-class core::List<core::int> other) → core::List<core::int>
return super.{col::ListMixin::+}(other);
return super.{col::ListBase::+}(other);
mixin-super-stub method sublist(core::int start, [core::int? end]) → core::List<core::int>
return super.{col::ListMixin::sublist}(start, end);
return super.{col::ListBase::sublist}(start, end);
mixin-super-stub method getRange(core::int start, core::int end) → core::Iterable<core::int>
return super.{col::ListMixin::getRange}(start, end);
return super.{col::ListBase::getRange}(start, end);
mixin-super-stub method removeRange(core::int start, core::int end) → void
return super.{col::ListMixin::removeRange}(start, end);
return super.{col::ListBase::removeRange}(start, end);
mixin-super-stub method fillRange(core::int start, core::int end, [covariant-by-class core::int? fill]) → void
return super.{col::ListMixin::fillRange}(start, end, fill);
return super.{col::ListBase::fillRange}(start, end, fill);
mixin-super-stub method setRange(core::int start, core::int end, covariant-by-class core::Iterable<core::int> iterable, [core::int skipCount]) → void
return super.{col::ListMixin::setRange}(start, end, iterable, skipCount);
return super.{col::ListBase::setRange}(start, end, iterable, skipCount);
mixin-super-stub method replaceRange(core::int start, core::int end, covariant-by-class core::Iterable<core::int> newContents) → void
return super.{col::ListMixin::replaceRange}(start, end, newContents);
return super.{col::ListBase::replaceRange}(start, end, newContents);
mixin-super-stub method indexOf(covariant-by-class core::Object? element, [core::int start]) → core::int
return super.{col::ListMixin::indexOf}(element, start);
return super.{col::ListBase::indexOf}(element, start);
mixin-super-stub method indexWhere((core::int) → core::bool test, [core::int start]) → core::int
return super.{col::ListMixin::indexWhere}(test, start);
return super.{col::ListBase::indexWhere}(test, start);
mixin-super-stub method lastIndexOf(covariant-by-class core::Object? element, [core::int? start]) → core::int
return super.{col::ListMixin::lastIndexOf}(element, start);
return super.{col::ListBase::lastIndexOf}(element, start);
mixin-super-stub method lastIndexWhere((core::int) → core::bool test, [core::int? start]) → core::int
return super.{col::ListMixin::lastIndexWhere}(test, start);
return super.{col::ListBase::lastIndexWhere}(test, start);
mixin-super-stub method insert(core::int index, covariant-by-class core::int element) → void
return super.{col::ListMixin::insert}(index, element);
return super.{col::ListBase::insert}(index, element);
mixin-super-stub method removeAt(core::int index) → core::int
return super.{col::ListMixin::removeAt}(index);
return super.{col::ListBase::removeAt}(index);
mixin-super-stub method insertAll(core::int index, covariant-by-class core::Iterable<core::int> iterable) → void
return super.{col::ListMixin::insertAll}(index, iterable);
return super.{col::ListBase::insertAll}(index, iterable);
mixin-super-stub method setAll(core::int index, covariant-by-class core::Iterable<core::int> iterable) → void
return super.{col::ListMixin::setAll}(index, iterable);
return super.{col::ListBase::setAll}(index, iterable);
mixin-super-stub get reversed() → core::Iterable<core::int>
return super.{col::ListMixin::reversed};
return super.{col::ListBase::reversed};
mixin-super-stub method toString() → core::String
return super.{col::ListMixin::toString}();
return super.{col::ListBase::toString}();
}
class A extends self::_A&Object&ListMixin {
field core::int count;

View file

@ -7,7 +7,7 @@ import "dart:math" as math;
import "dart:collection";
abstract class _A&Object&ListMixin extends core::Object implements col::ListMixin<core::int> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
abstract class _A&Object&ListMixin extends core::Object implements col::ListBase<core::int> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_A&Object&ListMixin
: super core::Object::•()
;
@ -51,7 +51,7 @@ abstract class _A&Object&ListMixin extends core::Object implements col::ListMixi
get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ isEmpty() → core::bool
return this.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} 0;
get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ isNotEmpty() → core::bool
return !this.{col::ListMixin::isEmpty}{core::bool};
return !this.{col::ListBase::isEmpty}{core::bool};
get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ single() → core::int {
if(this.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} 0)
throw _in::IterableElementError::noElement();
@ -194,7 +194,7 @@ abstract class _A&Object&ListMixin extends core::Object implements col::ListMixi
return new _in::TakeWhileIterable::•<core::int>(this, test);
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ toList({core::bool growable = #C5}) → core::List<core::int> {
if(this.{col::ListMixin::isEmpty}{core::bool})
if(this.{col::ListBase::isEmpty}{core::bool})
return core::List::empty<core::int>(growable: growable);
core::int first = this.{core::List::[]}(0){(core::int) → core::int};
core::List<core::int> result = core::List::filled<core::int>(this.{core::List::length}{core::int}, first, growable: growable);
@ -221,7 +221,7 @@ abstract class _A&Object&ListMixin extends core::Object implements col::ListMixi
core::int element = :sync-for-iterator.{core::Iterator::current}{core::int};
{
assert(this.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} i || (throw new core::ConcurrentModificationError::•(this)));
this.{col::ListMixin::add}(element){(core::int) → void};
this.{col::ListBase::add}(element){(core::int) → void};
i = i.{core::num::+}(1){(core::num) → core::int};
}
}
@ -230,7 +230,7 @@ abstract class _A&Object&ListMixin extends core::Object implements col::ListMixi
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ remove(core::Object? element) → core::bool {
for (core::int i = 0; i.{core::num::<}(this.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
if(this.{core::List::[]}(i){(core::int) → core::int} =={core::Object::==}{(core::Object) → core::bool} element) {
this.{col::ListMixin::_closeGap}(i, i.{core::num::+}(1){(core::num) → core::int}){(core::int, core::int) → void};
this.{col::ListBase::_closeGap}(i, i.{core::num::+}(1){(core::num) → core::int}){(core::int, core::int) → void};
return true;
}
}
@ -248,10 +248,10 @@ abstract class _A&Object&ListMixin extends core::Object implements col::ListMixi
this.{core::List::length} = length.{core::num::-}(size){(core::num) → core::int};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeWhere((core::int) → core::bool test) → void {
this.{col::ListMixin::_filter}(test, false){((core::int) → core::bool, core::bool) → void};
this.{col::ListBase::_filter}(test, false){((core::int) → core::bool, core::bool) → void};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ retainWhere((core::int) → core::bool test) → void {
this.{col::ListMixin::_filter}(test, true){((core::int) → core::bool, core::bool) → void};
this.{col::ListBase::_filter}(test, true){((core::int) → core::bool, core::bool) → void};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ _filter((core::int) → core::bool test, core::bool retainMatching) → void {
core::List<core::int> retained = core::_GrowableList::•<core::int>(0);
@ -266,7 +266,7 @@ abstract class _A&Object&ListMixin extends core::Object implements col::ListMixi
}
}
if(!(retained.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} this.{core::List::length}{core::int})) {
this.{col::ListMixin::setRange}(0, retained.{core::List::length}{core::int}, retained){(core::int, core::int, core::Iterable<core::int>, [core::int]) → void};
this.{col::ListBase::setRange}(0, retained.{core::List::length}{core::int}, retained){(core::int, core::int, core::Iterable<core::int>, [core::int]) → void};
this.{core::List::length} = retained.{core::List::length}{core::int};
}
}
@ -313,7 +313,7 @@ abstract class _A&Object&ListMixin extends core::Object implements col::ListMixi
if(end{core::int} == null)
throw "!";
core::RangeError::checkValidRange(start, end{core::int}, listLength);
return core::List::from<core::int>(this.{col::ListMixin::getRange}(start, end{core::int}){(core::int, core::int) → core::Iterable<core::int>});
return core::List::from<core::int>(this.{col::ListBase::getRange}(start, end{core::int}){(core::int, core::int) → core::Iterable<core::int>});
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ getRange(core::int start, core::int end) → core::Iterable<core::int> {
core::RangeError::checkValidRange(start, end, this.{core::List::length}{core::int});
@ -322,7 +322,7 @@ abstract class _A&Object&ListMixin extends core::Object implements col::ListMixi
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeRange(core::int start, core::int end) → void {
core::RangeError::checkValidRange(start, end, this.{core::List::length}{core::int});
if(end.{core::num::>}(start){(core::num) → core::bool}) {
this.{col::ListMixin::_closeGap}(start, end){(core::int, core::int) → void};
this.{col::ListBase::_closeGap}(start, end){(core::int, core::int) → void};
}
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ fillRange(core::int start, core::int end, [covariant-by-class core::int? fill = #C2]) → void {
@ -365,7 +365,7 @@ abstract class _A&Object&ListMixin extends core::Object implements col::ListMixi
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ replaceRange(core::int start, core::int end, covariant-by-class core::Iterable<core::int> newContents) → void {
core::RangeError::checkValidRange(start, end, this.{core::List::length}{core::int});
if(start =={core::num::==}{(core::Object) → core::bool} this.{core::List::length}{core::int}) {
this.{col::ListMixin::addAll}(newContents){(core::Iterable<core::int>) → void};
this.{col::ListBase::addAll}(newContents){(core::Iterable<core::int>) → void};
return;
}
if(!(newContents is{ForNonNullableByDefault} _in::EfficientLengthIterable<dynamic>)) {
@ -375,9 +375,9 @@ abstract class _A&Object&ListMixin extends core::Object implements col::ListMixi
core::int insertLength = newContents.{core::Iterable::length}{core::int};
if(removeLength.{core::num::>=}(insertLength){(core::num) → core::bool}) {
core::int insertEnd = start.{core::num::+}(insertLength){(core::num) → core::int};
this.{col::ListMixin::setRange}(start, insertEnd, newContents){(core::int, core::int, core::Iterable<core::int>, [core::int]) → void};
this.{col::ListBase::setRange}(start, insertEnd, newContents){(core::int, core::int, core::Iterable<core::int>, [core::int]) → void};
if(removeLength.{core::num::>}(insertLength){(core::num) → core::bool}) {
this.{col::ListMixin::_closeGap}(insertEnd, end){(core::int, core::int) → void};
this.{col::ListBase::_closeGap}(insertEnd, end){(core::int, core::int) → void};
}
}
else
@ -392,7 +392,7 @@ abstract class _A&Object&ListMixin extends core::Object implements col::ListMixi
this.{core::List::[]=}(i, element){(core::int, core::int) → void};
}
else {
this.{col::ListMixin::add}(element){(core::int) → void};
this.{col::ListBase::add}(element){(core::int) → void};
}
i = i.{core::num::+}(1){(core::num) → core::int};
}
@ -404,12 +404,12 @@ abstract class _A&Object&ListMixin extends core::Object implements col::ListMixi
core::int oldLength = this.{core::List::length}{core::int};
core::int insertEnd = start.{core::num::+}(insertLength){(core::num) → core::int};
for (core::int i = oldLength.{core::num::-}(delta){(core::num) → core::int}; i.{core::num::<}(oldLength){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
this.{col::ListMixin::add}(this.{core::List::[]}(i.{core::num::>}(0){(core::num) → core::bool} ?{core::int} i : 0){(core::int) → core::int}){(core::int) → void};
this.{col::ListBase::add}(this.{core::List::[]}(i.{core::num::>}(0){(core::num) → core::bool} ?{core::int} i : 0){(core::int) → core::int}){(core::int) → void};
}
if(insertEnd.{core::num::<}(oldLength){(core::num) → core::bool}) {
this.{col::ListMixin::setRange}(insertEnd, oldLength, this, end){(core::int, core::int, core::Iterable<core::int>, [core::int]) → void};
this.{col::ListBase::setRange}(insertEnd, oldLength, this, end){(core::int, core::int, core::Iterable<core::int>, [core::int]) → void};
}
this.{col::ListMixin::setRange}(start, insertEnd, newContents){(core::int, core::int, core::Iterable<core::int>, [core::int]) → void};
this.{col::ListBase::setRange}(start, insertEnd, newContents){(core::int, core::int, core::Iterable<core::int>, [core::int]) → void};
}
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ indexOf(covariant-by-class core::Object? element, [core::int start = #C7]) → core::int {
@ -456,21 +456,21 @@ abstract class _A&Object&ListMixin extends core::Object implements col::ListMixi
_in::checkNotNullable<core::int>(index, "index");
core::int length = this.{core::List::length}{core::int};
core::RangeError::checkValueInInterval(index, 0, length, "index");
this.{col::ListMixin::add}(element){(core::int) → void};
this.{col::ListBase::add}(element){(core::int) → void};
if(!(index =={core::num::==}{(core::Object) → core::bool} length)) {
this.{col::ListMixin::setRange}(index.{core::num::+}(1){(core::num) → core::int}, length.{core::num::+}(1){(core::num) → core::int}, this, index){(core::int, core::int, core::Iterable<core::int>, [core::int]) → void};
this.{col::ListBase::setRange}(index.{core::num::+}(1){(core::num) → core::int}, length.{core::num::+}(1){(core::num) → core::int}, this, index){(core::int, core::int, core::Iterable<core::int>, [core::int]) → void};
this.{core::List::[]=}(index, element){(core::int, core::int) → void};
}
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeAt(core::int index) → core::int {
core::int result = this.{core::List::[]}(index){(core::int) → core::int};
this.{col::ListMixin::_closeGap}(index, index.{core::num::+}(1){(core::num) → core::int}){(core::int, core::int) → void};
this.{col::ListBase::_closeGap}(index, index.{core::num::+}(1){(core::num) → core::int}){(core::int, core::int) → void};
return result;
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ insertAll(core::int index, covariant-by-class core::Iterable<core::int> iterable) → void {
core::RangeError::checkValueInInterval(index, 0, this.{core::List::length}{core::int}, "index");
if(index =={core::num::==}{(core::Object) → core::bool} this.{core::List::length}{core::int}) {
this.{col::ListMixin::addAll}(iterable){(core::Iterable<core::int>) → void};
this.{col::ListBase::addAll}(iterable){(core::Iterable<core::int>) → void};
return;
}
if(!(iterable is{ForNonNullableByDefault} _in::EfficientLengthIterable<dynamic>) || core::identical(iterable, this)) {
@ -482,7 +482,7 @@ abstract class _A&Object&ListMixin extends core::Object implements col::ListMixi
}
core::int oldLength = this.{core::List::length}{core::int};
for (core::int i = oldLength.{core::num::-}(insertionLength){(core::num) → core::int}; i.{core::num::<}(oldLength){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
this.{col::ListMixin::add}(this.{core::List::[]}(i.{core::num::>}(0){(core::num) → core::bool} ?{core::int} i : 0){(core::int) → core::int}){(core::int) → void};
this.{col::ListBase::add}(this.{core::List::[]}(i.{core::num::>}(0){(core::num) → core::bool} ?{core::int} i : 0){(core::int) → core::int}){(core::int) → void};
}
if(!(iterable.{core::Iterable::length}{core::int} =={core::num::==}{(core::Object) → core::bool} insertionLength)) {
this.{core::List::length} = this.{core::List::length}{core::int}.{core::num::-}(insertionLength){(core::num) → core::int};
@ -490,13 +490,13 @@ abstract class _A&Object&ListMixin extends core::Object implements col::ListMixi
}
core::int oldCopyStart = index.{core::num::+}(insertionLength){(core::num) → core::int};
if(oldCopyStart.{core::num::<}(oldLength){(core::num) → core::bool}) {
this.{col::ListMixin::setRange}(oldCopyStart, oldLength, this, index){(core::int, core::int, core::Iterable<core::int>, [core::int]) → void};
this.{col::ListBase::setRange}(oldCopyStart, oldLength, this, index){(core::int, core::int, core::Iterable<core::int>, [core::int]) → void};
}
this.{col::ListMixin::setAll}(index, iterable){(core::int, core::Iterable<core::int>) → void};
this.{col::ListBase::setAll}(index, iterable){(core::int, core::Iterable<core::int>) → void};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ setAll(core::int index, covariant-by-class core::Iterable<core::int> iterable) → void {
if(iterable is{ForNonNullableByDefault} core::List<dynamic>) {
this.{col::ListMixin::setRange}(index, index.{core::num::+}(iterable.{core::Iterable::length}{core::int}){(core::num) → core::int}, iterable){(core::int, core::int, core::Iterable<core::int>, [core::int]) → void};
this.{col::ListBase::setRange}(index, index.{core::num::+}(iterable.{core::Iterable::length}{core::int}){(core::num) → core::int}, iterable){(core::int, core::int, core::Iterable<core::int>, [core::int]) → void};
}
else {
{
@ -513,10 +513,12 @@ abstract class _A&Object&ListMixin extends core::Object implements col::ListMixi
get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ reversed() → core::Iterable<core::int>
return new _in::ReversedListIterable::•<core::int>(this);
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ toString() → core::String
return col::IterableBase::iterableToFullString(this, "[", "]");
return col::ListBase::listToString(this);
static method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ _compareAny(dynamic a, dynamic b) → core::int {
return core::Comparable::compare(a as{ForNonNullableByDefault} core::Comparable<dynamic>, b as{ForNonNullableByDefault} core::Comparable<dynamic>);
}
static method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ listToString(core::List<core::Object?> list) → core::String
return col::IterableBase::iterableToFullString(list, "[", "]");
}
class A extends self::_A&Object&ListMixin {
field core::int count = 0;
@ -563,14 +565,14 @@ constants {
#C3 = core::pragma {name:#C1, options:#C2}
#C4 = ""
#C5 = true
#C6 = static-tearoff col::ListMixin::_compareAny
#C6 = static-tearoff col::ListBase::_compareAny
#C7 = 0
#C8 = 2
}
Extra constant evaluation status:
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:492:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:500:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:512:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:524:12 -> IntConstant(-1)
Extra constant evaluation: evaluated: 1091, effectively constant: 4
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:456:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:464:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:476:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:488:12 -> IntConstant(-1)
Extra constant evaluation: evaluated: 1093, effectively constant: 4

View file

@ -6,130 +6,130 @@ import "dart:math" as math;
import "dart:collection";
abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dynamic> = core::Object with col::ListMixin<self::_NegativeLengthList&Object&ListMixin::E%> /*isAnonymousMixin,hasConstConstructor*/ {
abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dynamic> = core::Object with col::ListBase<self::_NegativeLengthList&Object&ListMixin::E%> /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_NegativeLengthList&Object&ListMixin<self::_NegativeLengthList&Object&ListMixin::E%>
: super core::Object::•()
;
mixin-super-stub get first() → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::first};
return super.{col::ListBase::first};
mixin-super-stub set first(covariant-by-class self::_NegativeLengthList&Object&ListMixin::E% value) → void
return super.{col::ListMixin::first} = value;
return super.{col::ListBase::first} = value;
mixin-super-stub get last() → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::last};
return super.{col::ListBase::last};
mixin-super-stub set last(covariant-by-class self::_NegativeLengthList&Object&ListMixin::E% value) → void
return super.{col::ListMixin::last} = value;
return super.{col::ListBase::last} = value;
mixin-super-stub get iterator() → core::Iterator<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::iterator};
return super.{col::ListBase::iterator};
mixin-super-stub method elementAt(core::int index) → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::elementAt}(index);
return super.{col::ListBase::elementAt}(index);
mixin-super-stub method followedBy(covariant-by-class core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%> other) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::followedBy}(other);
return super.{col::ListBase::followedBy}(other);
mixin-super-stub method forEach((self::_NegativeLengthList&Object&ListMixin::E%) → void action) → void
return super.{col::ListMixin::forEach}(action);
return super.{col::ListBase::forEach}(action);
mixin-super-stub get isEmpty() → core::bool
return super.{col::ListMixin::isEmpty};
return super.{col::ListBase::isEmpty};
mixin-super-stub get isNotEmpty() → core::bool
return super.{col::ListMixin::isNotEmpty};
return super.{col::ListBase::isNotEmpty};
mixin-super-stub get single() → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::single};
return super.{col::ListBase::single};
mixin-super-stub method contains(core::Object? element) → core::bool
return super.{col::ListMixin::contains}(element);
return super.{col::ListBase::contains}(element);
mixin-super-stub method every((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test) → core::bool
return super.{col::ListMixin::every}(test);
return super.{col::ListBase::every}(test);
mixin-super-stub method any((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test) → core::bool
return super.{col::ListMixin::any}(test);
return super.{col::ListBase::any}(test);
mixin-super-stub method firstWhere((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test, {covariant-by-class () →? self::_NegativeLengthList&Object&ListMixin::E% orElse = #C1}) → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::firstWhere}(test, orElse: orElse);
return super.{col::ListBase::firstWhere}(test, orElse: orElse);
mixin-super-stub method lastWhere((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test, {covariant-by-class () →? self::_NegativeLengthList&Object&ListMixin::E% orElse = #C1}) → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::lastWhere}(test, orElse: orElse);
return super.{col::ListBase::lastWhere}(test, orElse: orElse);
mixin-super-stub method singleWhere((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test, {covariant-by-class () →? self::_NegativeLengthList&Object&ListMixin::E% orElse = #C1}) → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::singleWhere}(test, orElse: orElse);
return super.{col::ListBase::singleWhere}(test, orElse: orElse);
mixin-super-stub method join([core::String separator = #C2]) → core::String
return super.{col::ListMixin::join}(separator);
return super.{col::ListBase::join}(separator);
mixin-super-stub method where((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::where}(test);
return super.{col::ListBase::where}(test);
mixin-super-stub method whereType<T extends core::Object? = dynamic>() → core::Iterable<self::_NegativeLengthList&Object&ListMixin::whereType::T%>
return super.{col::ListMixin::whereType}<self::_NegativeLengthList&Object&ListMixin::whereType::T%>();
return super.{col::ListBase::whereType}<self::_NegativeLengthList&Object&ListMixin::whereType::T%>();
mixin-super-stub method map<T extends core::Object? = dynamic>((self::_NegativeLengthList&Object&ListMixin::E%) → self::_NegativeLengthList&Object&ListMixin::map::T% f) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::map::T%>
return super.{col::ListMixin::map}<self::_NegativeLengthList&Object&ListMixin::map::T%>(f);
return super.{col::ListBase::map}<self::_NegativeLengthList&Object&ListMixin::map::T%>(f);
mixin-super-stub method expand<T extends core::Object? = dynamic>((self::_NegativeLengthList&Object&ListMixin::E%) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::expand::T%> f) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::expand::T%>
return super.{col::ListMixin::expand}<self::_NegativeLengthList&Object&ListMixin::expand::T%>(f);
return super.{col::ListBase::expand}<self::_NegativeLengthList&Object&ListMixin::expand::T%>(f);
mixin-super-stub method reduce(covariant-by-class (self::_NegativeLengthList&Object&ListMixin::E%, self::_NegativeLengthList&Object&ListMixin::E%) → self::_NegativeLengthList&Object&ListMixin::E% combine) → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::reduce}(combine);
return super.{col::ListBase::reduce}(combine);
mixin-super-stub method fold<T extends core::Object? = dynamic>(self::_NegativeLengthList&Object&ListMixin::fold::T% initialValue, (self::_NegativeLengthList&Object&ListMixin::fold::T%, self::_NegativeLengthList&Object&ListMixin::E%) → self::_NegativeLengthList&Object&ListMixin::fold::T% combine) → self::_NegativeLengthList&Object&ListMixin::fold::T%
return super.{col::ListMixin::fold}<self::_NegativeLengthList&Object&ListMixin::fold::T%>(initialValue, combine);
return super.{col::ListBase::fold}<self::_NegativeLengthList&Object&ListMixin::fold::T%>(initialValue, combine);
mixin-super-stub method skip(core::int count) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::skip}(count);
return super.{col::ListBase::skip}(count);
mixin-super-stub method skipWhile((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::skipWhile}(test);
return super.{col::ListBase::skipWhile}(test);
mixin-super-stub method take(core::int count) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::take}(count);
return super.{col::ListBase::take}(count);
mixin-super-stub method takeWhile((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::takeWhile}(test);
return super.{col::ListBase::takeWhile}(test);
mixin-super-stub method toList({core::bool growable = #C3}) → core::List<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::toList}(growable: growable);
return super.{col::ListBase::toList}(growable: growable);
mixin-super-stub method toSet() → core::Set<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::toSet}();
return super.{col::ListBase::toSet}();
mixin-super-stub method add(covariant-by-class self::_NegativeLengthList&Object&ListMixin::E% element) → void
return super.{col::ListMixin::add}(element);
return super.{col::ListBase::add}(element);
mixin-super-stub method addAll(covariant-by-class core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%> iterable) → void
return super.{col::ListMixin::addAll}(iterable);
return super.{col::ListBase::addAll}(iterable);
mixin-super-stub method remove(core::Object? element) → core::bool
return super.{col::ListMixin::remove}(element);
return super.{col::ListBase::remove}(element);
mixin-super-stub method _closeGap(core::int start, core::int end) → void
return super.{col::ListMixin::_closeGap}(start, end);
return super.{col::ListBase::_closeGap}(start, end);
mixin-super-stub method removeWhere((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test) → void
return super.{col::ListMixin::removeWhere}(test);
return super.{col::ListBase::removeWhere}(test);
mixin-super-stub method retainWhere((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test) → void
return super.{col::ListMixin::retainWhere}(test);
return super.{col::ListBase::retainWhere}(test);
mixin-super-stub method _filter((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test, core::bool retainMatching) → void
return super.{col::ListMixin::_filter}(test, retainMatching);
return super.{col::ListBase::_filter}(test, retainMatching);
mixin-super-stub method clear() → void
return super.{col::ListMixin::clear}();
return super.{col::ListBase::clear}();
mixin-super-stub method cast<R extends core::Object? = dynamic>() → core::List<self::_NegativeLengthList&Object&ListMixin::cast::R%>
return super.{col::ListMixin::cast}<self::_NegativeLengthList&Object&ListMixin::cast::R%>();
return super.{col::ListBase::cast}<self::_NegativeLengthList&Object&ListMixin::cast::R%>();
mixin-super-stub method removeLast() → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::removeLast}();
return super.{col::ListBase::removeLast}();
mixin-super-stub method sort([(self::_NegativeLengthList&Object&ListMixin::E%, self::_NegativeLengthList&Object&ListMixin::E%) →? core::int compare = #C1]) → void
return super.{col::ListMixin::sort}(compare);
return super.{col::ListBase::sort}(compare);
mixin-super-stub method shuffle([math::Random? random = #C1]) → void
return super.{col::ListMixin::shuffle}(random);
return super.{col::ListBase::shuffle}(random);
mixin-super-stub method asMap() → core::Map<core::int, self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::asMap}();
return super.{col::ListBase::asMap}();
mixin-super-stub operator +(covariant-by-class core::List<self::_NegativeLengthList&Object&ListMixin::E%> other) → core::List<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::+}(other);
return super.{col::ListBase::+}(other);
mixin-super-stub method sublist(core::int start, [core::int? end = #C1]) → core::List<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::sublist}(start, end);
return super.{col::ListBase::sublist}(start, end);
mixin-super-stub method getRange(core::int start, core::int end) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::getRange}(start, end);
return super.{col::ListBase::getRange}(start, end);
mixin-super-stub method removeRange(core::int start, core::int end) → void
return super.{col::ListMixin::removeRange}(start, end);
return super.{col::ListBase::removeRange}(start, end);
mixin-super-stub method fillRange(core::int start, core::int end, [covariant-by-class self::_NegativeLengthList&Object&ListMixin::E? fill = #C1]) → void
return super.{col::ListMixin::fillRange}(start, end, fill);
return super.{col::ListBase::fillRange}(start, end, fill);
mixin-super-stub method setRange(core::int start, core::int end, covariant-by-class core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%> iterable, [core::int skipCount = #C4]) → void
return super.{col::ListMixin::setRange}(start, end, iterable, skipCount);
return super.{col::ListBase::setRange}(start, end, iterable, skipCount);
mixin-super-stub method replaceRange(core::int start, core::int end, covariant-by-class core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%> newContents) → void
return super.{col::ListMixin::replaceRange}(start, end, newContents);
return super.{col::ListBase::replaceRange}(start, end, newContents);
mixin-super-stub method indexOf(covariant-by-class core::Object? element, [core::int start = #C4]) → core::int
return super.{col::ListMixin::indexOf}(element, start);
return super.{col::ListBase::indexOf}(element, start);
mixin-super-stub method indexWhere((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test, [core::int start = #C4]) → core::int
return super.{col::ListMixin::indexWhere}(test, start);
return super.{col::ListBase::indexWhere}(test, start);
mixin-super-stub method lastIndexOf(covariant-by-class core::Object? element, [core::int? start = #C1]) → core::int
return super.{col::ListMixin::lastIndexOf}(element, start);
return super.{col::ListBase::lastIndexOf}(element, start);
mixin-super-stub method lastIndexWhere((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test, [core::int? start = #C1]) → core::int
return super.{col::ListMixin::lastIndexWhere}(test, start);
return super.{col::ListBase::lastIndexWhere}(test, start);
mixin-super-stub method insert(core::int index, covariant-by-class self::_NegativeLengthList&Object&ListMixin::E% element) → void
return super.{col::ListMixin::insert}(index, element);
return super.{col::ListBase::insert}(index, element);
mixin-super-stub method removeAt(core::int index) → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::removeAt}(index);
return super.{col::ListBase::removeAt}(index);
mixin-super-stub method insertAll(core::int index, covariant-by-class core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%> iterable) → void
return super.{col::ListMixin::insertAll}(index, iterable);
return super.{col::ListBase::insertAll}(index, iterable);
mixin-super-stub method setAll(core::int index, covariant-by-class core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%> iterable) → void
return super.{col::ListMixin::setAll}(index, iterable);
return super.{col::ListBase::setAll}(index, iterable);
mixin-super-stub get reversed() → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::reversed};
return super.{col::ListBase::reversed};
mixin-super-stub method toString() → core::String
return super.{col::ListMixin::toString}();
return super.{col::ListBase::toString}();
}
class NegativeLengthList<E extends core::Object? = dynamic> extends self::_NegativeLengthList&Object&ListMixin<self::NegativeLengthList::E%> {
final field core::List<self::NegativeLengthList::E%> _list;

View file

@ -7,7 +7,7 @@ import "dart:math" as math;
import "dart:collection";
abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dynamic> extends core::Object implements col::ListMixin<self::_NegativeLengthList&Object&ListMixin::E%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dynamic> extends core::Object implements col::ListBase<self::_NegativeLengthList&Object&ListMixin::E%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_NegativeLengthList&Object&ListMixin<self::_NegativeLengthList&Object&ListMixin::E%>
: super core::Object::•()
;
@ -51,7 +51,7 @@ abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dy
get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ isEmpty() → core::bool
return this.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} 0;
get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ isNotEmpty() → core::bool
return !this.{col::ListMixin::isEmpty}{core::bool};
return !this.{col::ListBase::isEmpty}{core::bool};
get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ single() → self::_NegativeLengthList&Object&ListMixin::E% {
if(this.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} 0)
throw _in::IterableElementError::noElement();
@ -194,7 +194,7 @@ abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dy
return new _in::TakeWhileIterable::•<self::_NegativeLengthList&Object&ListMixin::E%>(this, test);
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ toList({core::bool growable = #C5}) → core::List<self::_NegativeLengthList&Object&ListMixin::E%> {
if(this.{col::ListMixin::isEmpty}{core::bool})
if(this.{col::ListBase::isEmpty}{core::bool})
return core::List::empty<self::_NegativeLengthList&Object&ListMixin::E%>(growable: growable);
self::_NegativeLengthList&Object&ListMixin::E% first = this.{core::List::[]}(0){(core::int) → self::_NegativeLengthList&Object&ListMixin::E%};
core::List<self::_NegativeLengthList&Object&ListMixin::E%> result = core::List::filled<self::_NegativeLengthList&Object&ListMixin::E%>(this.{core::List::length}{core::int}, first, growable: growable);
@ -221,7 +221,7 @@ abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dy
self::_NegativeLengthList&Object&ListMixin::E% element = :sync-for-iterator.{core::Iterator::current}{self::_NegativeLengthList&Object&ListMixin::E%};
{
assert(this.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} i || (throw new core::ConcurrentModificationError::•(this)));
this.{col::ListMixin::add}(element){(self::_NegativeLengthList&Object&ListMixin::E%) → void};
this.{col::ListBase::add}(element){(self::_NegativeLengthList&Object&ListMixin::E%) → void};
i = i.{core::num::+}(1){(core::num) → core::int};
}
}
@ -230,7 +230,7 @@ abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dy
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ remove(core::Object? element) → core::bool {
for (core::int i = 0; i.{core::num::<}(this.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
if(this.{core::List::[]}(i){(core::int) → self::_NegativeLengthList&Object&ListMixin::E%} =={core::Object::==}{(core::Object) → core::bool} element) {
this.{col::ListMixin::_closeGap}(i, i.{core::num::+}(1){(core::num) → core::int}){(core::int, core::int) → void};
this.{col::ListBase::_closeGap}(i, i.{core::num::+}(1){(core::num) → core::int}){(core::int, core::int) → void};
return true;
}
}
@ -248,10 +248,10 @@ abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dy
this.{core::List::length} = length.{core::num::-}(size){(core::num) → core::int};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeWhere((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test) → void {
this.{col::ListMixin::_filter}(test, false){((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool, core::bool) → void};
this.{col::ListBase::_filter}(test, false){((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool, core::bool) → void};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ retainWhere((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test) → void {
this.{col::ListMixin::_filter}(test, true){((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool, core::bool) → void};
this.{col::ListBase::_filter}(test, true){((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool, core::bool) → void};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ _filter((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test, core::bool retainMatching) → void {
core::List<self::_NegativeLengthList&Object&ListMixin::E%> retained = core::_GrowableList::•<self::_NegativeLengthList&Object&ListMixin::E%>(0);
@ -266,7 +266,7 @@ abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dy
}
}
if(!(retained.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} this.{core::List::length}{core::int})) {
this.{col::ListMixin::setRange}(0, retained.{core::List::length}{core::int}, retained){(core::int, core::int, core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>, [core::int]) → void};
this.{col::ListBase::setRange}(0, retained.{core::List::length}{core::int}, retained){(core::int, core::int, core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>, [core::int]) → void};
this.{core::List::length} = retained.{core::List::length}{core::int};
}
}
@ -313,7 +313,7 @@ abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dy
if(end{core::int} == null)
throw "!";
core::RangeError::checkValidRange(start, end{core::int}, listLength);
return core::List::from<self::_NegativeLengthList&Object&ListMixin::E%>(this.{col::ListMixin::getRange}(start, end{core::int}){(core::int, core::int) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>});
return core::List::from<self::_NegativeLengthList&Object&ListMixin::E%>(this.{col::ListBase::getRange}(start, end{core::int}){(core::int, core::int) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>});
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ getRange(core::int start, core::int end) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%> {
core::RangeError::checkValidRange(start, end, this.{core::List::length}{core::int});
@ -322,7 +322,7 @@ abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dy
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeRange(core::int start, core::int end) → void {
core::RangeError::checkValidRange(start, end, this.{core::List::length}{core::int});
if(end.{core::num::>}(start){(core::num) → core::bool}) {
this.{col::ListMixin::_closeGap}(start, end){(core::int, core::int) → void};
this.{col::ListBase::_closeGap}(start, end){(core::int, core::int) → void};
}
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ fillRange(core::int start, core::int end, [covariant-by-class self::_NegativeLengthList&Object&ListMixin::E? fill = #C2]) → void {
@ -365,7 +365,7 @@ abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dy
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ replaceRange(core::int start, core::int end, covariant-by-class core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%> newContents) → void {
core::RangeError::checkValidRange(start, end, this.{core::List::length}{core::int});
if(start =={core::num::==}{(core::Object) → core::bool} this.{core::List::length}{core::int}) {
this.{col::ListMixin::addAll}(newContents){(core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>) → void};
this.{col::ListBase::addAll}(newContents){(core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>) → void};
return;
}
if(!(newContents is{ForNonNullableByDefault} _in::EfficientLengthIterable<dynamic>)) {
@ -375,9 +375,9 @@ abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dy
core::int insertLength = newContents.{core::Iterable::length}{core::int};
if(removeLength.{core::num::>=}(insertLength){(core::num) → core::bool}) {
core::int insertEnd = start.{core::num::+}(insertLength){(core::num) → core::int};
this.{col::ListMixin::setRange}(start, insertEnd, newContents){(core::int, core::int, core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>, [core::int]) → void};
this.{col::ListBase::setRange}(start, insertEnd, newContents){(core::int, core::int, core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>, [core::int]) → void};
if(removeLength.{core::num::>}(insertLength){(core::num) → core::bool}) {
this.{col::ListMixin::_closeGap}(insertEnd, end){(core::int, core::int) → void};
this.{col::ListBase::_closeGap}(insertEnd, end){(core::int, core::int) → void};
}
}
else
@ -392,7 +392,7 @@ abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dy
this.{core::List::[]=}(i, element){(core::int, self::_NegativeLengthList&Object&ListMixin::E%) → void};
}
else {
this.{col::ListMixin::add}(element){(self::_NegativeLengthList&Object&ListMixin::E%) → void};
this.{col::ListBase::add}(element){(self::_NegativeLengthList&Object&ListMixin::E%) → void};
}
i = i.{core::num::+}(1){(core::num) → core::int};
}
@ -404,12 +404,12 @@ abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dy
core::int oldLength = this.{core::List::length}{core::int};
core::int insertEnd = start.{core::num::+}(insertLength){(core::num) → core::int};
for (core::int i = oldLength.{core::num::-}(delta){(core::num) → core::int}; i.{core::num::<}(oldLength){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
this.{col::ListMixin::add}(this.{core::List::[]}(i.{core::num::>}(0){(core::num) → core::bool} ?{core::int} i : 0){(core::int) → self::_NegativeLengthList&Object&ListMixin::E%}){(self::_NegativeLengthList&Object&ListMixin::E%) → void};
this.{col::ListBase::add}(this.{core::List::[]}(i.{core::num::>}(0){(core::num) → core::bool} ?{core::int} i : 0){(core::int) → self::_NegativeLengthList&Object&ListMixin::E%}){(self::_NegativeLengthList&Object&ListMixin::E%) → void};
}
if(insertEnd.{core::num::<}(oldLength){(core::num) → core::bool}) {
this.{col::ListMixin::setRange}(insertEnd, oldLength, this, end){(core::int, core::int, core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>, [core::int]) → void};
this.{col::ListBase::setRange}(insertEnd, oldLength, this, end){(core::int, core::int, core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>, [core::int]) → void};
}
this.{col::ListMixin::setRange}(start, insertEnd, newContents){(core::int, core::int, core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>, [core::int]) → void};
this.{col::ListBase::setRange}(start, insertEnd, newContents){(core::int, core::int, core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>, [core::int]) → void};
}
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ indexOf(covariant-by-class core::Object? element, [core::int start = #C7]) → core::int {
@ -456,21 +456,21 @@ abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dy
_in::checkNotNullable<core::int>(index, "index");
core::int length = this.{core::List::length}{core::int};
core::RangeError::checkValueInInterval(index, 0, length, "index");
this.{col::ListMixin::add}(element){(self::_NegativeLengthList&Object&ListMixin::E%) → void};
this.{col::ListBase::add}(element){(self::_NegativeLengthList&Object&ListMixin::E%) → void};
if(!(index =={core::num::==}{(core::Object) → core::bool} length)) {
this.{col::ListMixin::setRange}(index.{core::num::+}(1){(core::num) → core::int}, length.{core::num::+}(1){(core::num) → core::int}, this, index){(core::int, core::int, core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>, [core::int]) → void};
this.{col::ListBase::setRange}(index.{core::num::+}(1){(core::num) → core::int}, length.{core::num::+}(1){(core::num) → core::int}, this, index){(core::int, core::int, core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>, [core::int]) → void};
this.{core::List::[]=}(index, element){(core::int, self::_NegativeLengthList&Object&ListMixin::E%) → void};
}
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeAt(core::int index) → self::_NegativeLengthList&Object&ListMixin::E% {
self::_NegativeLengthList&Object&ListMixin::E% result = this.{core::List::[]}(index){(core::int) → self::_NegativeLengthList&Object&ListMixin::E%};
this.{col::ListMixin::_closeGap}(index, index.{core::num::+}(1){(core::num) → core::int}){(core::int, core::int) → void};
this.{col::ListBase::_closeGap}(index, index.{core::num::+}(1){(core::num) → core::int}){(core::int, core::int) → void};
return result;
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ insertAll(core::int index, covariant-by-class core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%> iterable) → void {
core::RangeError::checkValueInInterval(index, 0, this.{core::List::length}{core::int}, "index");
if(index =={core::num::==}{(core::Object) → core::bool} this.{core::List::length}{core::int}) {
this.{col::ListMixin::addAll}(iterable){(core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>) → void};
this.{col::ListBase::addAll}(iterable){(core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>) → void};
return;
}
if(!(iterable is{ForNonNullableByDefault} _in::EfficientLengthIterable<dynamic>) || core::identical(iterable, this)) {
@ -482,7 +482,7 @@ abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dy
}
core::int oldLength = this.{core::List::length}{core::int};
for (core::int i = oldLength.{core::num::-}(insertionLength){(core::num) → core::int}; i.{core::num::<}(oldLength){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
this.{col::ListMixin::add}(this.{core::List::[]}(i.{core::num::>}(0){(core::num) → core::bool} ?{core::int} i : 0){(core::int) → self::_NegativeLengthList&Object&ListMixin::E%}){(self::_NegativeLengthList&Object&ListMixin::E%) → void};
this.{col::ListBase::add}(this.{core::List::[]}(i.{core::num::>}(0){(core::num) → core::bool} ?{core::int} i : 0){(core::int) → self::_NegativeLengthList&Object&ListMixin::E%}){(self::_NegativeLengthList&Object&ListMixin::E%) → void};
}
if(!(iterable.{core::Iterable::length}{core::int} =={core::num::==}{(core::Object) → core::bool} insertionLength)) {
this.{core::List::length} = this.{core::List::length}{core::int}.{core::num::-}(insertionLength){(core::num) → core::int};
@ -490,13 +490,13 @@ abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dy
}
core::int oldCopyStart = index.{core::num::+}(insertionLength){(core::num) → core::int};
if(oldCopyStart.{core::num::<}(oldLength){(core::num) → core::bool}) {
this.{col::ListMixin::setRange}(oldCopyStart, oldLength, this, index){(core::int, core::int, core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>, [core::int]) → void};
this.{col::ListBase::setRange}(oldCopyStart, oldLength, this, index){(core::int, core::int, core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>, [core::int]) → void};
}
this.{col::ListMixin::setAll}(index, iterable){(core::int, core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>) → void};
this.{col::ListBase::setAll}(index, iterable){(core::int, core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>) → void};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ setAll(core::int index, covariant-by-class core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%> iterable) → void {
if(iterable is{ForNonNullableByDefault} core::List<dynamic>) {
this.{col::ListMixin::setRange}(index, index.{core::num::+}(iterable.{core::Iterable::length}{core::int}){(core::num) → core::int}, iterable){(core::int, core::int, core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>, [core::int]) → void};
this.{col::ListBase::setRange}(index, index.{core::num::+}(iterable.{core::Iterable::length}{core::int}){(core::num) → core::int}, iterable){(core::int, core::int, core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>, [core::int]) → void};
}
else {
{
@ -513,10 +513,12 @@ abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dy
get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ reversed() → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>
return new _in::ReversedListIterable::•<self::_NegativeLengthList&Object&ListMixin::E%>(this);
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ toString() → core::String
return col::IterableBase::iterableToFullString(this, "[", "]");
return col::ListBase::listToString(this);
static method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ _compareAny(dynamic a, dynamic b) → core::int {
return core::Comparable::compare(a as{ForNonNullableByDefault} core::Comparable<dynamic>, b as{ForNonNullableByDefault} core::Comparable<dynamic>);
}
static method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ listToString(core::List<core::Object?> list) → core::String
return col::IterableBase::iterableToFullString(list, "[", "]");
}
class NegativeLengthList<E extends core::Object? = dynamic> extends self::_NegativeLengthList&Object&ListMixin<self::NegativeLengthList::E%> {
final field core::List<self::NegativeLengthList::E%> _list;
@ -582,16 +584,16 @@ constants {
#C3 = core::pragma {name:#C1, options:#C2}
#C4 = ""
#C5 = true
#C6 = static-tearoff col::ListMixin::_compareAny
#C6 = static-tearoff col::ListBase::_compareAny
#C7 = 0
#C8 = 2
#C9 = 1
}
Extra constant evaluation status:
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:492:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:500:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:512:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:524:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:456:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:464:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:476:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:488:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-testcase:///negative_length.dart:12:41 -> IntConstant(-1)
Extra constant evaluation: evaluated: 1120, effectively constant: 5
Extra constant evaluation: evaluated: 1122, effectively constant: 5

View file

@ -7,130 +7,130 @@ import "dart:_internal" as _in;
import "dart:collection";
abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dynamic> = core::Object with col::ListMixin<self::_NegativeLengthList&Object&ListMixin::E%> /*isAnonymousMixin,hasConstConstructor*/ {
abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dynamic> = core::Object with col::ListBase<self::_NegativeLengthList&Object&ListMixin::E%> /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_NegativeLengthList&Object&ListMixin<self::_NegativeLengthList&Object&ListMixin::E%>
: super core::Object::•()
;
mixin-super-stub get first() → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::first};
return super.{col::ListBase::first};
mixin-super-stub set first(covariant-by-class self::_NegativeLengthList&Object&ListMixin::E% value) → void
return super.{col::ListMixin::first} = value;
return super.{col::ListBase::first} = value;
mixin-super-stub get last() → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::last};
return super.{col::ListBase::last};
mixin-super-stub set last(covariant-by-class self::_NegativeLengthList&Object&ListMixin::E% value) → void
return super.{col::ListMixin::last} = value;
return super.{col::ListBase::last} = value;
mixin-super-stub get iterator() → core::Iterator<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::iterator};
return super.{col::ListBase::iterator};
mixin-super-stub method elementAt(core::int index) → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::elementAt}(index);
return super.{col::ListBase::elementAt}(index);
mixin-super-stub method followedBy(covariant-by-class core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%> other) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::followedBy}(other);
return super.{col::ListBase::followedBy}(other);
mixin-super-stub method forEach((self::_NegativeLengthList&Object&ListMixin::E%) → void action) → void
return super.{col::ListMixin::forEach}(action);
return super.{col::ListBase::forEach}(action);
mixin-super-stub get isEmpty() → core::bool
return super.{col::ListMixin::isEmpty};
return super.{col::ListBase::isEmpty};
mixin-super-stub get isNotEmpty() → core::bool
return super.{col::ListMixin::isNotEmpty};
return super.{col::ListBase::isNotEmpty};
mixin-super-stub get single() → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::single};
return super.{col::ListBase::single};
mixin-super-stub method contains(core::Object? element) → core::bool
return super.{col::ListMixin::contains}(element);
return super.{col::ListBase::contains}(element);
mixin-super-stub method every((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test) → core::bool
return super.{col::ListMixin::every}(test);
return super.{col::ListBase::every}(test);
mixin-super-stub method any((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test) → core::bool
return super.{col::ListMixin::any}(test);
return super.{col::ListBase::any}(test);
mixin-super-stub method firstWhere((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test, {covariant-by-class () →? self::_NegativeLengthList&Object&ListMixin::E% orElse = #C1}) → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::firstWhere}(test, orElse: orElse);
return super.{col::ListBase::firstWhere}(test, orElse: orElse);
mixin-super-stub method lastWhere((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test, {covariant-by-class () →? self::_NegativeLengthList&Object&ListMixin::E% orElse = #C1}) → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::lastWhere}(test, orElse: orElse);
return super.{col::ListBase::lastWhere}(test, orElse: orElse);
mixin-super-stub method singleWhere((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test, {covariant-by-class () →? self::_NegativeLengthList&Object&ListMixin::E% orElse = #C1}) → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::singleWhere}(test, orElse: orElse);
return super.{col::ListBase::singleWhere}(test, orElse: orElse);
mixin-super-stub method join([core::String separator = #C2]) → core::String
return super.{col::ListMixin::join}(separator);
return super.{col::ListBase::join}(separator);
mixin-super-stub method where((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::where}(test);
return super.{col::ListBase::where}(test);
mixin-super-stub method whereType<T extends core::Object? = dynamic>() → core::Iterable<self::_NegativeLengthList&Object&ListMixin::whereType::T%>
return super.{col::ListMixin::whereType}<self::_NegativeLengthList&Object&ListMixin::whereType::T%>();
return super.{col::ListBase::whereType}<self::_NegativeLengthList&Object&ListMixin::whereType::T%>();
mixin-super-stub method map<T extends core::Object? = dynamic>((self::_NegativeLengthList&Object&ListMixin::E%) → self::_NegativeLengthList&Object&ListMixin::map::T% f) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::map::T%>
return super.{col::ListMixin::map}<self::_NegativeLengthList&Object&ListMixin::map::T%>(f);
return super.{col::ListBase::map}<self::_NegativeLengthList&Object&ListMixin::map::T%>(f);
mixin-super-stub method expand<T extends core::Object? = dynamic>((self::_NegativeLengthList&Object&ListMixin::E%) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::expand::T%> f) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::expand::T%>
return super.{col::ListMixin::expand}<self::_NegativeLengthList&Object&ListMixin::expand::T%>(f);
return super.{col::ListBase::expand}<self::_NegativeLengthList&Object&ListMixin::expand::T%>(f);
mixin-super-stub method reduce(covariant-by-class (self::_NegativeLengthList&Object&ListMixin::E%, self::_NegativeLengthList&Object&ListMixin::E%) → self::_NegativeLengthList&Object&ListMixin::E% combine) → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::reduce}(combine);
return super.{col::ListBase::reduce}(combine);
mixin-super-stub method fold<T extends core::Object? = dynamic>(self::_NegativeLengthList&Object&ListMixin::fold::T% initialValue, (self::_NegativeLengthList&Object&ListMixin::fold::T%, self::_NegativeLengthList&Object&ListMixin::E%) → self::_NegativeLengthList&Object&ListMixin::fold::T% combine) → self::_NegativeLengthList&Object&ListMixin::fold::T%
return super.{col::ListMixin::fold}<self::_NegativeLengthList&Object&ListMixin::fold::T%>(initialValue, combine);
return super.{col::ListBase::fold}<self::_NegativeLengthList&Object&ListMixin::fold::T%>(initialValue, combine);
mixin-super-stub method skip(core::int count) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::skip}(count);
return super.{col::ListBase::skip}(count);
mixin-super-stub method skipWhile((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::skipWhile}(test);
return super.{col::ListBase::skipWhile}(test);
mixin-super-stub method take(core::int count) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::take}(count);
return super.{col::ListBase::take}(count);
mixin-super-stub method takeWhile((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::takeWhile}(test);
return super.{col::ListBase::takeWhile}(test);
mixin-super-stub method toList({core::bool growable = #C3}) → core::List<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::toList}(growable: growable);
return super.{col::ListBase::toList}(growable: growable);
mixin-super-stub method toSet() → core::Set<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::toSet}();
return super.{col::ListBase::toSet}();
mixin-super-stub method add(covariant-by-class self::_NegativeLengthList&Object&ListMixin::E% element) → void
return super.{col::ListMixin::add}(element);
return super.{col::ListBase::add}(element);
mixin-super-stub method addAll(covariant-by-class core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%> iterable) → void
return super.{col::ListMixin::addAll}(iterable);
return super.{col::ListBase::addAll}(iterable);
mixin-super-stub method remove(core::Object? element) → core::bool
return super.{col::ListMixin::remove}(element);
return super.{col::ListBase::remove}(element);
mixin-super-stub method _closeGap(core::int start, core::int end) → void
return super.{col::ListMixin::_closeGap}(start, end);
return super.{col::ListBase::_closeGap}(start, end);
mixin-super-stub method removeWhere((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test) → void
return super.{col::ListMixin::removeWhere}(test);
return super.{col::ListBase::removeWhere}(test);
mixin-super-stub method retainWhere((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test) → void
return super.{col::ListMixin::retainWhere}(test);
return super.{col::ListBase::retainWhere}(test);
mixin-super-stub method _filter((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test, core::bool retainMatching) → void
return super.{col::ListMixin::_filter}(test, retainMatching);
return super.{col::ListBase::_filter}(test, retainMatching);
mixin-super-stub method clear() → void
return super.{col::ListMixin::clear}();
return super.{col::ListBase::clear}();
mixin-super-stub method cast<R extends core::Object? = dynamic>() → core::List<self::_NegativeLengthList&Object&ListMixin::cast::R%>
return super.{col::ListMixin::cast}<self::_NegativeLengthList&Object&ListMixin::cast::R%>();
return super.{col::ListBase::cast}<self::_NegativeLengthList&Object&ListMixin::cast::R%>();
mixin-super-stub method removeLast() → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::removeLast}();
return super.{col::ListBase::removeLast}();
mixin-super-stub method sort([(self::_NegativeLengthList&Object&ListMixin::E%, self::_NegativeLengthList&Object&ListMixin::E%) →? core::int compare = #C1]) → void
return super.{col::ListMixin::sort}(compare);
return super.{col::ListBase::sort}(compare);
mixin-super-stub method shuffle([math::Random? random = #C1]) → void
return super.{col::ListMixin::shuffle}(random);
return super.{col::ListBase::shuffle}(random);
mixin-super-stub method asMap() → core::Map<core::int, self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::asMap}();
return super.{col::ListBase::asMap}();
mixin-super-stub operator +(covariant-by-class core::List<self::_NegativeLengthList&Object&ListMixin::E%> other) → core::List<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::+}(other);
return super.{col::ListBase::+}(other);
mixin-super-stub method sublist(core::int start, [core::int? end = #C1]) → core::List<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::sublist}(start, end);
return super.{col::ListBase::sublist}(start, end);
mixin-super-stub method getRange(core::int start, core::int end) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::getRange}(start, end);
return super.{col::ListBase::getRange}(start, end);
mixin-super-stub method removeRange(core::int start, core::int end) → void
return super.{col::ListMixin::removeRange}(start, end);
return super.{col::ListBase::removeRange}(start, end);
mixin-super-stub method fillRange(core::int start, core::int end, [covariant-by-class self::_NegativeLengthList&Object&ListMixin::E? fill = #C1]) → void
return super.{col::ListMixin::fillRange}(start, end, fill);
return super.{col::ListBase::fillRange}(start, end, fill);
mixin-super-stub method setRange(core::int start, core::int end, covariant-by-class core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%> iterable, [core::int skipCount = #C4]) → void
return super.{col::ListMixin::setRange}(start, end, iterable, skipCount);
return super.{col::ListBase::setRange}(start, end, iterable, skipCount);
mixin-super-stub method replaceRange(core::int start, core::int end, covariant-by-class core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%> newContents) → void
return super.{col::ListMixin::replaceRange}(start, end, newContents);
return super.{col::ListBase::replaceRange}(start, end, newContents);
mixin-super-stub method indexOf(covariant-by-class core::Object? element, [core::int start = #C4]) → core::int
return super.{col::ListMixin::indexOf}(element, start);
return super.{col::ListBase::indexOf}(element, start);
mixin-super-stub method indexWhere((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test, [core::int start = #C4]) → core::int
return super.{col::ListMixin::indexWhere}(test, start);
return super.{col::ListBase::indexWhere}(test, start);
mixin-super-stub method lastIndexOf(covariant-by-class core::Object? element, [core::int? start = #C1]) → core::int
return super.{col::ListMixin::lastIndexOf}(element, start);
return super.{col::ListBase::lastIndexOf}(element, start);
mixin-super-stub method lastIndexWhere((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test, [core::int? start = #C1]) → core::int
return super.{col::ListMixin::lastIndexWhere}(test, start);
return super.{col::ListBase::lastIndexWhere}(test, start);
mixin-super-stub method insert(core::int index, covariant-by-class self::_NegativeLengthList&Object&ListMixin::E% element) → void
return super.{col::ListMixin::insert}(index, element);
return super.{col::ListBase::insert}(index, element);
mixin-super-stub method removeAt(core::int index) → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::removeAt}(index);
return super.{col::ListBase::removeAt}(index);
mixin-super-stub method insertAll(core::int index, covariant-by-class core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%> iterable) → void
return super.{col::ListMixin::insertAll}(index, iterable);
return super.{col::ListBase::insertAll}(index, iterable);
mixin-super-stub method setAll(core::int index, covariant-by-class core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%> iterable) → void
return super.{col::ListMixin::setAll}(index, iterable);
return super.{col::ListBase::setAll}(index, iterable);
mixin-super-stub get reversed() → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::reversed};
return super.{col::ListBase::reversed};
mixin-super-stub method toString() → core::String
return super.{col::ListMixin::toString}();
return super.{col::ListBase::toString}();
}
class NegativeLengthList<E extends core::Object? = dynamic> extends self::_NegativeLengthList&Object&ListMixin<self::NegativeLengthList::E%> {
final field core::List<self::NegativeLengthList::E%> _list;

View file

@ -7,130 +7,130 @@ import "dart:_internal" as _in;
import "dart:collection";
abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dynamic> = core::Object with col::ListMixin<self::_NegativeLengthList&Object&ListMixin::E%> /*isAnonymousMixin,hasConstConstructor*/ {
abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dynamic> = core::Object with col::ListBase<self::_NegativeLengthList&Object&ListMixin::E%> /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_NegativeLengthList&Object&ListMixin<self::_NegativeLengthList&Object&ListMixin::E%>
: super core::Object::•()
;
mixin-super-stub get first() → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::first};
return super.{col::ListBase::first};
mixin-super-stub set first(covariant-by-class self::_NegativeLengthList&Object&ListMixin::E% value) → void
return super.{col::ListMixin::first} = value;
return super.{col::ListBase::first} = value;
mixin-super-stub get last() → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::last};
return super.{col::ListBase::last};
mixin-super-stub set last(covariant-by-class self::_NegativeLengthList&Object&ListMixin::E% value) → void
return super.{col::ListMixin::last} = value;
return super.{col::ListBase::last} = value;
mixin-super-stub get iterator() → core::Iterator<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::iterator};
return super.{col::ListBase::iterator};
mixin-super-stub method elementAt(core::int index) → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::elementAt}(index);
return super.{col::ListBase::elementAt}(index);
mixin-super-stub method followedBy(covariant-by-class core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%> other) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::followedBy}(other);
return super.{col::ListBase::followedBy}(other);
mixin-super-stub method forEach((self::_NegativeLengthList&Object&ListMixin::E%) → void action) → void
return super.{col::ListMixin::forEach}(action);
return super.{col::ListBase::forEach}(action);
mixin-super-stub get isEmpty() → core::bool
return super.{col::ListMixin::isEmpty};
return super.{col::ListBase::isEmpty};
mixin-super-stub get isNotEmpty() → core::bool
return super.{col::ListMixin::isNotEmpty};
return super.{col::ListBase::isNotEmpty};
mixin-super-stub get single() → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::single};
return super.{col::ListBase::single};
mixin-super-stub method contains(core::Object? element) → core::bool
return super.{col::ListMixin::contains}(element);
return super.{col::ListBase::contains}(element);
mixin-super-stub method every((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test) → core::bool
return super.{col::ListMixin::every}(test);
return super.{col::ListBase::every}(test);
mixin-super-stub method any((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test) → core::bool
return super.{col::ListMixin::any}(test);
return super.{col::ListBase::any}(test);
mixin-super-stub method firstWhere((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test, {covariant-by-class () →? self::_NegativeLengthList&Object&ListMixin::E% orElse = #C1}) → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::firstWhere}(test, orElse: orElse);
return super.{col::ListBase::firstWhere}(test, orElse: orElse);
mixin-super-stub method lastWhere((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test, {covariant-by-class () →? self::_NegativeLengthList&Object&ListMixin::E% orElse = #C1}) → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::lastWhere}(test, orElse: orElse);
return super.{col::ListBase::lastWhere}(test, orElse: orElse);
mixin-super-stub method singleWhere((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test, {covariant-by-class () →? self::_NegativeLengthList&Object&ListMixin::E% orElse = #C1}) → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::singleWhere}(test, orElse: orElse);
return super.{col::ListBase::singleWhere}(test, orElse: orElse);
mixin-super-stub method join([core::String separator = #C2]) → core::String
return super.{col::ListMixin::join}(separator);
return super.{col::ListBase::join}(separator);
mixin-super-stub method where((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::where}(test);
return super.{col::ListBase::where}(test);
mixin-super-stub method whereType<T extends core::Object? = dynamic>() → core::Iterable<self::_NegativeLengthList&Object&ListMixin::whereType::T%>
return super.{col::ListMixin::whereType}<self::_NegativeLengthList&Object&ListMixin::whereType::T%>();
return super.{col::ListBase::whereType}<self::_NegativeLengthList&Object&ListMixin::whereType::T%>();
mixin-super-stub method map<T extends core::Object? = dynamic>((self::_NegativeLengthList&Object&ListMixin::E%) → self::_NegativeLengthList&Object&ListMixin::map::T% f) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::map::T%>
return super.{col::ListMixin::map}<self::_NegativeLengthList&Object&ListMixin::map::T%>(f);
return super.{col::ListBase::map}<self::_NegativeLengthList&Object&ListMixin::map::T%>(f);
mixin-super-stub method expand<T extends core::Object? = dynamic>((self::_NegativeLengthList&Object&ListMixin::E%) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::expand::T%> f) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::expand::T%>
return super.{col::ListMixin::expand}<self::_NegativeLengthList&Object&ListMixin::expand::T%>(f);
return super.{col::ListBase::expand}<self::_NegativeLengthList&Object&ListMixin::expand::T%>(f);
mixin-super-stub method reduce(covariant-by-class (self::_NegativeLengthList&Object&ListMixin::E%, self::_NegativeLengthList&Object&ListMixin::E%) → self::_NegativeLengthList&Object&ListMixin::E% combine) → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::reduce}(combine);
return super.{col::ListBase::reduce}(combine);
mixin-super-stub method fold<T extends core::Object? = dynamic>(self::_NegativeLengthList&Object&ListMixin::fold::T% initialValue, (self::_NegativeLengthList&Object&ListMixin::fold::T%, self::_NegativeLengthList&Object&ListMixin::E%) → self::_NegativeLengthList&Object&ListMixin::fold::T% combine) → self::_NegativeLengthList&Object&ListMixin::fold::T%
return super.{col::ListMixin::fold}<self::_NegativeLengthList&Object&ListMixin::fold::T%>(initialValue, combine);
return super.{col::ListBase::fold}<self::_NegativeLengthList&Object&ListMixin::fold::T%>(initialValue, combine);
mixin-super-stub method skip(core::int count) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::skip}(count);
return super.{col::ListBase::skip}(count);
mixin-super-stub method skipWhile((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::skipWhile}(test);
return super.{col::ListBase::skipWhile}(test);
mixin-super-stub method take(core::int count) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::take}(count);
return super.{col::ListBase::take}(count);
mixin-super-stub method takeWhile((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::takeWhile}(test);
return super.{col::ListBase::takeWhile}(test);
mixin-super-stub method toList({core::bool growable = #C3}) → core::List<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::toList}(growable: growable);
return super.{col::ListBase::toList}(growable: growable);
mixin-super-stub method toSet() → core::Set<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::toSet}();
return super.{col::ListBase::toSet}();
mixin-super-stub method add(covariant-by-class self::_NegativeLengthList&Object&ListMixin::E% element) → void
return super.{col::ListMixin::add}(element);
return super.{col::ListBase::add}(element);
mixin-super-stub method addAll(covariant-by-class core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%> iterable) → void
return super.{col::ListMixin::addAll}(iterable);
return super.{col::ListBase::addAll}(iterable);
mixin-super-stub method remove(core::Object? element) → core::bool
return super.{col::ListMixin::remove}(element);
return super.{col::ListBase::remove}(element);
mixin-super-stub method _closeGap(core::int start, core::int end) → void
return super.{col::ListMixin::_closeGap}(start, end);
return super.{col::ListBase::_closeGap}(start, end);
mixin-super-stub method removeWhere((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test) → void
return super.{col::ListMixin::removeWhere}(test);
return super.{col::ListBase::removeWhere}(test);
mixin-super-stub method retainWhere((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test) → void
return super.{col::ListMixin::retainWhere}(test);
return super.{col::ListBase::retainWhere}(test);
mixin-super-stub method _filter((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test, core::bool retainMatching) → void
return super.{col::ListMixin::_filter}(test, retainMatching);
return super.{col::ListBase::_filter}(test, retainMatching);
mixin-super-stub method clear() → void
return super.{col::ListMixin::clear}();
return super.{col::ListBase::clear}();
mixin-super-stub method cast<R extends core::Object? = dynamic>() → core::List<self::_NegativeLengthList&Object&ListMixin::cast::R%>
return super.{col::ListMixin::cast}<self::_NegativeLengthList&Object&ListMixin::cast::R%>();
return super.{col::ListBase::cast}<self::_NegativeLengthList&Object&ListMixin::cast::R%>();
mixin-super-stub method removeLast() → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::removeLast}();
return super.{col::ListBase::removeLast}();
mixin-super-stub method sort([(self::_NegativeLengthList&Object&ListMixin::E%, self::_NegativeLengthList&Object&ListMixin::E%) →? core::int compare = #C1]) → void
return super.{col::ListMixin::sort}(compare);
return super.{col::ListBase::sort}(compare);
mixin-super-stub method shuffle([math::Random? random = #C1]) → void
return super.{col::ListMixin::shuffle}(random);
return super.{col::ListBase::shuffle}(random);
mixin-super-stub method asMap() → core::Map<core::int, self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::asMap}();
return super.{col::ListBase::asMap}();
mixin-super-stub operator +(covariant-by-class core::List<self::_NegativeLengthList&Object&ListMixin::E%> other) → core::List<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::+}(other);
return super.{col::ListBase::+}(other);
mixin-super-stub method sublist(core::int start, [core::int? end = #C1]) → core::List<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::sublist}(start, end);
return super.{col::ListBase::sublist}(start, end);
mixin-super-stub method getRange(core::int start, core::int end) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::getRange}(start, end);
return super.{col::ListBase::getRange}(start, end);
mixin-super-stub method removeRange(core::int start, core::int end) → void
return super.{col::ListMixin::removeRange}(start, end);
return super.{col::ListBase::removeRange}(start, end);
mixin-super-stub method fillRange(core::int start, core::int end, [covariant-by-class self::_NegativeLengthList&Object&ListMixin::E? fill = #C1]) → void
return super.{col::ListMixin::fillRange}(start, end, fill);
return super.{col::ListBase::fillRange}(start, end, fill);
mixin-super-stub method setRange(core::int start, core::int end, covariant-by-class core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%> iterable, [core::int skipCount = #C4]) → void
return super.{col::ListMixin::setRange}(start, end, iterable, skipCount);
return super.{col::ListBase::setRange}(start, end, iterable, skipCount);
mixin-super-stub method replaceRange(core::int start, core::int end, covariant-by-class core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%> newContents) → void
return super.{col::ListMixin::replaceRange}(start, end, newContents);
return super.{col::ListBase::replaceRange}(start, end, newContents);
mixin-super-stub method indexOf(covariant-by-class core::Object? element, [core::int start = #C4]) → core::int
return super.{col::ListMixin::indexOf}(element, start);
return super.{col::ListBase::indexOf}(element, start);
mixin-super-stub method indexWhere((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test, [core::int start = #C4]) → core::int
return super.{col::ListMixin::indexWhere}(test, start);
return super.{col::ListBase::indexWhere}(test, start);
mixin-super-stub method lastIndexOf(covariant-by-class core::Object? element, [core::int? start = #C1]) → core::int
return super.{col::ListMixin::lastIndexOf}(element, start);
return super.{col::ListBase::lastIndexOf}(element, start);
mixin-super-stub method lastIndexWhere((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test, [core::int? start = #C1]) → core::int
return super.{col::ListMixin::lastIndexWhere}(test, start);
return super.{col::ListBase::lastIndexWhere}(test, start);
mixin-super-stub method insert(core::int index, covariant-by-class self::_NegativeLengthList&Object&ListMixin::E% element) → void
return super.{col::ListMixin::insert}(index, element);
return super.{col::ListBase::insert}(index, element);
mixin-super-stub method removeAt(core::int index) → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::removeAt}(index);
return super.{col::ListBase::removeAt}(index);
mixin-super-stub method insertAll(core::int index, covariant-by-class core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%> iterable) → void
return super.{col::ListMixin::insertAll}(index, iterable);
return super.{col::ListBase::insertAll}(index, iterable);
mixin-super-stub method setAll(core::int index, covariant-by-class core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%> iterable) → void
return super.{col::ListMixin::setAll}(index, iterable);
return super.{col::ListBase::setAll}(index, iterable);
mixin-super-stub get reversed() → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::reversed};
return super.{col::ListBase::reversed};
mixin-super-stub method toString() → core::String
return super.{col::ListMixin::toString}();
return super.{col::ListBase::toString}();
}
class NegativeLengthList<E extends core::Object? = dynamic> extends self::_NegativeLengthList&Object&ListMixin<self::NegativeLengthList::E%> {
final field core::List<self::NegativeLengthList::E%> _list;

View file

@ -6,130 +6,130 @@ import "dart:math" as math;
import "dart:collection";
abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dynamic> = core::Object with col::ListMixin<self::_NegativeLengthList&Object&ListMixin::E%> /*isAnonymousMixin,hasConstConstructor*/ {
abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dynamic> = core::Object with col::ListBase<self::_NegativeLengthList&Object&ListMixin::E%> /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_NegativeLengthList&Object&ListMixin<self::_NegativeLengthList&Object&ListMixin::E%>
: super core::Object::•()
;
mixin-super-stub get first() → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::first};
return super.{col::ListBase::first};
mixin-super-stub set first(covariant-by-class self::_NegativeLengthList&Object&ListMixin::E% value) → void
return super.{col::ListMixin::first} = value;
return super.{col::ListBase::first} = value;
mixin-super-stub get last() → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::last};
return super.{col::ListBase::last};
mixin-super-stub set last(covariant-by-class self::_NegativeLengthList&Object&ListMixin::E% value) → void
return super.{col::ListMixin::last} = value;
return super.{col::ListBase::last} = value;
mixin-super-stub get iterator() → core::Iterator<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::iterator};
return super.{col::ListBase::iterator};
mixin-super-stub method elementAt(core::int index) → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::elementAt}(index);
return super.{col::ListBase::elementAt}(index);
mixin-super-stub method followedBy(covariant-by-class core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%> other) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::followedBy}(other);
return super.{col::ListBase::followedBy}(other);
mixin-super-stub method forEach((self::_NegativeLengthList&Object&ListMixin::E%) → void action) → void
return super.{col::ListMixin::forEach}(action);
return super.{col::ListBase::forEach}(action);
mixin-super-stub get isEmpty() → core::bool
return super.{col::ListMixin::isEmpty};
return super.{col::ListBase::isEmpty};
mixin-super-stub get isNotEmpty() → core::bool
return super.{col::ListMixin::isNotEmpty};
return super.{col::ListBase::isNotEmpty};
mixin-super-stub get single() → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::single};
return super.{col::ListBase::single};
mixin-super-stub method contains(core::Object? element) → core::bool
return super.{col::ListMixin::contains}(element);
return super.{col::ListBase::contains}(element);
mixin-super-stub method every((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test) → core::bool
return super.{col::ListMixin::every}(test);
return super.{col::ListBase::every}(test);
mixin-super-stub method any((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test) → core::bool
return super.{col::ListMixin::any}(test);
return super.{col::ListBase::any}(test);
mixin-super-stub method firstWhere((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test, {covariant-by-class () →? self::_NegativeLengthList&Object&ListMixin::E% orElse}) → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::firstWhere}(test, orElse: orElse);
return super.{col::ListBase::firstWhere}(test, orElse: orElse);
mixin-super-stub method lastWhere((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test, {covariant-by-class () →? self::_NegativeLengthList&Object&ListMixin::E% orElse}) → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::lastWhere}(test, orElse: orElse);
return super.{col::ListBase::lastWhere}(test, orElse: orElse);
mixin-super-stub method singleWhere((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test, {covariant-by-class () →? self::_NegativeLengthList&Object&ListMixin::E% orElse}) → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::singleWhere}(test, orElse: orElse);
return super.{col::ListBase::singleWhere}(test, orElse: orElse);
mixin-super-stub method join([core::String separator]) → core::String
return super.{col::ListMixin::join}(separator);
return super.{col::ListBase::join}(separator);
mixin-super-stub method where((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::where}(test);
return super.{col::ListBase::where}(test);
mixin-super-stub method whereType<T extends core::Object? = dynamic>() → core::Iterable<self::_NegativeLengthList&Object&ListMixin::whereType::T%>
return super.{col::ListMixin::whereType}<self::_NegativeLengthList&Object&ListMixin::whereType::T%>();
return super.{col::ListBase::whereType}<self::_NegativeLengthList&Object&ListMixin::whereType::T%>();
mixin-super-stub method map<T extends core::Object? = dynamic>((self::_NegativeLengthList&Object&ListMixin::E%) → self::_NegativeLengthList&Object&ListMixin::map::T% f) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::map::T%>
return super.{col::ListMixin::map}<self::_NegativeLengthList&Object&ListMixin::map::T%>(f);
return super.{col::ListBase::map}<self::_NegativeLengthList&Object&ListMixin::map::T%>(f);
mixin-super-stub method expand<T extends core::Object? = dynamic>((self::_NegativeLengthList&Object&ListMixin::E%) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::expand::T%> f) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::expand::T%>
return super.{col::ListMixin::expand}<self::_NegativeLengthList&Object&ListMixin::expand::T%>(f);
return super.{col::ListBase::expand}<self::_NegativeLengthList&Object&ListMixin::expand::T%>(f);
mixin-super-stub method reduce(covariant-by-class (self::_NegativeLengthList&Object&ListMixin::E%, self::_NegativeLengthList&Object&ListMixin::E%) → self::_NegativeLengthList&Object&ListMixin::E% combine) → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::reduce}(combine);
return super.{col::ListBase::reduce}(combine);
mixin-super-stub method fold<T extends core::Object? = dynamic>(self::_NegativeLengthList&Object&ListMixin::fold::T% initialValue, (self::_NegativeLengthList&Object&ListMixin::fold::T%, self::_NegativeLengthList&Object&ListMixin::E%) → self::_NegativeLengthList&Object&ListMixin::fold::T% combine) → self::_NegativeLengthList&Object&ListMixin::fold::T%
return super.{col::ListMixin::fold}<self::_NegativeLengthList&Object&ListMixin::fold::T%>(initialValue, combine);
return super.{col::ListBase::fold}<self::_NegativeLengthList&Object&ListMixin::fold::T%>(initialValue, combine);
mixin-super-stub method skip(core::int count) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::skip}(count);
return super.{col::ListBase::skip}(count);
mixin-super-stub method skipWhile((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::skipWhile}(test);
return super.{col::ListBase::skipWhile}(test);
mixin-super-stub method take(core::int count) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::take}(count);
return super.{col::ListBase::take}(count);
mixin-super-stub method takeWhile((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::takeWhile}(test);
return super.{col::ListBase::takeWhile}(test);
mixin-super-stub method toList({core::bool growable}) → core::List<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::toList}(growable: growable);
return super.{col::ListBase::toList}(growable: growable);
mixin-super-stub method toSet() → core::Set<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::toSet}();
return super.{col::ListBase::toSet}();
mixin-super-stub method add(covariant-by-class self::_NegativeLengthList&Object&ListMixin::E% element) → void
return super.{col::ListMixin::add}(element);
return super.{col::ListBase::add}(element);
mixin-super-stub method addAll(covariant-by-class core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%> iterable) → void
return super.{col::ListMixin::addAll}(iterable);
return super.{col::ListBase::addAll}(iterable);
mixin-super-stub method remove(core::Object? element) → core::bool
return super.{col::ListMixin::remove}(element);
return super.{col::ListBase::remove}(element);
mixin-super-stub method _closeGap(core::int start, core::int end) → void
return super.{col::ListMixin::_closeGap}(start, end);
return super.{col::ListBase::_closeGap}(start, end);
mixin-super-stub method removeWhere((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test) → void
return super.{col::ListMixin::removeWhere}(test);
return super.{col::ListBase::removeWhere}(test);
mixin-super-stub method retainWhere((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test) → void
return super.{col::ListMixin::retainWhere}(test);
return super.{col::ListBase::retainWhere}(test);
mixin-super-stub method _filter((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test, core::bool retainMatching) → void
return super.{col::ListMixin::_filter}(test, retainMatching);
return super.{col::ListBase::_filter}(test, retainMatching);
mixin-super-stub method clear() → void
return super.{col::ListMixin::clear}();
return super.{col::ListBase::clear}();
mixin-super-stub method cast<R extends core::Object? = dynamic>() → core::List<self::_NegativeLengthList&Object&ListMixin::cast::R%>
return super.{col::ListMixin::cast}<self::_NegativeLengthList&Object&ListMixin::cast::R%>();
return super.{col::ListBase::cast}<self::_NegativeLengthList&Object&ListMixin::cast::R%>();
mixin-super-stub method removeLast() → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::removeLast}();
return super.{col::ListBase::removeLast}();
mixin-super-stub method sort([(self::_NegativeLengthList&Object&ListMixin::E%, self::_NegativeLengthList&Object&ListMixin::E%) →? core::int compare]) → void
return super.{col::ListMixin::sort}(compare);
return super.{col::ListBase::sort}(compare);
mixin-super-stub method shuffle([math::Random? random]) → void
return super.{col::ListMixin::shuffle}(random);
return super.{col::ListBase::shuffle}(random);
mixin-super-stub method asMap() → core::Map<core::int, self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::asMap}();
return super.{col::ListBase::asMap}();
mixin-super-stub operator +(covariant-by-class core::List<self::_NegativeLengthList&Object&ListMixin::E%> other) → core::List<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::+}(other);
return super.{col::ListBase::+}(other);
mixin-super-stub method sublist(core::int start, [core::int? end]) → core::List<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::sublist}(start, end);
return super.{col::ListBase::sublist}(start, end);
mixin-super-stub method getRange(core::int start, core::int end) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::getRange}(start, end);
return super.{col::ListBase::getRange}(start, end);
mixin-super-stub method removeRange(core::int start, core::int end) → void
return super.{col::ListMixin::removeRange}(start, end);
return super.{col::ListBase::removeRange}(start, end);
mixin-super-stub method fillRange(core::int start, core::int end, [covariant-by-class self::_NegativeLengthList&Object&ListMixin::E? fill]) → void
return super.{col::ListMixin::fillRange}(start, end, fill);
return super.{col::ListBase::fillRange}(start, end, fill);
mixin-super-stub method setRange(core::int start, core::int end, covariant-by-class core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%> iterable, [core::int skipCount]) → void
return super.{col::ListMixin::setRange}(start, end, iterable, skipCount);
return super.{col::ListBase::setRange}(start, end, iterable, skipCount);
mixin-super-stub method replaceRange(core::int start, core::int end, covariant-by-class core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%> newContents) → void
return super.{col::ListMixin::replaceRange}(start, end, newContents);
return super.{col::ListBase::replaceRange}(start, end, newContents);
mixin-super-stub method indexOf(covariant-by-class core::Object? element, [core::int start]) → core::int
return super.{col::ListMixin::indexOf}(element, start);
return super.{col::ListBase::indexOf}(element, start);
mixin-super-stub method indexWhere((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test, [core::int start]) → core::int
return super.{col::ListMixin::indexWhere}(test, start);
return super.{col::ListBase::indexWhere}(test, start);
mixin-super-stub method lastIndexOf(covariant-by-class core::Object? element, [core::int? start]) → core::int
return super.{col::ListMixin::lastIndexOf}(element, start);
return super.{col::ListBase::lastIndexOf}(element, start);
mixin-super-stub method lastIndexWhere((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test, [core::int? start]) → core::int
return super.{col::ListMixin::lastIndexWhere}(test, start);
return super.{col::ListBase::lastIndexWhere}(test, start);
mixin-super-stub method insert(core::int index, covariant-by-class self::_NegativeLengthList&Object&ListMixin::E% element) → void
return super.{col::ListMixin::insert}(index, element);
return super.{col::ListBase::insert}(index, element);
mixin-super-stub method removeAt(core::int index) → self::_NegativeLengthList&Object&ListMixin::E%
return super.{col::ListMixin::removeAt}(index);
return super.{col::ListBase::removeAt}(index);
mixin-super-stub method insertAll(core::int index, covariant-by-class core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%> iterable) → void
return super.{col::ListMixin::insertAll}(index, iterable);
return super.{col::ListBase::insertAll}(index, iterable);
mixin-super-stub method setAll(core::int index, covariant-by-class core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%> iterable) → void
return super.{col::ListMixin::setAll}(index, iterable);
return super.{col::ListBase::setAll}(index, iterable);
mixin-super-stub get reversed() → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>
return super.{col::ListMixin::reversed};
return super.{col::ListBase::reversed};
mixin-super-stub method toString() → core::String
return super.{col::ListMixin::toString}();
return super.{col::ListBase::toString}();
}
class NegativeLengthList<E extends core::Object? = dynamic> extends self::_NegativeLengthList&Object&ListMixin<self::NegativeLengthList::E%> {
final field core::List<self::NegativeLengthList::E%> _list;

View file

@ -7,7 +7,7 @@ import "dart:math" as math;
import "dart:collection";
abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dynamic> extends core::Object implements col::ListMixin<self::_NegativeLengthList&Object&ListMixin::E%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dynamic> extends core::Object implements col::ListBase<self::_NegativeLengthList&Object&ListMixin::E%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
const synthetic constructor •() → self::_NegativeLengthList&Object&ListMixin<self::_NegativeLengthList&Object&ListMixin::E%>
: super core::Object::•()
;
@ -51,7 +51,7 @@ abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dy
get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ isEmpty() → core::bool
return this.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} 0;
get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ isNotEmpty() → core::bool
return !this.{col::ListMixin::isEmpty}{core::bool};
return !this.{col::ListBase::isEmpty}{core::bool};
get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ single() → self::_NegativeLengthList&Object&ListMixin::E% {
if(this.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} 0)
throw _in::IterableElementError::noElement();
@ -194,7 +194,7 @@ abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dy
return new _in::TakeWhileIterable::•<self::_NegativeLengthList&Object&ListMixin::E%>(this, test);
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ toList({core::bool growable = #C5}) → core::List<self::_NegativeLengthList&Object&ListMixin::E%> {
if(this.{col::ListMixin::isEmpty}{core::bool})
if(this.{col::ListBase::isEmpty}{core::bool})
return core::List::empty<self::_NegativeLengthList&Object&ListMixin::E%>(growable: growable);
self::_NegativeLengthList&Object&ListMixin::E% first = this.{core::List::[]}(0){(core::int) → self::_NegativeLengthList&Object&ListMixin::E%};
core::List<self::_NegativeLengthList&Object&ListMixin::E%> result = core::List::filled<self::_NegativeLengthList&Object&ListMixin::E%>(this.{core::List::length}{core::int}, first, growable: growable);
@ -221,7 +221,7 @@ abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dy
self::_NegativeLengthList&Object&ListMixin::E% element = :sync-for-iterator.{core::Iterator::current}{self::_NegativeLengthList&Object&ListMixin::E%};
{
assert(this.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} i || (throw new core::ConcurrentModificationError::•(this)));
this.{col::ListMixin::add}(element){(self::_NegativeLengthList&Object&ListMixin::E%) → void};
this.{col::ListBase::add}(element){(self::_NegativeLengthList&Object&ListMixin::E%) → void};
i = i.{core::num::+}(1){(core::num) → core::int};
}
}
@ -230,7 +230,7 @@ abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dy
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ remove(core::Object? element) → core::bool {
for (core::int i = 0; i.{core::num::<}(this.{core::List::length}{core::int}){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
if(this.{core::List::[]}(i){(core::int) → self::_NegativeLengthList&Object&ListMixin::E%} =={core::Object::==}{(core::Object) → core::bool} element) {
this.{col::ListMixin::_closeGap}(i, i.{core::num::+}(1){(core::num) → core::int}){(core::int, core::int) → void};
this.{col::ListBase::_closeGap}(i, i.{core::num::+}(1){(core::num) → core::int}){(core::int, core::int) → void};
return true;
}
}
@ -248,10 +248,10 @@ abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dy
this.{core::List::length} = length.{core::num::-}(size){(core::num) → core::int};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeWhere((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test) → void {
this.{col::ListMixin::_filter}(test, false){((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool, core::bool) → void};
this.{col::ListBase::_filter}(test, false){((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool, core::bool) → void};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ retainWhere((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test) → void {
this.{col::ListMixin::_filter}(test, true){((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool, core::bool) → void};
this.{col::ListBase::_filter}(test, true){((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool, core::bool) → void};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ _filter((self::_NegativeLengthList&Object&ListMixin::E%) → core::bool test, core::bool retainMatching) → void {
core::List<self::_NegativeLengthList&Object&ListMixin::E%> retained = core::_GrowableList::•<self::_NegativeLengthList&Object&ListMixin::E%>(0);
@ -266,7 +266,7 @@ abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dy
}
}
if(!(retained.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} this.{core::List::length}{core::int})) {
this.{col::ListMixin::setRange}(0, retained.{core::List::length}{core::int}, retained){(core::int, core::int, core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>, [core::int]) → void};
this.{col::ListBase::setRange}(0, retained.{core::List::length}{core::int}, retained){(core::int, core::int, core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>, [core::int]) → void};
this.{core::List::length} = retained.{core::List::length}{core::int};
}
}
@ -313,7 +313,7 @@ abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dy
if(end{core::int} == null)
throw "!";
core::RangeError::checkValidRange(start, end{core::int}, listLength);
return core::List::from<self::_NegativeLengthList&Object&ListMixin::E%>(this.{col::ListMixin::getRange}(start, end{core::int}){(core::int, core::int) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>});
return core::List::from<self::_NegativeLengthList&Object&ListMixin::E%>(this.{col::ListBase::getRange}(start, end{core::int}){(core::int, core::int) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>});
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ getRange(core::int start, core::int end) → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%> {
core::RangeError::checkValidRange(start, end, this.{core::List::length}{core::int});
@ -322,7 +322,7 @@ abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dy
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeRange(core::int start, core::int end) → void {
core::RangeError::checkValidRange(start, end, this.{core::List::length}{core::int});
if(end.{core::num::>}(start){(core::num) → core::bool}) {
this.{col::ListMixin::_closeGap}(start, end){(core::int, core::int) → void};
this.{col::ListBase::_closeGap}(start, end){(core::int, core::int) → void};
}
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ fillRange(core::int start, core::int end, [covariant-by-class self::_NegativeLengthList&Object&ListMixin::E? fill = #C2]) → void {
@ -365,7 +365,7 @@ abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dy
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ replaceRange(core::int start, core::int end, covariant-by-class core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%> newContents) → void {
core::RangeError::checkValidRange(start, end, this.{core::List::length}{core::int});
if(start =={core::num::==}{(core::Object) → core::bool} this.{core::List::length}{core::int}) {
this.{col::ListMixin::addAll}(newContents){(core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>) → void};
this.{col::ListBase::addAll}(newContents){(core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>) → void};
return;
}
if(!(newContents is{ForNonNullableByDefault} _in::EfficientLengthIterable<dynamic>)) {
@ -375,9 +375,9 @@ abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dy
core::int insertLength = newContents.{core::Iterable::length}{core::int};
if(removeLength.{core::num::>=}(insertLength){(core::num) → core::bool}) {
core::int insertEnd = start.{core::num::+}(insertLength){(core::num) → core::int};
this.{col::ListMixin::setRange}(start, insertEnd, newContents){(core::int, core::int, core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>, [core::int]) → void};
this.{col::ListBase::setRange}(start, insertEnd, newContents){(core::int, core::int, core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>, [core::int]) → void};
if(removeLength.{core::num::>}(insertLength){(core::num) → core::bool}) {
this.{col::ListMixin::_closeGap}(insertEnd, end){(core::int, core::int) → void};
this.{col::ListBase::_closeGap}(insertEnd, end){(core::int, core::int) → void};
}
}
else
@ -392,7 +392,7 @@ abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dy
this.{core::List::[]=}(i, element){(core::int, self::_NegativeLengthList&Object&ListMixin::E%) → void};
}
else {
this.{col::ListMixin::add}(element){(self::_NegativeLengthList&Object&ListMixin::E%) → void};
this.{col::ListBase::add}(element){(self::_NegativeLengthList&Object&ListMixin::E%) → void};
}
i = i.{core::num::+}(1){(core::num) → core::int};
}
@ -404,12 +404,12 @@ abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dy
core::int oldLength = this.{core::List::length}{core::int};
core::int insertEnd = start.{core::num::+}(insertLength){(core::num) → core::int};
for (core::int i = oldLength.{core::num::-}(delta){(core::num) → core::int}; i.{core::num::<}(oldLength){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
this.{col::ListMixin::add}(this.{core::List::[]}(i.{core::num::>}(0){(core::num) → core::bool} ?{core::int} i : 0){(core::int) → self::_NegativeLengthList&Object&ListMixin::E%}){(self::_NegativeLengthList&Object&ListMixin::E%) → void};
this.{col::ListBase::add}(this.{core::List::[]}(i.{core::num::>}(0){(core::num) → core::bool} ?{core::int} i : 0){(core::int) → self::_NegativeLengthList&Object&ListMixin::E%}){(self::_NegativeLengthList&Object&ListMixin::E%) → void};
}
if(insertEnd.{core::num::<}(oldLength){(core::num) → core::bool}) {
this.{col::ListMixin::setRange}(insertEnd, oldLength, this, end){(core::int, core::int, core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>, [core::int]) → void};
this.{col::ListBase::setRange}(insertEnd, oldLength, this, end){(core::int, core::int, core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>, [core::int]) → void};
}
this.{col::ListMixin::setRange}(start, insertEnd, newContents){(core::int, core::int, core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>, [core::int]) → void};
this.{col::ListBase::setRange}(start, insertEnd, newContents){(core::int, core::int, core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>, [core::int]) → void};
}
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ indexOf(covariant-by-class core::Object? element, [core::int start = #C7]) → core::int {
@ -456,21 +456,21 @@ abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dy
_in::checkNotNullable<core::int>(index, "index");
core::int length = this.{core::List::length}{core::int};
core::RangeError::checkValueInInterval(index, 0, length, "index");
this.{col::ListMixin::add}(element){(self::_NegativeLengthList&Object&ListMixin::E%) → void};
this.{col::ListBase::add}(element){(self::_NegativeLengthList&Object&ListMixin::E%) → void};
if(!(index =={core::num::==}{(core::Object) → core::bool} length)) {
this.{col::ListMixin::setRange}(index.{core::num::+}(1){(core::num) → core::int}, length.{core::num::+}(1){(core::num) → core::int}, this, index){(core::int, core::int, core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>, [core::int]) → void};
this.{col::ListBase::setRange}(index.{core::num::+}(1){(core::num) → core::int}, length.{core::num::+}(1){(core::num) → core::int}, this, index){(core::int, core::int, core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>, [core::int]) → void};
this.{core::List::[]=}(index, element){(core::int, self::_NegativeLengthList&Object&ListMixin::E%) → void};
}
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeAt(core::int index) → self::_NegativeLengthList&Object&ListMixin::E% {
self::_NegativeLengthList&Object&ListMixin::E% result = this.{core::List::[]}(index){(core::int) → self::_NegativeLengthList&Object&ListMixin::E%};
this.{col::ListMixin::_closeGap}(index, index.{core::num::+}(1){(core::num) → core::int}){(core::int, core::int) → void};
this.{col::ListBase::_closeGap}(index, index.{core::num::+}(1){(core::num) → core::int}){(core::int, core::int) → void};
return result;
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ insertAll(core::int index, covariant-by-class core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%> iterable) → void {
core::RangeError::checkValueInInterval(index, 0, this.{core::List::length}{core::int}, "index");
if(index =={core::num::==}{(core::Object) → core::bool} this.{core::List::length}{core::int}) {
this.{col::ListMixin::addAll}(iterable){(core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>) → void};
this.{col::ListBase::addAll}(iterable){(core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>) → void};
return;
}
if(!(iterable is{ForNonNullableByDefault} _in::EfficientLengthIterable<dynamic>) || core::identical(iterable, this)) {
@ -482,7 +482,7 @@ abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dy
}
core::int oldLength = this.{core::List::length}{core::int};
for (core::int i = oldLength.{core::num::-}(insertionLength){(core::num) → core::int}; i.{core::num::<}(oldLength){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
this.{col::ListMixin::add}(this.{core::List::[]}(i.{core::num::>}(0){(core::num) → core::bool} ?{core::int} i : 0){(core::int) → self::_NegativeLengthList&Object&ListMixin::E%}){(self::_NegativeLengthList&Object&ListMixin::E%) → void};
this.{col::ListBase::add}(this.{core::List::[]}(i.{core::num::>}(0){(core::num) → core::bool} ?{core::int} i : 0){(core::int) → self::_NegativeLengthList&Object&ListMixin::E%}){(self::_NegativeLengthList&Object&ListMixin::E%) → void};
}
if(!(iterable.{core::Iterable::length}{core::int} =={core::num::==}{(core::Object) → core::bool} insertionLength)) {
this.{core::List::length} = this.{core::List::length}{core::int}.{core::num::-}(insertionLength){(core::num) → core::int};
@ -490,13 +490,13 @@ abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dy
}
core::int oldCopyStart = index.{core::num::+}(insertionLength){(core::num) → core::int};
if(oldCopyStart.{core::num::<}(oldLength){(core::num) → core::bool}) {
this.{col::ListMixin::setRange}(oldCopyStart, oldLength, this, index){(core::int, core::int, core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>, [core::int]) → void};
this.{col::ListBase::setRange}(oldCopyStart, oldLength, this, index){(core::int, core::int, core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>, [core::int]) → void};
}
this.{col::ListMixin::setAll}(index, iterable){(core::int, core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>) → void};
this.{col::ListBase::setAll}(index, iterable){(core::int, core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>) → void};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ setAll(core::int index, covariant-by-class core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%> iterable) → void {
if(iterable is{ForNonNullableByDefault} core::List<dynamic>) {
this.{col::ListMixin::setRange}(index, index.{core::num::+}(iterable.{core::Iterable::length}{core::int}){(core::num) → core::int}, iterable){(core::int, core::int, core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>, [core::int]) → void};
this.{col::ListBase::setRange}(index, index.{core::num::+}(iterable.{core::Iterable::length}{core::int}){(core::num) → core::int}, iterable){(core::int, core::int, core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>, [core::int]) → void};
}
else {
{
@ -513,10 +513,12 @@ abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dy
get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ reversed() → core::Iterable<self::_NegativeLengthList&Object&ListMixin::E%>
return new _in::ReversedListIterable::•<self::_NegativeLengthList&Object&ListMixin::E%>(this);
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ toString() → core::String
return col::IterableBase::iterableToFullString(this, "[", "]");
return col::ListBase::listToString(this);
static method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ _compareAny(dynamic a, dynamic b) → core::int {
return core::Comparable::compare(a as{ForNonNullableByDefault} core::Comparable<dynamic>, b as{ForNonNullableByDefault} core::Comparable<dynamic>);
}
static method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ listToString(core::List<core::Object?> list) → core::String
return col::IterableBase::iterableToFullString(list, "[", "]");
}
class NegativeLengthList<E extends core::Object? = dynamic> extends self::_NegativeLengthList&Object&ListMixin<self::NegativeLengthList::E%> {
final field core::List<self::NegativeLengthList::E%> _list;
@ -583,16 +585,16 @@ constants {
#C3 = core::pragma {name:#C1, options:#C2}
#C4 = ""
#C5 = true
#C6 = static-tearoff col::ListMixin::_compareAny
#C6 = static-tearoff col::ListBase::_compareAny
#C7 = 0
#C8 = 2
#C9 = 1
}
Extra constant evaluation status:
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:492:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:500:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:512:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:524:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:456:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:464:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:476:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:488:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-testcase:///negative_length.dart:12:41 -> IntConstant(-1)
Extra constant evaluation: evaluated: 1115, effectively constant: 5
Extra constant evaluation: evaluated: 1117, effectively constant: 5

View file

@ -27,8 +27,8 @@ final Map<String, List<String>> additionalRequiredClasses = {
],
'dart:_native_typed_data': [],
'dart:collection': [
'ListMixin',
'MapMixin',
'ListBase',
'MapBase',
'LinkedHashSet',
'_HashSet',
'_IdentityHashSet',

View file

@ -29,7 +29,7 @@ class Q<T extends core::Object? = dynamic> extends core::Object {
;
}
static method foo1([@vm.inferred-type.metadata=dart.core::_GrowableList<#lib::T1>] core::List<self::T1> list) → dynamic {
[@vm.direct-call.metadata=#lib::T3.run] [@vm.inferred-type.metadata=!? (skip check)] [@vm.direct-call.metadata=#lib::T1.go] [@vm.inferred-type.metadata=#lib::T3 (skip check)] [@vm.direct-call.metadata=#lib::Q.result] [@vm.inferred-type.metadata=!] [@vm.direct-call.metadata=dart._internal::ListIterable.first] [@vm.inferred-type.metadata=#lib::Q] [@vm.direct-call.metadata=dart.collection::_ListBase&Object&ListMixin.map] [@vm.inferred-type.metadata=dart._internal::MappedListIterable<#lib::T1, ?> (skip check)] list.{core::Iterable::map}<self::Q<self::T1>>((self::T1 t1) → self::Q<self::T1> => new self::Q::•<self::T1>(t1)){((self::T1) → self::Q<self::T1>) → core::Iterable<self::Q<self::T1>>}.{core::Iterable::first}{self::Q<self::T1>}.{self::Q::result}{self::T1}.{self::T1::go}(){() → self::T3}.{self::T3::run}(){() → dynamic};
[@vm.direct-call.metadata=#lib::T3.run] [@vm.inferred-type.metadata=!? (skip check)] [@vm.direct-call.metadata=#lib::T1.go] [@vm.inferred-type.metadata=#lib::T3 (skip check)] [@vm.direct-call.metadata=#lib::Q.result] [@vm.inferred-type.metadata=!] [@vm.direct-call.metadata=dart._internal::ListIterable.first] [@vm.inferred-type.metadata=#lib::Q] [@vm.direct-call.metadata=dart.collection::ListBase.map] [@vm.inferred-type.metadata=dart._internal::MappedListIterable<#lib::T1, ?> (skip check)] list.{core::Iterable::map}<self::Q<self::T1>>((self::T1 t1) → self::Q<self::T1> => new self::Q::•<self::T1>(t1)){((self::T1) → self::Q<self::T1>) → core::Iterable<self::Q<self::T1>>}.{core::Iterable::first}{self::Q<self::T1>}.{self::Q::result}{self::T1}.{self::T1::go}(){() → self::T3}.{self::T3::run}(){() → dynamic};
}
static method foo2NewValue() → self::Q<dynamic>
return new self::Q::•<self::T2>(new self::T2::•());

View file

@ -33,6 +33,8 @@ class MySet extends Object with SetMixin {
}
List<String> stops = [];
// THIS TEST DEPENDS ON SPECIFIC LINE NUMBERS IN UNRELATED PLATFORM LIBRARIES
// STAYING FIXED. VERY FRAGILE. SHOULD BE FIXED OR REMOVED.
List<String> expected = [
"set.dart:142:23 (sdk_break_with_mixin_test.dart:20:5)",
];
@ -53,4 +55,3 @@ main(args) {
pause_on_start: false,
pause_on_exit: true);
}

View file

@ -31,23 +31,28 @@ class Foo extends Object with ListMixin<int> {
void operator []=(int index, int value) {}
}
// THIS TEST ASSUMES SPECIFIC CODE AT SPECIFIC LINES OF PLATFORM LIBRARIES.
// THE TEST IS FRAGILE AGAINST UNRELATED CHANGES.
// Print updated lines by setting `debugPrint` to `true` below.
List<String> stops = [];
List<String> expected = [
"$file:${LINE + 0}:17", // on "Foo" (in "new Foo()")
"$file:${LINE + 1}:11", // on "="
"list.dart:125:25", // on parameter to "contains"
"list.dart:126:23", // on "length" in "this.length"
"list.dart:127:16", // on "=" in "i = 0"
"list.dart:127:23", // on "<" in "i < length"
"list.dart:128:15", // on "[" in "this[i]"
"list.dart:89:25", // on parameter to "contains"
"list.dart:90:23", // on "length" in "this.length"
"list.dart:91:16", // on "=" in "i = 0"
"list.dart:91:23", // on "<" in "i < length"
"list.dart:92:15", // on "[" in "this[i]"
"$file:${LINE + 13}:23", // on parameter in "operator []"
"$file:${LINE + 14}:5", // on "return"
"list.dart:128:19", // on "=="
"list.dart:129:26", // on "length" in "this.length"
"list.dart:129:18", // on "!="
"list.dart:127:34", // on "++" in "i++"
"list.dart:127:23", // on "<" in "i < length"
"list.dart:133:5", // on "return"
"list.dart:92:19", // on "=="
"list.dart:93:26", // on "length" in "this.length"
"list.dart:93:18", // on "!="
"list.dart:91:34", // on "++" in "i++"
"list.dart:91:23", // on "<" in "i < length"
"list.dart:97:5", // on "return"
"$file:${LINE + 4}:5", // on "print"
"$file:${LINE + 6}:1" // on ending '}'
];
@ -56,7 +61,7 @@ var tests = <IsolateTest>[
hasPausedAtStart,
setBreakpointAtLine(LINE),
runStepIntoThroughProgramRecordingStops(stops),
checkRecordedStops(stops, expected, removeDuplicates: true)
checkRecordedStops(stops, expected, removeDuplicates: true, debugPrint: false)
];
main(args) {

View file

@ -137,7 +137,7 @@ class LinkedHashSet<E> {
factory LinkedHashSet.identity() = _IdentityHashSet<E>;
}
class _HashSet<E> extends _InternalSet<E>
base class _HashSet<E> extends _InternalSet<E>
implements HashSet<E>, LinkedHashSet<E> {
/// The backing store for this set.
///
@ -303,7 +303,7 @@ class _HashSet<E> extends _InternalSet<E>
}
// Used for DDC const sets.
class _ImmutableSet<E> extends _HashSet<E> {
base class _ImmutableSet<E> extends _HashSet<E> {
_ImmutableSet.from(JSArray<E> entries) {
var map = _map;
for (var key in entries) {
@ -327,7 +327,7 @@ class _ImmutableSet<E> extends _HashSet<E> {
UnsupportedError("Cannot modify unmodifiable set");
}
class _IdentityHashSet<E> extends _InternalSet<E>
base class _IdentityHashSet<E> extends _InternalSet<E>
implements HashSet<E>, LinkedHashSet<E> {
/// The backing store for this set.
@notNull
@ -388,7 +388,7 @@ class _IdentityHashSet<E> extends _InternalSet<E>
}
}
class _CustomKeyHashSet<E> extends _CustomHashSet<E> {
base class _CustomKeyHashSet<E> extends _CustomHashSet<E> {
_Predicate<Object?> _validKey;
_CustomKeyHashSet(_Equality<E> equals, _Hasher<E> hashCode, this._validKey)
: super(equals, hashCode);
@ -417,7 +417,7 @@ class _CustomKeyHashSet<E> extends _CustomHashSet<E> {
}
}
class _CustomHashSet<E> extends _InternalSet<E>
base class _CustomHashSet<E> extends _InternalSet<E>
implements HashSet<E>, LinkedHashSet<E> {
_Equality<E> _equals;
_Hasher<E> _hashCode;
@ -536,7 +536,7 @@ class _CustomHashSet<E> extends _InternalSet<E>
/// Base class for our internal [LinkedHashSet]/[HashSet] implementations.
///
/// This implements the common functionality.
abstract class _InternalSet<E> extends _SetBase<E> {
abstract base class _InternalSet<E> extends _SetBase<E> {
@notNull
get _map;

View file

@ -4,7 +4,7 @@
part of dart._js_helper;
class CustomKeyHashMap<K, V> extends CustomHashMap<K, V> {
base class CustomKeyHashMap<K, V> extends CustomHashMap<K, V> {
final _Predicate<Object?> _validKey;
CustomKeyHashMap(_Equality<K> equals, _Hasher<K> hashCode, this._validKey)
: super(equals, hashCode);
@ -29,7 +29,7 @@ class CustomKeyHashMap<K, V> extends CustomHashMap<K, V> {
}
}
class CustomHashMap<K, V> extends InternalMap<K, V> {
base class CustomHashMap<K, V> extends InternalMap<K, V> {
/// The backing store for this map.
@notNull
final _map = JS('', 'new Map()');

View file

@ -4,7 +4,7 @@
part of dart._js_helper;
class IdentityMap<K, V> extends InternalMap<K, V> {
base class IdentityMap<K, V> extends InternalMap<K, V> {
final _map = JS('', 'new Map()');
// We track the number of modifications done to the key set of the
@ -103,6 +103,7 @@ class _JSMapIterable<E> extends EfficientLengthIterable<E> {
int get length => _map.length;
bool get isEmpty => _map.isEmpty;
bool get isNotEmpty => _map.isNotEmpty;
@JSExportName('Symbol.iterator')
_jsIterator() {

View file

@ -7,7 +7,7 @@
part of dart._js_helper;
abstract class InternalMap<K, V> extends MapBase<K, V>
abstract base class InternalMap<K, V> extends MapBase<K, V>
implements LinkedHashMap<K, V>, HashMap<K, V> {
@notNull
get _map;
@ -33,7 +33,7 @@ abstract class InternalMap<K, V> extends MapBase<K, V>
///
/// Items that have a custom equality/hashCode are first canonicalized by
/// looking up the canonical key by its hashCode.
class LinkedMap<K, V> extends InternalMap<K, V> {
base class LinkedMap<K, V> extends InternalMap<K, V> {
/// The backing store for this map.
///
/// Keys that use identity equality are stored directly. For other types of
@ -258,7 +258,7 @@ K putLinkedMapKey<K>(@notNull K key, keyMap) {
return key;
}
class ImmutableMap<K, V> extends LinkedMap<K, V> {
base class ImmutableMap<K, V> extends LinkedMap<K, V> {
ImmutableMap.from(JSArray entries) : super.from(entries);
void operator []=(K key, V value) {

View file

@ -56,7 +56,7 @@ class HashMap<K, V> {
factory HashMap.identity() = _IdentityHashMap<K, V>;
}
class _HashMap<K, V> extends MapBase<K, V> implements HashMap<K, V> {
base class _HashMap<K, V> extends MapBase<K, V> implements HashMap<K, V> {
int _length = 0;
// The hash map contents are divided into three parts: one part for
@ -380,7 +380,7 @@ class _HashMap<K, V> extends MapBase<K, V> implements HashMap<K, V> {
}
}
class _IdentityHashMap<K, V> extends _HashMap<K, V> {
base class _IdentityHashMap<K, V> extends _HashMap<K, V> {
int _computeHashCode(var key) {
// We force the hash codes to be unsigned 30-bit integers to avoid
// issues with problematic keys like '__proto__'. Another option
@ -398,7 +398,7 @@ class _IdentityHashMap<K, V> extends _HashMap<K, V> {
}
}
class _CustomHashMap<K, V> extends _HashMap<K, V> {
base class _CustomHashMap<K, V> extends _HashMap<K, V> {
final _Equality<K> _equals;
final _Hasher<K> _hashCode;
final _Predicate _validKey;
@ -448,6 +448,7 @@ class _HashMapKeyIterable<E> extends EfficientLengthIterable<E> {
int get length => _map._length;
bool get isEmpty => _map._length == 0;
bool get isNotEmpty => _map._length != 0;
Iterator<E> get iterator {
return new _HashMapKeyIterator<E>(_map, _map._computeKeys());
@ -561,7 +562,7 @@ class LinkedHashMap<K, V> {
fillLiteralMap(keyValuePairs, new JsLinkedHashMap());
}
class _LinkedIdentityHashMap<K, V> extends JsLinkedHashMap<K, V> {
base class _LinkedIdentityHashMap<K, V> extends JsLinkedHashMap<K, V> {
_LinkedIdentityHashMap();
int internalComputeHashCode(var key) {
@ -583,7 +584,7 @@ class _LinkedIdentityHashMap<K, V> extends JsLinkedHashMap<K, V> {
}
// TODO(floitsch): use ES6 maps when available.
class _LinkedCustomHashMap<K, V> extends JsLinkedHashMap<K, V> {
base class _LinkedCustomHashMap<K, V> extends JsLinkedHashMap<K, V> {
final _Equality<K> _equals;
final _Hasher<K> _hashCode;
final _Predicate _validKey;
@ -666,7 +667,7 @@ class HashSet<E> {
factory HashSet.identity() = _IdentityHashSet<E>;
}
class _HashSet<E> extends _SetBase<E> implements HashSet<E> {
base class _HashSet<E> extends _SetBase<E> implements HashSet<E> {
int _length = 0;
// The hash set contents are divided into three parts: one part for
@ -948,7 +949,7 @@ class _HashSet<E> extends _SetBase<E> implements HashSet<E> {
}
}
class _IdentityHashSet<E> extends _HashSet<E> {
base class _IdentityHashSet<E> extends _HashSet<E> {
Set<E> _newSet() => new _IdentityHashSet<E>();
Set<R> _newSimilarSet<R>() => new _IdentityHashSet<R>();
@ -969,7 +970,7 @@ class _IdentityHashSet<E> extends _HashSet<E> {
}
}
class _CustomHashSet<E> extends _HashSet<E> {
base class _CustomHashSet<E> extends _HashSet<E> {
_Equality<E> _equality;
_Hasher<E> _hasher;
_Predicate _validKey;
@ -1105,7 +1106,7 @@ class LinkedHashSet<E> {
fillLiteralSet(values, new _LinkedHashSet());
}
class _LinkedHashSet<E> extends _SetBase<E> implements LinkedHashSet<E> {
base class _LinkedHashSet<E> extends _SetBase<E> implements LinkedHashSet<E> {
int _length = 0;
// The hash set contents are divided into three parts: one part for
@ -1422,7 +1423,7 @@ class _LinkedHashSet<E> extends _SetBase<E> implements LinkedHashSet<E> {
}
}
class _LinkedIdentityHashSet<E> extends _LinkedHashSet<E> {
base class _LinkedIdentityHashSet<E> extends _LinkedHashSet<E> {
Set<E> _newSet() => new _LinkedIdentityHashSet<E>();
Set<R> _newSimilarSet<R>() => new _LinkedIdentityHashSet<R>();
@ -1444,7 +1445,7 @@ class _LinkedIdentityHashSet<E> extends _LinkedHashSet<E> {
}
}
class _LinkedCustomHashSet<E> extends _LinkedHashSet<E> {
base class _LinkedCustomHashSet<E> extends _LinkedHashSet<E> {
_Equality<E> _equality;
_Hasher<E> _hasher;
_Predicate _validKey;

View file

@ -46,7 +46,7 @@ class HashMap<K, V> {
const int _MODIFICATION_COUNT_MASK = 0x3fffffff;
class _HashMap<K, V> extends MapBase<K, V> implements HashMap<K, V> {
base class _HashMap<K, V> extends MapBase<K, V> implements HashMap<K, V> {
static const int _INITIAL_CAPACITY = 8;
int _elementCount = 0;
@ -253,7 +253,7 @@ class _HashMap<K, V> extends MapBase<K, V> implements HashMap<K, V> {
Set<K> _newKeySet() => new _HashSet<K>();
}
class _CustomHashMap<K, V> extends _HashMap<K, V> {
base class _CustomHashMap<K, V> extends _HashMap<K, V> {
final _Equality<K> _equals;
final _Hasher<K> _hashCode;
final _Predicate _validKey;
@ -354,7 +354,7 @@ class _CustomHashMap<K, V> extends _HashMap<K, V> {
Set<K> _newKeySet() => new _CustomHashSet<K>(_equals, _hashCode, _validKey);
}
class _IdentityHashMap<K, V> extends _HashMap<K, V> {
base class _IdentityHashMap<K, V> extends _HashMap<K, V> {
bool containsKey(Object? key) {
final hashCode = identityHashCode(key);
final buckets = _buckets;
@ -584,7 +584,7 @@ class HashSet<E> {
factory HashSet.identity() => new _IdentityHashSet<E>();
}
class _HashSet<E> extends _SetBase<E> implements HashSet<E> {
base class _HashSet<E> extends _SetBase<E> implements HashSet<E> {
static const int _INITIAL_CAPACITY = 8;
var _buckets = List<_HashSetEntry<E>?>.filled(_INITIAL_CAPACITY, null);
@ -782,7 +782,7 @@ class _HashSet<E> extends _SetBase<E> implements HashSet<E> {
HashSet<R> _newSimilarSet<R>() => new _HashSet<R>();
}
class _IdentityHashSet<E> extends _HashSet<E> {
base class _IdentityHashSet<E> extends _HashSet<E> {
int _hashCode(Object? e) => identityHashCode(e);
bool _equals(Object? e1, Object? e2) => identical(e1, e2);
@ -790,7 +790,7 @@ class _IdentityHashSet<E> extends _HashSet<E> {
HashSet<R> _newSimilarSet<R>() => new _IdentityHashSet<R>();
}
class _CustomHashSet<E> extends _HashSet<E> {
base class _CustomHashSet<E> extends _HashSet<E> {
final _Equality<E> _equality;
final _Hasher<E> _hasher;
final _Predicate _validKey;

View file

@ -285,7 +285,7 @@ final _uninitializedData = new List.filled(0, null);
// VM-internalized implementation of a default-constructed LinkedHashMap. Map
// literals also create instances of this class.
@pragma("vm:entry-point")
class _Map<K, V> extends _HashVMBase
base class _Map<K, V> extends _HashVMBase
with
MapMixin<K, V>,
_HashBase,
@ -315,7 +315,7 @@ class _Map<K, V> extends _HashVMBase
// not permit any modification of map entries from Dart code. We use
// this class for maps constructed from Dart constant maps.
@pragma("vm:entry-point")
class _ConstMap<K, V> extends _HashVMImmutableBase
base class _ConstMap<K, V> extends _HashVMImmutableBase
with
MapMixin<K, V>,
_HashBase,
@ -633,7 +633,7 @@ mixin _LinkedHashMapMixin<K, V> on _HashBase, _EqualsAndHashCode {
Iterable<V> get values => _CompactIterable<V>(this, _data, _usedData, -1, 2);
}
class _CompactLinkedIdentityHashMap<K, V> extends _HashFieldBase
base class _CompactLinkedIdentityHashMap<K, V> extends _HashFieldBase
with
MapMixin<K, V>,
_HashBase,
@ -651,7 +651,7 @@ class _CompactLinkedIdentityHashMap<K, V> extends _HashFieldBase
}
}
class _CompactLinkedCustomHashMap<K, V> extends _HashFieldBase
base class _CompactLinkedCustomHashMap<K, V> extends _HashFieldBase
with
MapMixin<K, V>,
_HashBase,
@ -947,7 +947,7 @@ mixin _LinkedHashSetMixin<E> on _HashBase, _EqualsAndHashCode {
// Set implementation, analogous to _Map. Set literals create instances of this
// class.
@pragma('vm:entry-point')
class _Set<E> extends _HashVMBase
base class _Set<E> extends _HashVMBase
with
SetMixin<E>,
_HashBase,
@ -983,7 +983,7 @@ class _Set<E> extends _HashVMBase
}
@pragma("vm:entry-point")
class _ConstSet<E> extends _HashVMImmutableBase
base class _ConstSet<E> extends _HashVMImmutableBase
with
SetMixin<E>,
_HashBase,
@ -1065,7 +1065,7 @@ mixin _ImmutableLinkedHashSetMixin<E>
_CompactIteratorImmutable<E>(this, _data, _usedData, -1, 1);
}
class _CompactLinkedIdentityHashSet<E> extends _HashFieldBase
base class _CompactLinkedIdentityHashSet<E> extends _HashFieldBase
with
SetMixin<E>,
_HashBase,
@ -1088,7 +1088,7 @@ class _CompactLinkedIdentityHashSet<E> extends _HashFieldBase
}
}
class _CompactLinkedCustomHashSet<E> extends _HashFieldBase
base class _CompactLinkedCustomHashSet<E> extends _HashFieldBase
with
SetMixin<E>,
_HashBase,

View file

@ -63,7 +63,7 @@ class LinkedHashSet<E> {
}
@pragma("wasm:entry-point")
class _WasmDefaultMap<K, V> extends _HashFieldBase
base class _WasmDefaultMap<K, V> extends _HashFieldBase
with
MapMixin<K, V>,
_HashBase,
@ -75,7 +75,7 @@ class _WasmDefaultMap<K, V> extends _HashFieldBase
}
@pragma('wasm:entry-point')
class _WasmDefaultSet<E> extends _HashFieldBase
base class _WasmDefaultSet<E> extends _HashFieldBase
with
SetMixin<E>,
_HashBase,
@ -98,7 +98,7 @@ abstract class _HashWasmImmutableBase extends _HashFieldBase
}
@pragma("wasm:entry-point")
class _WasmImmutableMap<K, V> extends _HashWasmImmutableBase
base class _WasmImmutableMap<K, V> extends _HashWasmImmutableBase
with
MapMixin<K, V>,
_HashBase,
@ -114,7 +114,7 @@ class _WasmImmutableMap<K, V> extends _HashWasmImmutableBase
}
@pragma("wasm:entry-point")
class _WasmImmutableSet<E> extends _HashWasmImmutableBase
base class _WasmImmutableSet<E> extends _HashWasmImmutableBase
with
SetMixin<E>,
_HashBase,

View file

@ -115,7 +115,7 @@ typedef _Hasher<K> = int Function(K object);
/// * [Map], the general interface of key/value pair collections.
/// * [LinkedHashMap] iterates in key insertion order.
/// * [SplayTreeMap] iterates the keys in sorted order.
abstract class HashMap<K, V> implements Map<K, V> {
abstract final class HashMap<K, V> implements Map<K, V> {
/// Creates an unordered hash-table based [Map].
///
/// The created map is not ordered in any way. When iterating the keys or

View file

@ -95,7 +95,7 @@ part of dart.collection;
/// occur only once.
/// * [LinkedHashSet] objects stored based on insertion order.
/// * [SplayTreeSet] iterates the objects in sorted order.
abstract class HashSet<E> implements Set<E> {
abstract final class HashSet<E> implements Set<E> {
/// Create a hash set using the provided [equals] as equality.
///
/// The provided [equals] must define a stable equivalence relation, and

View file

@ -21,7 +21,7 @@ part of dart.collection;
/// cache the [Iterator.moveNext] result, so that [hasNext] can be
/// checked multiple times.
@Deprecated("Will be removed in a later version of the Dart SDK")
class HasNextIterator<E> {
final class HasNextIterator<E> {
Iterator<E> _iterator;
/// Cache for `_iterator.moveNext()`, used by `hasNext`.

View file

@ -110,7 +110,7 @@ part of dart.collection;
/// * [Map], the general interface of key/value pair collections.
/// * [HashMap] is unordered (the order of iteration is not guaranteed).
/// * [SplayTreeMap] iterates the keys in sorted order.
abstract class LinkedHashMap<K, V> implements Map<K, V> {
abstract final class LinkedHashMap<K, V> implements Map<K, V> {
/// Creates an insertion-ordered hash-table based [Map].
///
/// If [equals] is provided, it is used to compare the keys in the table with

View file

@ -103,7 +103,7 @@ part of dart.collection;
/// occur only once.
/// * [HashSet] the order of the objects in the iteration is not guaranteed.
/// * [SplayTreeSet] iterates the objects in sorted order.
abstract class LinkedHashSet<E> implements Set<E> {
abstract final class LinkedHashSet<E> implements Set<E> {
/// Create an insertion-ordered hash set using the provided
/// [equals] and [hashCode].
///

View file

@ -78,7 +78,7 @@ part of dart.collection;
/// print(linkedList.isEmpty); // true
/// }
/// ```
class LinkedList<E extends LinkedListEntry<E>> extends Iterable<E> {
base class LinkedList<E extends LinkedListEntry<E>> extends Iterable<E> {
int _modificationCount = 0;
int _length = 0;
E? _first;

View file

@ -30,46 +30,10 @@ part of dart.collection;
/// To avoid this, override 'add' and 'addAll' to also forward directly
/// to the growable list, or, if possible, use `DelegatingList` from
/// "package:collection/collection.dart" instead of a `ListMixin`.
abstract class ListBase<E> extends Object with ListMixin<E> {
/// Converts a [List] to a [String].
///
/// Converts [list] to a string by converting each element to a string (by
/// calling [Object.toString]), joining them with ", ", and wrapping the
/// result in `[` and `]`.
///
/// Handles circular references where converting one of the elements
/// to a string ends up converting [list] to a string again.
static String listToString(List list) =>
IterableBase.iterableToFullString(list, '[', ']');
}
// TODO: @Deprecated("Use List instead")
abstract mixin class ListBase<E> implements List<E> {
const ListBase();
/// Base implementation of a [List] class.
///
/// `ListMixin` can be used as a mixin to make a class implement
/// the `List` interface.
///
/// This mixin implements all read operations using only the `length` and
/// `operator[]` and members. It implements write operations using those and
/// `add`, `length=` and `operator[]=`.
/// Classes using this mixin should implement those five operations.
///
/// **NOTICE**: For backwards compatibility reasons,
/// there is a default implementation of `add`
/// which only works for lists with a nullable element type.
/// For lists with a non-nullable element type,
/// the `add` method must be implemented.
///
/// **NOTICE**: Forwarding just the four `length` and `[]` read/write operations
/// to a normal growable [List] (as created by a `[]` literal)
/// will give very bad performance for `add` and `addAll` operations
/// of `ListMixin`.
/// These operations are implemented by
/// increasing the length of the list by one for each `add` operation,
/// and repeatedly increasing the length of a growable list is not efficient.
/// To avoid this, override 'add' and 'addAll' to also forward directly
/// to the growable list, or, if possible, use `DelegatingList` from
/// "package:collection/collection.dart" instead of a `ListMixin`.
abstract mixin class ListMixin<E> implements List<E> {
// Iterable interface.
// TODO(lrn): When we get composable mixins, reuse IterableMixin instead
// of redeclaring everything.
@ -586,5 +550,45 @@ abstract mixin class ListMixin<E> implements List<E> {
Iterable<E> get reversed => ReversedListIterable<E>(this);
String toString() => IterableBase.iterableToFullString(this, '[', ']');
String toString() => listToString(this);
/// Converts a [List] to a [String].
///
/// Converts [list] to a string by converting each element to a string (by
/// calling [Object.toString]), joining them with ", ", and wrapping the
/// result in `[` and `]`.
///
/// Handles circular references where converting one of the elements
/// to a string ends up converting [list] to a string again.
static String listToString(List<Object?> list) =>
IterableBase.iterableToFullString(list, '[', ']');
}
/// Base mixin implementation of a [List] class.
///
/// `ListMixin` can be used as a mixin to make a class implement
/// the `List` interface.
///
/// This mixin implements all read operations using only the `length` and
/// `operator[]` and members. It implements write operations using those and
/// `add`, `length=` and `operator[]=`.
/// Classes using this mixin should implement those five operations.
///
/// **NOTICE**: For backwards compatibility reasons,
/// there is a default implementation of `add`
/// which only works for lists with a nullable element type.
/// For lists with a non-nullable element type,
/// the `add` method must be implemented.
///
/// **NOTICE**: Forwarding just the four `length` and `[]` read/write operations
/// to a normal growable [List] (as created by a `[]` literal)
/// will give very bad performance for `add` and `addAll` operations
/// of `ListMixin`.
/// These operations are implemented by
/// increasing the length of the list by one for each `add` operation,
/// and repeatedly increasing the length of a growable list is not efficient.
/// To avoid this, override 'add' and 'addAll' to also forward directly
/// to the growable list, or, if possible, use `DelegatingList` from
/// "package:collection/collection.dart" instead of a `ListMixin`.
// TODO: @Deprecated("Use List instead")
typedef ListMixin<E> = ListBase<E>;

View file

@ -18,97 +18,9 @@ part of dart.collection;
///
/// A more efficient implementation is usually possible by overriding
/// some of the other members as well.
abstract class MapBase<K, V> extends MapMixin<K, V> {
static String mapToString(Map<Object?, Object?> m) {
// Reuses the list in IterableBase for detecting toString cycles.
if (_isToStringVisiting(m)) {
return '{...}';
}
abstract mixin class MapBase<K, V> implements Map<K, V> {
const MapBase();
var result = StringBuffer();
try {
_toStringVisiting.add(m);
result.write('{');
bool first = true;
m.forEach((Object? k, Object? v) {
if (!first) {
result.write(', ');
}
first = false;
result.write(k);
result.write(': ');
result.write(v);
});
result.write('}');
} finally {
assert(identical(_toStringVisiting.last, m));
_toStringVisiting.removeLast();
}
return result.toString();
}
static Object? _id(Object? x) => x;
/// Fills a [Map] with key/value pairs computed from [iterable].
///
/// This method is used by [Map] classes in the named constructor
/// `fromIterable`.
static void _fillMapWithMappedIterable(
Map<Object?, Object?> map,
Iterable<Object?> iterable,
Object? Function(Object? element)? key,
Object? Function(Object? element)? value) {
key ??= _id;
value ??= _id;
if (key == null) throw "!"; // TODO(38493): The `??=` should promote.
if (value == null) throw "!"; // TODO(38493): The `??=` should promote.
for (var element in iterable) {
map[key(element)] = value(element);
}
}
/// Fills a map by associating the [keys] to [values].
///
/// This method is used by [Map] classes in the named constructor
/// `fromIterables`.
static void _fillMapWithIterables(Map<Object?, Object?> map,
Iterable<Object?> keys, Iterable<Object?> values) {
Iterator<Object?> keyIterator = keys.iterator;
Iterator<Object?> valueIterator = values.iterator;
bool hasNextKey = keyIterator.moveNext();
bool hasNextValue = valueIterator.moveNext();
while (hasNextKey && hasNextValue) {
map[keyIterator.current] = valueIterator.current;
hasNextKey = keyIterator.moveNext();
hasNextValue = valueIterator.moveNext();
}
if (hasNextKey || hasNextValue) {
throw ArgumentError("Iterables do not have same length.");
}
}
}
/// Mixin implementing a [Map].
///
/// This mixin has a basic implementation of all but five of the members of
/// [Map].
/// A basic `Map` class can be implemented by mixin in this class and
/// implementing `keys`, `operator[]`, `operator[]=`, `remove` and `clear`.
/// The remaining operations are implemented in terms of these five.
///
/// The `keys` iterable should have efficient [Iterable.length] and
/// [Iterable.contains] operations, and it should catch concurrent modifications
/// of the keys while iterating.
///
/// A more efficient implementation is usually possible by overriding
/// some of the other members as well.
abstract mixin class MapMixin<K, V> implements Map<K, V> {
Iterable<K> get keys;
V? operator [](Object? key);
operator []=(K key, V value);
@ -194,9 +106,99 @@ abstract mixin class MapMixin<K, V> implements Map<K, V> {
bool get isEmpty => keys.isEmpty;
bool get isNotEmpty => keys.isNotEmpty;
Iterable<V> get values => _MapBaseValueIterable<K, V>(this);
String toString() => MapBase.mapToString(this);
String toString() => mapToString(this);
static String mapToString(Map<Object?, Object?> m) {
// Reuses the list in IterableBase for detecting toString cycles.
if (_isToStringVisiting(m)) {
return '{...}';
}
var result = StringBuffer();
try {
_toStringVisiting.add(m);
result.write('{');
bool first = true;
m.forEach((Object? k, Object? v) {
if (!first) {
result.write(', ');
}
first = false;
result.write(k);
result.write(': ');
result.write(v);
});
result.write('}');
} finally {
assert(identical(_toStringVisiting.last, m));
_toStringVisiting.removeLast();
}
return result.toString();
}
/// Fills a [Map] with key/value pairs computed from [iterable].
///
/// This method is used by [Map] classes in the named constructor
/// `fromIterable`.
static void _fillMapWithMappedIterable(
Map<Object?, Object?> map,
Iterable<Object?> iterable,
Object? Function(Object? element)? key,
Object? Function(Object? element)? value) {
key ??= _id;
value ??= _id;
for (var element in iterable) {
map[key(element)] = value(element);
}
}
static Object? _id(Object? x) => x;
/// Fills a map by associating the [keys] to [values].
///
/// This method is used by [Map] classes in the named constructor
/// `fromIterables`.
static void _fillMapWithIterables(Map<Object?, Object?> map,
Iterable<Object?> keys, Iterable<Object?> values) {
Iterator<Object?> keyIterator = keys.iterator;
Iterator<Object?> valueIterator = values.iterator;
bool hasNextKey = keyIterator.moveNext();
bool hasNextValue = valueIterator.moveNext();
while (hasNextKey && hasNextValue) {
map[keyIterator.current] = valueIterator.current;
hasNextKey = keyIterator.moveNext();
hasNextValue = valueIterator.moveNext();
}
if (hasNextKey || hasNextValue) {
throw ArgumentError("Iterables do not have same length.");
}
}
}
/// Mixin implementing a [Map].
///
/// This mixin has a basic implementation of all but five of the members of
/// [Map].
/// A basic `Map` class can be implemented by mixin in this class and
/// implementing `keys`, `operator[]`, `operator[]=`, `remove` and `clear`.
/// The remaining operations are implemented in terms of these five.
///
/// The `keys` iterable should have efficient [Iterable.length] and
/// [Iterable.contains] operations, and it should catch concurrent modifications
/// of the keys while iterating.
///
/// A more efficient implementation is usually possible by overriding
/// some of the other members as well.
// TODO: @Deprecated("Use MapBase instead")
// Longer term: Deprecate `Map` unnamed constructor, to allow using `Map`
// as skeleton class and replace `MapBase`.
typedef MapMixin<K, V> = MapBase<K, V>;
/// Basic implementation of an unmodifiable [Map].
///
/// This class has a basic implementation of all but two of the members of
@ -319,6 +321,8 @@ mixin _UnmodifiableMapMixin<K, V> implements Map<K, V> {
/// Base for delegating map implementations like [UnmodifiableMapView].
class MapView<K, V> implements Map<K, V> {
final Map<K, V> _map;
/// Creates a view which forwards operations to [map].
const MapView(Map<K, V> map) : _map = map;
Map<RK, RV> cast<RK, RV>() => _map.cast<RK, RV>();

View file

@ -32,7 +32,7 @@ part of dart.collection;
/// queue.removeLast();
/// print(queue); // {1, 2, 3}
/// ```
abstract class Queue<E> implements EfficientLengthIterable<E> {
abstract interface class Queue<E> implements EfficientLengthIterable<E> {
/// Creates a queue.
factory Queue() = ListQueue<E>;
@ -262,7 +262,7 @@ class _DoubleLinkedQueueSentinel<E> extends _DoubleLinkedQueueEntry<E> {
/// A [Queue] implementation based on a double-linked list.
///
/// Allows constant time add, remove-at-ends and peek operations.
class DoubleLinkedQueue<E> extends Iterable<E> implements Queue<E> {
final class DoubleLinkedQueue<E> extends Iterable<E> implements Queue<E> {
final _DoubleLinkedQueueSentinel<E> _sentinel =
_DoubleLinkedQueueSentinel<E>();
@ -583,7 +583,7 @@ class _DoubleLinkedQueueIterator<E> implements Iterator<E> {
/// print(queue.isEmpty); // true
/// print(queue); // {}
/// ```
class ListQueue<E> extends ListIterable<E> implements Queue<E> {
final class ListQueue<E> extends ListIterable<E> implements Queue<E> {
static const int _INITIAL_CAPACITY = 8;
List<E?> _table;
int _head;

View file

@ -5,25 +5,26 @@
/// Base implementations of [Set].
part of dart.collection;
/// Mixin implementation of [Set].
/// Base implementation of [Set].
///
/// This class provides a base implementation of a `Set` that depends only
/// on the abstract members: [add], [contains], [lookup], [remove],
/// [iterator], [length] and [toSet].
///
/// Some of the methods assume that `toSet` creates a modifiable set.
/// If using this mixin for an unmodifiable set,
/// If using this base class for an unmodifiable set,
/// where `toSet` should return an unmodifiable set,
/// it's necessary to reimplement
/// [retainAll], [union], [intersection] and [difference].
///
/// Implementations of `Set` using this mixin should consider also implementing
/// Implementations of `Set` using this base should consider also implementing
/// `clear` in constant time. The default implementation works by removing every
/// element.
abstract mixin class SetMixin<E> implements Set<E> {
abstract mixin class SetBase<E> implements Set<E> {
// This class reimplements all of [IterableMixin].
// If/when Dart mixins get more powerful, we should just create a single
// Mixin class from IterableMixin and the new methods of this class.
const SetBase();
bool add(E value);
@ -128,11 +129,10 @@ abstract mixin class SetMixin<E> implements Set<E> {
return result;
}
String toString() => IterableBase.iterableToFullString(this, '{', '}');
String toString() => setToString(this);
// Copied from IterableMixin.
// Copied from Iterable.
// Should be inherited if we had multi-level mixins.
Iterable<E> where(bool f(E element)) => WhereIterable<E>(this, f);
Iterable<T> expand<T>(Iterable<T> f(E element)) =>
@ -278,24 +278,7 @@ abstract mixin class SetMixin<E> implements Set<E> {
throw IndexError.withLength(index, elementIndex,
indexable: this, name: "index");
}
}
/// Base implementation of [Set].
///
/// This class provides a base implementation of a `Set` that depends only
/// on the abstract members: [add], [contains], [lookup], [remove],
/// [iterator], [length] and [toSet].
///
/// Some of the methods assume that `toSet` creates a modifiable set.
/// If using this base class for an unmodifiable set,
/// where `toSet` should return an unmodifiable set,
/// it's necessary to reimplement
/// [retainAll], [union], [intersection] and [difference].
///
/// Implementations of `Set` using this base should consider also implementing
/// `clear` in constant time. The default implementation works by removing every
/// element.
abstract class SetBase<E> with SetMixin<E> {
/// Converts a [Set] to a [String].
///
/// Converts [set] to a string by converting each element to a string (by
@ -308,8 +291,28 @@ abstract class SetBase<E> with SetMixin<E> {
IterableBase.iterableToFullString(set, '{', '}');
}
/// Mixin implementation of [Set].
///
/// This class provides a base implementation of a `Set` that depends only
/// on the abstract members: [add], [contains], [lookup], [remove],
/// [iterator], [length] and [toSet].
///
/// Some of the methods assume that `toSet` creates a modifiable set.
/// If using this mixin for an unmodifiable set,
/// where `toSet` should return an unmodifiable set,
/// it's necessary to reimplement
/// [retainAll], [union], [intersection] and [difference].
///
/// Implementations of `Set` using this mixin should consider also implementing
/// `clear` in constant time. The default implementation works by removing every
/// element.
// TODO: @Deprecated("Use SetBase instead")
// Longer term: Deprecate `Set` unnamed constructor, to allow using `Set`
// as skeleton class and replace `SetBase`.
typedef SetMixin<E> = SetBase<E>;
/// Common internal implementation of some [Set] methods.
abstract class _SetBase<E> with SetMixin<E> {
abstract class _SetBase<E> extends SetBase<E> {
// The following two methods override the ones in SetBase.
// It's possible to be more efficient if we have a way to create an empty
// set of the correct type.

View file

@ -388,7 +388,7 @@ Comparator<K> _defaultCompare<K>() {
/// * [Map], the general interface of key/value pair collections.
/// * [HashMap] is unordered (the order of iteration is not guaranteed).
/// * [LinkedHashMap] iterates in key insertion order.
class SplayTreeMap<K, V> extends _SplayTree<K, _SplayTreeMapNode<K, V>>
final class SplayTreeMap<K, V> extends _SplayTree<K, _SplayTreeMapNode<K, V>>
with MapMixin<K, V> {
_SplayTreeMapNode<K, V>? _root;
@ -946,7 +946,7 @@ class _SplayTreeMapEntryIterator<K, V>
/// * [Set] is a base-class for collection of objects.
/// * [HashSet] the order of the objects in the iterations is not guaranteed.
/// * [LinkedHashSet] objects stored based on insertion order.
class SplayTreeSet<E> extends _SplayTree<E, _SplayTreeSetNode<E>>
final class SplayTreeSet<E> extends _SplayTree<E, _SplayTreeSetNode<E>>
with IterableMixin<E>, SetMixin<E> {
_SplayTreeSetNode<E>? _root;

View file

@ -35,6 +35,7 @@ abstract class Map<K, V> {
/// A `LinkedHashMap` requires the keys to implement compatible
/// `operator==` and `hashCode`.
/// It iterates in key insertion order.
// TODO: @Deprecated("Use literal <K, V>{} instead")
external factory Map();
/// Creates a [LinkedHashMap] with the same keys and values as [other].

View file

@ -42,6 +42,7 @@ abstract class Set<E> extends EfficientLengthIterable<E> {
/// [Object.hashCode] implementation.
///
/// The set is equivalent to one created by `LinkedHashSet<E>()`.
// TODO: @Deprecated("Use literal <E>{} instead")
factory Set() = LinkedHashSet<E>;
/// Creates an empty identity [Set].

View file

@ -85,7 +85,7 @@ const POWERS_OF_TEN = const [
/**
* An [Iterable] of the UTF-16 code units of a [String] in index order.
*/
class CodeUnits extends UnmodifiableListBase<int> {
final class CodeUnits extends UnmodifiableListBase<int> {
/** The string that this is the code units of. */
final String _string;
@ -973,6 +973,12 @@ abstract class HttpStatus {
// `DoubleLinkedQueue.lastEntry` members.
// Still, someone might have based their own double-linked list on this
// class, so we keep it functional.
//
// Should really be marked `base`, but the only use in the platform
// libraries is to implement the interface in a class which used to have
// this publicly visible type.
//
// TODO: @Deprecated("Will be removed in a future release")
class DoubleLinkedQueueEntry<E> {
DoubleLinkedQueueEntry<E>? _previousLink;
DoubleLinkedQueueEntry<E>? _nextLink;

View file

@ -222,7 +222,7 @@ abstract class ListIterable<E> extends EfficientLengthIterable<E> {
}
}
class SubListIterable<E> extends ListIterable<E> {
base class SubListIterable<E> extends ListIterable<E> {
final Iterable<E> _iterable; // Has efficient length and elementAt.
final int _start;
/** If null, represents the length of the iterable. */
@ -405,7 +405,7 @@ class MappedIterator<S, T> implements Iterator<T> {
*
* Expects efficient `length` and `elementAt` on the source iterable.
*/
class MappedListIterable<S, T> extends ListIterable<T> {
base class MappedListIterable<S, T> extends ListIterable<T> {
final Iterable<S> _source;
final _Transformation<S, T> _f;

View file

@ -208,7 +208,7 @@ abstract class FixedLengthListBase<E> = ListBase<E>
abstract class UnmodifiableListBase<E> = ListBase<E>
with UnmodifiableListMixin<E>;
class _ListIndicesIterable extends ListIterable<int> {
final class _ListIndicesIterable extends ListIterable<int> {
List _backedList;
_ListIndicesIterable(this._backedList);
@ -247,7 +247,7 @@ class ListMapView<E> extends UnmodifiableMapBase<int, E> {
}
}
class ReversedListIterable<E> extends ListIterable<E> {
final class ReversedListIterable<E> extends ListIterable<E> {
Iterable<E> _source;
ReversedListIterable(this._source);

View file

@ -16,9 +16,14 @@ checkImplements(object, String name) {
ClassMirror cls = reflect(object).type;
checkClassMirrorMethods(cls);
// The VM implements List via a mixin, so check for that.
// The VM implements List through an intermediate abstract class.
if (cls.superinterfaces.isEmpty && object is List) {
cls = cls.superclass!.superclass!.mixin;
// THIS TEST ASSUMES A SPECIFIC TYPE HIERARCHY IN PLATFORM TYPES.
// THE TEST IS FRAGILE TO UNRELATED CHANGES.
// Currently assumes the platform `[]` has a type hierarchy of
// `_GrowableList` extends `ListBase`, `ListBase` implements `List`
cls = cls.superclass!;
}
// The VM implements String through an intermediate abstract

View file

@ -18,9 +18,9 @@ checkImplements(object, String name) {
ClassMirror cls = reflect(object).type;
checkClassMirrorMethods(cls);
// The VM implements List via a mixin, so check for that.
// The VM implements List through an intermediate abstract class.
if (cls.superinterfaces.isEmpty && object is List) {
cls = cls.superclass.superclass.mixin;
cls = cls.superclass;
}
// The VM implements String through an intermediate abstract