| 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>();
|
|
|