| Index: pkg/kernel/lib/class_hierarchy.dart | 
| diff --git a/pkg/kernel/lib/class_hierarchy.dart b/pkg/kernel/lib/class_hierarchy.dart | 
| index c5381277567803b6b1814e11d432f96a5d10a6fa..6771cc4560220bc7865d7eaea80b2189e215927f 100644 | 
| --- a/pkg/kernel/lib/class_hierarchy.dart | 
| +++ b/pkg/kernel/lib/class_hierarchy.dart | 
| @@ -232,6 +232,15 @@ class ClassHierarchy { | 
| } | 
| } | 
|  | 
| +  /// True if the program contains another class that is a subtype of given one. | 
| +  bool hasProperSubtypes(Class class_) { | 
| +    var info = _infoFor[class_]; | 
| +    var subtypes = info.subtypeIntervalList; | 
| +    return !(subtypes.length == 2 && | 
| +        subtypes[0] == info.topDownIndex && | 
| +        subtypes[1] == info.topDownIndex + 1); | 
| +  } | 
| + | 
| ClassHierarchy._internal(Program program, int numberOfClasses) | 
| : classes = new List<Class>(numberOfClasses) { | 
| // Build the class ordering based on a topological sort. | 
|  |