Index: sdk/lib/_internal/compiler/implementation/world.dart |
=================================================================== |
--- sdk/lib/_internal/compiler/implementation/world.dart (revision 19293) |
+++ sdk/lib/_internal/compiler/implementation/world.dart (working copy) |
@@ -51,7 +51,11 @@ |
} |
} |
- compiler.resolverWorld.instantiatedClasses.forEach(addSubtypes); |
+ // Use the [:seenClasses:] set to include non-instantiated |
+ // classes: if the superclass of these classes require RTI, then |
+ // they also need RTI, so that a constructor passes the type |
+ // variables to the super constructor. |
+ compiler.enqueuer.resolution.seenClasses.forEach(addSubtypes); |
// Find the classes that need runtime type information. Such |
// classes are: |
@@ -64,6 +68,7 @@ |
if (classesNeedingRti.contains(cls)) return; |
classesNeedingRti.add(cls); |
+ // TODO(ngeoffray): This should use subclasses, not subtypes. |
Set<ClassElement> classes = subtypes[cls]; |
if (classes != null) { |
classes.forEach((ClassElement sub) { |