Index: sdk/lib/_internal/compiler/implementation/world.dart |
diff --git a/sdk/lib/_internal/compiler/implementation/world.dart b/sdk/lib/_internal/compiler/implementation/world.dart |
index 271629bf64132666df45a3b3aba08074886ca86e..6fdf57f51eaccd7f0f0d4093631a4615b0d0d0f5 100644 |
--- a/sdk/lib/_internal/compiler/implementation/world.dart |
+++ b/sdk/lib/_internal/compiler/implementation/world.dart |
@@ -60,7 +60,6 @@ class World { |
// (3) subclasses of (2) and (3). |
void potentiallyAddForRti(ClassElement cls) { |
- if (cls.typeVariables.isEmpty) return; |
if (classesNeedingRti.contains(cls)) return; |
classesNeedingRti.add(cls); |
@@ -85,6 +84,9 @@ class World { |
if (!itf.isRaw) { |
potentiallyAddForRti(itf.element); |
} |
+ } else if (type is TypeVariableType) { |
+ TypeVariableElement variable = type.element; |
+ potentiallyAddForRti(variable.enclosingElement); |
} |
}); |
} |