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

Unified Diff: pkg/compiler/lib/src/js_backend/mirrors_data.dart

Issue 2908153003: It's alive! (Closed)
Patch Set: 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/js_backend/mirrors_data.dart
diff --git a/pkg/compiler/lib/src/js_backend/mirrors_data.dart b/pkg/compiler/lib/src/js_backend/mirrors_data.dart
index a3096128b408e1187399b94d1822897ed30b0e85..1289bc20b9d0038a2c80752118ea4db36bb89789 100644
--- a/pkg/compiler/lib/src/js_backend/mirrors_data.dart
+++ b/pkg/compiler/lib/src/js_backend/mirrors_data.dart
@@ -393,7 +393,8 @@ class MirrorsDataImpl implements MirrorsData, MirrorsDataBuilder {
} else if (element.isTypedef) {
return isTypedefAccessibleByReflection(element);
} else {
- return isMemberAccessibleByReflection(element);
+ MemberElement member = element;
+ return isMemberAccessibleByReflection(member);
}
}
@@ -417,7 +418,7 @@ class MirrorsDataImpl implements MirrorsData, MirrorsDataBuilder {
}
}
- bool isMemberAccessibleByReflection(MemberElement element) {
+ bool isMemberAccessibleByReflection(MemberEntity element) {
return _membersNeededForReflection.contains(element);
}
@@ -513,6 +514,14 @@ class MirrorsDataImpl implements MirrorsData, MirrorsDataBuilder {
return false;
}
+ void createImmutableSets() {
+ _classesNeededForReflection = const ImmutableEmptySet<ClassElement>();
+ _typedefsNeededForReflection = const ImmutableEmptySet<TypedefElement>();
+ _membersNeededForReflection = const ImmutableEmptySet<MemberElement>();
+ _closuresNeededForReflection =
+ const ImmutableEmptySet<LocalFunctionElement>();
+ }
+
/**
* Visits all classes and computes whether its members are needed for
* reflection.
@@ -529,11 +538,7 @@ class MirrorsDataImpl implements MirrorsData, MirrorsDataBuilder {
ResolutionWorldBuilder worldBuilder, ClosedWorld closedWorld) {
if (_membersNeededForReflection != null) return;
if (closedWorld.commonElements.mirrorsLibrary == null) {
- _classesNeededForReflection = const ImmutableEmptySet<ClassElement>();
- _typedefsNeededForReflection = const ImmutableEmptySet<TypedefElement>();
- _membersNeededForReflection = const ImmutableEmptySet<MemberElement>();
- _closuresNeededForReflection =
- const ImmutableEmptySet<LocalFunctionElement>();
+ createImmutableSets();
return;
}
_classesNeededForReflection = new Set<ClassElement>();

Powered by Google App Engine
This is Rietveld 408576698