| Index: sdk/lib/_internal/compiler/implementation/native_handler.dart
|
| diff --git a/sdk/lib/_internal/compiler/implementation/native_handler.dart b/sdk/lib/_internal/compiler/implementation/native_handler.dart
|
| index 2eaa4af5f13df4d43059ebf794b00f8d0f6d48a7..ccef7f03af6babfdeab78a320107a769147fb1fe 100644
|
| --- a/sdk/lib/_internal/compiler/implementation/native_handler.dart
|
| +++ b/sdk/lib/_internal/compiler/implementation/native_handler.dart
|
| @@ -439,8 +439,17 @@ class NativeCodegenEnqueuer extends NativeEnqueuerBase {
|
| subtypes.add(cls);
|
| }
|
|
|
| + // Skip through all the mixin applications in the super class
|
| + // chain. That way, the direct subtypes set only contain the
|
| + // natives classes.
|
| + ClassElement superclass = cls.superclass;
|
| + while (superclass != null && superclass.isMixinApplication) {
|
| + assert(!superclass.isNative());
|
| + superclass = superclass.superclass;
|
| + }
|
| +
|
| List<Element> directSubtypes = emitter.directSubtypes.putIfAbsent(
|
| - cls.superclass,
|
| + superclass,
|
| () => <ClassElement>[]);
|
| directSubtypes.add(cls);
|
| }
|
|
|