Index: sdk/lib/_internal/compiler/implementation/enqueue.dart |
diff --git a/sdk/lib/_internal/compiler/implementation/enqueue.dart b/sdk/lib/_internal/compiler/implementation/enqueue.dart |
index 68739c68277f4a3803c7a29127cdfda68392cd64..e2962589062e05d047deebfa91a520c9adc3ad04 100644 |
--- a/sdk/lib/_internal/compiler/implementation/enqueue.dart |
+++ b/sdk/lib/_internal/compiler/implementation/enqueue.dart |
@@ -314,11 +314,13 @@ abstract class Enqueuer { |
/// needed for reflection. |
void enqueueReflectiveMember(Element element, bool enclosingWasIncluded) { |
if (shouldIncludeElementDueToMirrors(element, |
- includedEnclosing: enclosingWasIncluded) |
- // Do not enqueue typedefs. |
- && !element.impliesType) { |
+ includedEnclosing: enclosingWasIncluded)) { |
logEnqueueReflectiveAction(element); |
- if (Elements.isStaticOrTopLevel(element)) { |
+ if (element.isTypedef) { |
+ TypedefElement typedef = element; |
+ typedef.ensureResolved(compiler); |
+ compiler.world.allTypedefs.add(element); |
+ } else if (Elements.isStaticOrTopLevel(element)) { |
registerStaticUse(element.declaration); |
} else if (element.isInstanceMember) { |
// We need to enqueue all members matching this one in subclasses, as |