| Index: pkg/compiler/lib/src/js_emitter/program_builder/collector.dart
|
| diff --git a/pkg/compiler/lib/src/js_emitter/program_builder/collector.dart b/pkg/compiler/lib/src/js_emitter/program_builder/collector.dart
|
| index c55ddec141335738d9366da7e0b782f61dafb732..5bc3f77db384b6e1bc9c4fc0690d3f5b7c46f6df 100644
|
| --- a/pkg/compiler/lib/src/js_emitter/program_builder/collector.dart
|
| +++ b/pkg/compiler/lib/src/js_emitter/program_builder/collector.dart
|
| @@ -240,7 +240,13 @@ class Collector {
|
| // these are thought to not have been instantiated, so we neeed to be able
|
| // to identify them later and make sure we only emit "empty shells" without
|
| // fields, etc.
|
| - classesOnlyNeededForRti = _rtiNeededClasses.difference(neededClasses);
|
| + classesOnlyNeededForRti = new Set<ClassElement>();
|
| + for (ClassElement cls in _rtiNeededClasses) {
|
| + while (cls != null && !neededClasses.contains(cls)) {
|
| + if (!classesOnlyNeededForRti.add(cls)) break;
|
| + cls = cls.superclass;
|
| + }
|
| + }
|
|
|
| neededClasses.addAll(classesOnlyNeededForRti);
|
|
|
|
|