From 6fae002f59c547bc03c56142a57ca620fbbacf1d Mon Sep 17 00:00:00 2001 From: Martin Kustermann Date: Thu, 4 Jul 2024 10:32:30 +0000 Subject: [PATCH] [sdk] Use `{List,Set}.of()` instead of `{List,Set}.from()` The `{List,Set}.from` take an `Iterable` and perform a `is Iterable` type check inside. The `{List,Set}.of` in comparison take a `Iterable` and do not perform a type check. TEST=ci CoreLibraryReviewExempt: Optimizes implementation, no API changes. Change-Id: I99f138bfbdedac15752b01bfdf0bbec258bb9107 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/374561 Reviewed-by: Slava Egorov Commit-Queue: Martin Kustermann --- .../no_outline_change_22.yaml.world.1.expect | 2 +- .../no_outline_change_22.yaml.world.2.expect | 2 +- ...ccess_order.dart.strong.transformed.expect | 2 +- ...che_lookups.dart.strong.transformed.expect | 2 +- ...lement_once.dart.strong.transformed.expect | 2 +- ...tive_length.dart.strong.transformed.expect | 2 +- .../_internal/vm/lib/typed_data_patch.dart | 20 +++++++++---------- sdk/lib/_internal/wasm/lib/js_array.dart | 2 +- .../_internal/wasm/lib/js_typed_array.dart | 8 ++++---- sdk/lib/_internal/wasm/lib/list.dart | 2 +- sdk/lib/_internal/wasm/lib/typed_data.dart | 8 ++++---- sdk/lib/collection/list.dart | 2 +- 12 files changed, 27 insertions(+), 27 deletions(-) diff --git a/pkg/front_end/testcases/incremental/no_outline_change_22.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_22.yaml.world.1.expect index 8b4cdc14aeb..1ca8a6f1c9c 100644 --- a/pkg/front_end/testcases/incremental/no_outline_change_22.yaml.world.1.expect +++ b/pkg/front_end/testcases/incremental/no_outline_change_22.yaml.world.1.expect @@ -305,7 +305,7 @@ library from "org-dartlang-test:///main.dart" as main { dart.core::int listLength = this.{dart.core::List::length}{dart.core::int}; end == null ?{dart.core::int?} end = listLength : null; dart.core::RangeError::checkValidRange(start, end{dart.core::int}, listLength); - return dart.core::List::from(this.{dart.collection::ListBase::getRange}(start, end{dart.core::int}){(dart.core::int, dart.core::int) → dart.core::Iterable}); + return dart.core::List::of(this.{dart.collection::ListBase::getRange}(start, end{dart.core::int}){(dart.core::int, dart.core::int) → dart.core::Iterable}); } method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ getRange(dart.core::int start, dart.core::int end) → dart.core::Iterable { dart.core::RangeError::checkValidRange(start, end, this.{dart.core::List::length}{dart.core::int}); diff --git a/pkg/front_end/testcases/incremental/no_outline_change_22.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_22.yaml.world.2.expect index 8b4cdc14aeb..1ca8a6f1c9c 100644 --- a/pkg/front_end/testcases/incremental/no_outline_change_22.yaml.world.2.expect +++ b/pkg/front_end/testcases/incremental/no_outline_change_22.yaml.world.2.expect @@ -305,7 +305,7 @@ library from "org-dartlang-test:///main.dart" as main { dart.core::int listLength = this.{dart.core::List::length}{dart.core::int}; end == null ?{dart.core::int?} end = listLength : null; dart.core::RangeError::checkValidRange(start, end{dart.core::int}, listLength); - return dart.core::List::from(this.{dart.collection::ListBase::getRange}(start, end{dart.core::int}){(dart.core::int, dart.core::int) → dart.core::Iterable}); + return dart.core::List::of(this.{dart.collection::ListBase::getRange}(start, end{dart.core::int}){(dart.core::int, dart.core::int) → dart.core::Iterable}); } method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ getRange(dart.core::int start, dart.core::int end) → dart.core::Iterable { dart.core::RangeError::checkValidRange(start, end, this.{dart.core::List::length}{dart.core::int}); diff --git a/pkg/front_end/testcases/patterns/access_order.dart.strong.transformed.expect b/pkg/front_end/testcases/patterns/access_order.dart.strong.transformed.expect index 487e7874013..cf43fdc33c4 100644 --- a/pkg/front_end/testcases/patterns/access_order.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/patterns/access_order.dart.strong.transformed.expect @@ -309,7 +309,7 @@ abstract class _MyList&Object&ListMixin exten core::int listLength = this.{core::List::length}{core::int}; end == null ?{core::int?} end = listLength : null; core::RangeError::checkValidRange(start, end{core::int}, listLength); - return core::List::from(this.{col::ListBase::getRange}(start, end{core::int}){(core::int, core::int) → core::Iterable}); + return core::List::of(this.{col::ListBase::getRange}(start, end{core::int}){(core::int, core::int) → core::Iterable}); } method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ getRange(core::int start, core::int end) → core::Iterable { core::RangeError::checkValidRange(start, end, this.{core::List::length}{core::int}); diff --git a/pkg/front_end/testcases/patterns/cache_lookups.dart.strong.transformed.expect b/pkg/front_end/testcases/patterns/cache_lookups.dart.strong.transformed.expect index 7a76db64d05..930ae6350c9 100644 --- a/pkg/front_end/testcases/patterns/cache_lookups.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/patterns/cache_lookups.dart.strong.transformed.expect @@ -376,7 +376,7 @@ abstract class _CustomList&Object&ListMixin e core::int listLength = this.{core::List::length}{core::int}; end == null ?{core::int?} end = listLength : null; core::RangeError::checkValidRange(start, end{core::int}, listLength); - return core::List::from(this.{col::ListBase::getRange}(start, end{core::int}){(core::int, core::int) → core::Iterable}); + return core::List::of(this.{col::ListBase::getRange}(start, end{core::int}){(core::int, core::int) → core::Iterable}); } method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ getRange(core::int start, core::int end) → core::Iterable { core::RangeError::checkValidRange(start, end, this.{core::List::length}{core::int}); diff --git a/pkg/front_end/testcases/patterns/matching_and_capturing_accesses_list_element_once.dart.strong.transformed.expect b/pkg/front_end/testcases/patterns/matching_and_capturing_accesses_list_element_once.dart.strong.transformed.expect index c1fe7d44953..e5c9152984c 100644 --- a/pkg/front_end/testcases/patterns/matching_and_capturing_accesses_list_element_once.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/patterns/matching_and_capturing_accesses_list_element_once.dart.strong.transformed.expect @@ -309,7 +309,7 @@ abstract class _A&Object&ListMixin extends core::Object implements col::ListBase core::int listLength = this.{core::List::length}{core::int}; end == null ?{core::int?} end = listLength : null; core::RangeError::checkValidRange(start, end{core::int}, listLength); - return core::List::from(this.{col::ListBase::getRange}(start, end{core::int}){(core::int, core::int) → core::Iterable}); + return core::List::of(this.{col::ListBase::getRange}(start, end{core::int}){(core::int, core::int) → core::Iterable}); } method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ getRange(core::int start, core::int end) → core::Iterable { core::RangeError::checkValidRange(start, end, this.{core::List::length}{core::int}); diff --git a/pkg/front_end/testcases/patterns/negative_length.dart.strong.transformed.expect b/pkg/front_end/testcases/patterns/negative_length.dart.strong.transformed.expect index 48f2253e626..4f70f504831 100644 --- a/pkg/front_end/testcases/patterns/negative_length.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/patterns/negative_length.dart.strong.transformed.expect @@ -309,7 +309,7 @@ abstract class _NegativeLengthList&Object&ListMixin(this.{col::ListBase::getRange}(start, end{core::int}){(core::int, core::int) → core::Iterable}); + return core::List::of(this.{col::ListBase::getRange}(start, end{core::int}){(core::int, core::int) → core::Iterable}); } method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ getRange(core::int start, core::int end) → core::Iterable { core::RangeError::checkValidRange(start, end, this.{core::List::length}{core::int}); diff --git a/sdk/lib/_internal/vm/lib/typed_data_patch.dart b/sdk/lib/_internal/vm/lib/typed_data_patch.dart index e6f886aacdc..6ef07a3e4cc 100644 --- a/sdk/lib/_internal/vm/lib/typed_data_patch.dart +++ b/sdk/lib/_internal/vm/lib/typed_data_patch.dart @@ -290,11 +290,11 @@ base mixin _IntListMixin on _TypedListBase implements TypedDataList { Iterator get iterator => new _TypedListIterator(this); List toList({bool growable = true}) { - return new List.from(this, growable: growable); + return new List.of(this, growable: growable); } Set toSet() { - return new Set.from(this); + return new Set.of(this); } void forEach(void f(int element)) { @@ -625,11 +625,11 @@ base mixin _DoubleListMixin on _TypedListBase implements TypedDataList { Iterator get iterator => new _TypedListIterator(this); List toList({bool growable = true}) { - return new List.from(this, growable: growable); + return new List.of(this, growable: growable); } Set toSet() { - return new Set.from(this); + return new Set.of(this); } void forEach(void f(double element)) { @@ -1012,11 +1012,11 @@ base mixin _Float32x4ListMixin on _TypedListBase Iterator get iterator => new _TypedListIterator(this); List toList({bool growable = true}) { - return new List.from(this, growable: growable); + return new List.of(this, growable: growable); } Set toSet() { - return new Set.from(this); + return new Set.of(this); } void forEach(void f(Float32x4 element)) { @@ -1350,11 +1350,11 @@ base mixin _Int32x4ListMixin on _TypedListBase Iterator get iterator => new _TypedListIterator(this); List toList({bool growable = true}) { - return new List.from(this, growable: growable); + return new List.of(this, growable: growable); } Set toSet() { - return new Set.from(this); + return new Set.of(this); } void forEach(void f(Int32x4 element)) { @@ -1689,11 +1689,11 @@ base mixin _Float64x2ListMixin on _TypedListBase Iterator get iterator => new _TypedListIterator(this); List toList({bool growable = true}) { - return new List.from(this, growable: growable); + return new List.of(this, growable: growable); } Set toSet() { - return new Set.from(this); + return new Set.of(this); } void forEach(void f(Float64x2 element)) { diff --git a/sdk/lib/_internal/wasm/lib/js_array.dart b/sdk/lib/_internal/wasm/lib/js_array.dart index 0ac7943988b..f1d744f9b7d 100644 --- a/sdk/lib/_internal/wasm/lib/js_array.dart +++ b/sdk/lib/_internal/wasm/lib/js_array.dart @@ -446,7 +446,7 @@ class JSArrayImpl implements List { List.of(this, growable: growable); @override - Set toSet() => Set.from(this); + Set toSet() => Set.of(this); @override Iterator get iterator => JSArrayImplIterator(this); diff --git a/sdk/lib/_internal/wasm/lib/js_typed_array.dart b/sdk/lib/_internal/wasm/lib/js_typed_array.dart index f999ee1d2b2..15988024e63 100644 --- a/sdk/lib/_internal/wasm/lib/js_typed_array.dart +++ b/sdk/lib/_internal/wasm/lib/js_typed_array.dart @@ -473,11 +473,11 @@ mixin _IntListMixin implements List { } List toList({bool growable = true}) { - return List.from(this, growable: growable); + return List.of(this, growable: growable); } Set toSet() { - return Set.from(this); + return Set.of(this); } void forEach(void f(int element)) { @@ -1687,11 +1687,11 @@ mixin _DoubleListMixin implements List { } List toList({bool growable = true}) { - return List.from(this, growable: growable); + return List.of(this, growable: growable); } Set toSet() { - return Set.from(this); + return Set.of(this); } void forEach(void f(double element)) { diff --git a/sdk/lib/_internal/wasm/lib/list.dart b/sdk/lib/_internal/wasm/lib/list.dart index 20f86f7dafc..53ffaf91b6e 100644 --- a/sdk/lib/_internal/wasm/lib/list.dart +++ b/sdk/lib/_internal/wasm/lib/list.dart @@ -51,7 +51,7 @@ abstract class WasmListBase extends ListBase { } @pragma("wasm:prefer-inline") - List toList({bool growable = true}) => List.from(this, growable: growable); + List toList({bool growable = true}) => List.of(this, growable: growable); } @pragma("wasm:entry-point") diff --git a/sdk/lib/_internal/wasm/lib/typed_data.dart b/sdk/lib/_internal/wasm/lib/typed_data.dart index 83c5b237f29..400ec6c0837 100644 --- a/sdk/lib/_internal/wasm/lib/typed_data.dart +++ b/sdk/lib/_internal/wasm/lib/typed_data.dart @@ -1529,11 +1529,11 @@ mixin _IntListMixin implements TypedDataList { Iterator get iterator => _TypedListIterator(this); List toList({bool growable = true}) { - return List.from(this, growable: growable); + return List.of(this, growable: growable); } Set toSet() { - return Set.from(this); + return Set.of(this); } void forEach(void f(int element)) { @@ -1923,11 +1923,11 @@ mixin _DoubleListMixin implements TypedDataList { Iterator get iterator => _TypedListIterator(this); List toList({bool growable = true}) { - return List.from(this, growable: growable); + return List.of(this, growable: growable); } Set toSet() { - return Set.from(this); + return Set.of(this); } void forEach(void f(double element)) { diff --git a/sdk/lib/collection/list.dart b/sdk/lib/collection/list.dart index 61cc4e7b727..1c3af1b02a7 100644 --- a/sdk/lib/collection/list.dart +++ b/sdk/lib/collection/list.dart @@ -349,7 +349,7 @@ abstract mixin class ListBase implements List { end ??= listLength; RangeError.checkValidRange(start, end, listLength); - return List.from(getRange(start, end)); + return List.of(getRange(start, end)); } Iterable getRange(int start, int end) {