Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(655)

Unified Diff: pkg/compiler/lib/src/universe/member_usage.dart

Issue 2913713004: Add model test of CodegenWorldBuilder to compile_from_dill_test (Closed)
Patch Set: So much patch set for so small a typo. Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/compiler/lib/src/universe/member_usage.dart
diff --git a/pkg/compiler/lib/src/universe/member_usage.dart b/pkg/compiler/lib/src/universe/member_usage.dart
index 08b37c96f5e2f2e76ffc2d5eb4a6ec66521dff7d..246a1b0f92a4e374070b2b322aa3473967f68af0 100644
--- a/pkg/compiler/lib/src/universe/member_usage.dart
+++ b/pkg/compiler/lib/src/universe/member_usage.dart
@@ -4,10 +4,10 @@
part of world_builder;
-abstract class _AbstractUsage<T> {
+abstract class AbstractUsage<T> {
final EnumSet<T> _pendingUse = new EnumSet<T>();
- _AbstractUsage() {
+ AbstractUsage() {
_pendingUse.addAll(_originalUse);
}
@@ -21,10 +21,17 @@ abstract class _AbstractUsage<T> {
/// `true` if the [appliedUse] is non-empty.
bool get hasUse => appliedUse.isNotEmpty;
+
+ /// Returns `true` if [other] has the same original and pending usage as this.
+ bool hasSameUsage(AbstractUsage<T> other) {
+ if (identical(this, other)) return true;
+ return _originalUse.value == other._originalUse.value &&
+ _pendingUse.value == other._pendingUse.value;
+ }
}
/// Registry for the observed use of a member [entity] in the open world.
-abstract class _MemberUsage extends _AbstractUsage<MemberUse> {
+abstract class _MemberUsage extends AbstractUsage<MemberUse> {
// TODO(johnniwinther): Change [Entity] to [MemberEntity].
final Entity entity;
@@ -95,7 +102,7 @@ abstract class _MemberUsage extends _AbstractUsage<MemberUse> {
return entity == other.entity;
}
- String toString() => entity.toString();
+ String toString() => '$entity:${appliedUse.iterable(MemberUse.values)}';
}
class _FieldUsage extends _MemberUsage {
@@ -287,7 +294,7 @@ typedef void MemberUsedCallback(MemberEntity member, EnumSet<MemberUse> useSet);
/// Registry for the observed use of a class [entity] in the open world.
// TODO(johnniwinther): Merge this with [InstantiationInfo].
-class _ClassUsage extends _AbstractUsage<ClassUse> {
+class _ClassUsage extends AbstractUsage<ClassUse> {
bool isInstantiated = false;
bool isImplemented = false;
@@ -314,7 +321,7 @@ class _ClassUsage extends _AbstractUsage<ClassUse> {
@override
EnumSet<ClassUse> get _originalUse => ClassUses.ALL;
- String toString() => cls.toString();
+ String toString() => '$cls:${appliedUse.iterable(ClassUse.values)}';
}
/// Enum class for the possible kind of use of [ClassEntity] objects.
@@ -333,7 +340,7 @@ class ClassUses {
typedef void ClassUsedCallback(ClassEntity cls, EnumSet<ClassUse> useSet);
// TODO(johnniwinther): Merge this with [_MemberUsage].
-abstract class _StaticMemberUsage extends _AbstractUsage<MemberUse> {
+abstract class _StaticMemberUsage extends AbstractUsage<MemberUse> {
final Entity entity;
bool hasNormalUse = false;
@@ -354,7 +361,7 @@ abstract class _StaticMemberUsage extends _AbstractUsage<MemberUse> {
@override
EnumSet<MemberUse> get _originalUse => MemberUses.NORMAL_ONLY;
- String toString() => entity.toString();
+ String toString() => '$entity:${appliedUse.iterable(MemberUse.values)}';
}
class _GeneralStaticMemberUsage extends _StaticMemberUsage {
« no previous file with comments | « pkg/compiler/lib/src/universe/codegen_world_builder.dart ('k') | pkg/compiler/lib/src/universe/resolution_world_builder.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698