[dart2js] Migrate universe/world_impact.dart
Change-Id: Ice05b930f8a9124ad97752f0365c4f4ad71e1c23
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/249381
Commit-Queue: Stephen Adams <sra@google.com>
Reviewed-by: Nate Biggs <natebiggs@google.com>
diff --git a/pkg/compiler/lib/src/universe/world_impact.dart b/pkg/compiler/lib/src/universe/world_impact.dart
index a4a4c43..0d91e03 100644
--- a/pkg/compiler/lib/src/universe/world_impact.dart
+++ b/pkg/compiler/lib/src/universe/world_impact.dart
@@ -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.
-// @dart = 2.10
-
library dart2js.universe.world_impact;
import '../elements/entities.dart';
@@ -24,7 +22,9 @@
class WorldImpact {
const WorldImpact();
- MemberEntity get member => null;
+ /// [member] may be `null` when the impact is for something that is not a
+ /// member, e.g. a constant, or external or native dependencies.
+ MemberEntity? get member => null;
Iterable<DynamicUse> get dynamicUses => const [];
@@ -39,16 +39,17 @@
Iterable<ConstantUse> get constantUses => const [];
- void _forEach<U>(Iterable<U> uses, void Function(MemberEntity, U) visitUse) =>
+ void _forEach<U>(
+ Iterable<U> uses, void Function(MemberEntity?, U) visitUse) =>
uses.forEach((use) => visitUse(member, use));
- void forEachDynamicUse(void Function(MemberEntity, DynamicUse) visitUse) =>
+ void forEachDynamicUse(void Function(MemberEntity?, DynamicUse) visitUse) =>
_forEach(dynamicUses, visitUse);
- void forEachStaticUse(void Function(MemberEntity, StaticUse) visitUse) =>
+ void forEachStaticUse(void Function(MemberEntity?, StaticUse) visitUse) =>
_forEach(staticUses, visitUse);
- void forEachTypeUse(void Function(MemberEntity, TypeUse) visitUse) =>
+ void forEachTypeUse(void Function(MemberEntity?, TypeUse) visitUse) =>
_forEach(typeUses, visitUse);
- void forEachConstantUse(void Function(MemberEntity, ConstantUse) visitUse) =>
+ void forEachConstantUse(void Function(MemberEntity?, ConstantUse) visitUse) =>
_forEach(constantUses, visitUse);
bool get isEmpty => true;
@@ -89,14 +90,14 @@
class WorldImpactBuilderImpl extends WorldImpactBuilder {
/// The [MemberEntity] associated with this set of impacts. Maybe null.
@override
- final MemberEntity member;
+ final MemberEntity? member;
// TODO(johnniwinther): Do we benefit from lazy initialization of the
// [Setlet]s?
- Set<DynamicUse> _dynamicUses;
- Set<StaticUse> _staticUses;
- Set<TypeUse> _typeUses;
- Set<ConstantUse> _constantUses;
+ Set<DynamicUse>? _dynamicUses;
+ Set<StaticUse>? _staticUses;
+ Set<TypeUse>? _typeUses;
+ Set<ConstantUse>? _constantUses;
WorldImpactBuilderImpl([this.member]);
@@ -122,9 +123,8 @@
@override
void registerDynamicUse(DynamicUse dynamicUse) {
- assert(dynamicUse != null);
- _dynamicUses ??= Setlet();
- _dynamicUses.add(dynamicUse);
+ assert((dynamicUse as dynamic) != null); // TODO(48820): Remove when sound.
+ (_dynamicUses ??= Setlet()).add(dynamicUse);
}
@override
@@ -134,9 +134,8 @@
@override
void registerTypeUse(TypeUse typeUse) {
- assert(typeUse != null);
- _typeUses ??= Setlet();
- _typeUses.add(typeUse);
+ assert((typeUse as dynamic) != null); // TODO(48820): Remove when sound.
+ (_typeUses ??= Setlet()).add(typeUse);
}
@override
@@ -146,9 +145,8 @@
@override
void registerStaticUse(StaticUse staticUse) {
- assert(staticUse != null);
- _staticUses ??= Setlet();
- _staticUses.add(staticUse);
+ assert((staticUse as dynamic) != null); // TODO(48820): Remove when sound.
+ (_staticUses ??= Setlet()).add(staticUse);
}
@override
@@ -158,9 +156,8 @@
@override
void registerConstantUse(ConstantUse constantUse) {
- assert(constantUse != null);
- _constantUses ??= Setlet();
- _constantUses.add(constantUse);
+ assert((constantUse as dynamic) != null); // TODO(48820): Remove when sound.
+ (_constantUses ??= Setlet()).add(constantUse);
}
@override
@@ -174,15 +171,15 @@
class TransformedWorldImpact extends WorldImpactBuilder {
final WorldImpact worldImpact;
- Setlet<StaticUse> _staticUses;
- Setlet<TypeUse> _typeUses;
- Setlet<DynamicUse> _dynamicUses;
- Setlet<ConstantUse> _constantUses;
+ Setlet<StaticUse>? _staticUses;
+ Setlet<TypeUse>? _typeUses;
+ Setlet<DynamicUse>? _dynamicUses;
+ Setlet<ConstantUse>? _constantUses;
TransformedWorldImpact(this.worldImpact);
@override
- MemberEntity get member => worldImpact.member;
+ MemberEntity? get member => worldImpact.member;
@override
bool get isEmpty {
@@ -201,13 +198,13 @@
@override
void registerDynamicUse(DynamicUse dynamicUse) {
_dynamicUses ??= Setlet.of(worldImpact.dynamicUses);
- _dynamicUses.add(dynamicUse);
+ _dynamicUses!.add(dynamicUse);
}
@override
void registerTypeUse(TypeUse typeUse) {
_typeUses ??= Setlet.of(worldImpact.typeUses);
- _typeUses.add(typeUse);
+ _typeUses!.add(typeUse);
}
@override
@@ -218,7 +215,7 @@
@override
void registerStaticUse(StaticUse staticUse) {
_staticUses ??= Setlet.of(worldImpact.staticUses);
- _staticUses.add(staticUse);
+ _staticUses!.add(staticUse);
}
@override
@@ -234,7 +231,7 @@
@override
void registerConstantUse(ConstantUse constantUse) {
_constantUses ??= Setlet.of(worldImpact.constantUses);
- _constantUses.add(constantUse);
+ _constantUses!.add(constantUse);
}
@override