| 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 65222f7f70223453c76f2c583d0d589e19be4dca..413b5dde507a31a1c43f177bcd129573b2d5f555 100644
|
| --- a/pkg/compiler/lib/src/js_backend/mirrors_data.dart
|
| +++ b/pkg/compiler/lib/src/js_backend/mirrors_data.dart
|
| @@ -100,7 +100,7 @@ abstract class MirrorsData {
|
| /// checked by the runtime system to throw an exception if an element is
|
| /// accessed (invoked, get, set) that is not accessible for the reflective
|
| /// system.
|
| - bool isTypedefAccessibleByReflection(TypedefElement element);
|
| + bool isTypedefAccessibleByReflection(covariant TypedefEntity element);
|
|
|
| /// Returns `true` if the class [element] needs reflection information at
|
| /// runtime.
|
| @@ -126,7 +126,7 @@ abstract class MirrorsData {
|
|
|
| bool retainMetadataOfLibrary(covariant LibraryEntity element,
|
| {bool addForEmission: true});
|
| - bool retainMetadataOfTypedef(TypedefElement element);
|
| + bool retainMetadataOfTypedef(covariant TypedefEntity element);
|
| bool retainMetadataOfClass(covariant ClassEntity element);
|
| bool retainMetadataOfMember(covariant MemberEntity element);
|
| bool retainMetadataOfParameter(ParameterElement element);
|
| @@ -193,8 +193,8 @@ class MirrorsDataImpl implements MirrorsData, MirrorsDataBuilder {
|
| final Set<ClassEntity> classesInMirrorsUsedTargets = new Set<ClassEntity>();
|
| final Set<LibraryEntity> librariesInMirrorsUsedTargets =
|
| new Set<LibraryEntity>();
|
| - final Set<TypedefElement> _typedefsInMirrorsUsedTargets =
|
| - new Set<TypedefElement>();
|
| + final Set<TypedefEntity> _typedefsInMirrorsUsedTargets =
|
| + new Set<TypedefEntity>();
|
|
|
| /// List of annotations provided by user that indicate that the annotated
|
| /// element must be retained.
|
| @@ -345,7 +345,7 @@ class MirrorsDataImpl implements MirrorsData, MirrorsDataBuilder {
|
| } else if (target.isClass) {
|
| classesInMirrorsUsedTargets.add(target as ClassEntity);
|
| } else if (target.isTypedef) {
|
| - _typedefsInMirrorsUsedTargets.add(target);
|
| + _typedefsInMirrorsUsedTargets.add(target as TypedefEntity);
|
| } else if (target.isLibrary) {
|
| librariesInMirrorsUsedTargets.add(target as LibraryEntity);
|
| } else if (target != null) {
|
| @@ -657,8 +657,11 @@ class MirrorsDataImpl implements MirrorsData, MirrorsDataBuilder {
|
| _classesNeededForReflection.add(cls);
|
| }
|
| // Add typedefs.
|
| - _typedefsNeededForReflection.addAll(
|
| - closedWorld.allTypedefs.where(isTypedefReferencedFromMirrorSystem));
|
| + for (TypedefElement element in closedWorld.allTypedefs) {
|
| + if (isTypedefReferencedFromMirrorSystem(element)) {
|
| + _typedefsNeededForReflection.add(element);
|
| + }
|
| + }
|
| // Register all symbols of reflectable elements
|
| for (ClassElement element in _classesNeededForReflection) {
|
| symbolsUsed.add(element.name);
|
|
|