| Index: pkg/compiler/lib/src/kernel/kernel.dart
|
| diff --git a/pkg/compiler/lib/src/kernel/kernel.dart b/pkg/compiler/lib/src/kernel/kernel.dart
|
| index 53ca7823e1725d958337e109a6e3be1a6c9b3d33..a4da817105cfa24f20e753a8a52328715ddd54a7 100644
|
| --- a/pkg/compiler/lib/src/kernel/kernel.dart
|
| +++ b/pkg/compiler/lib/src/kernel/kernel.dart
|
| @@ -207,9 +207,13 @@ class Kernel {
|
| if (member.enclosingClass.declaration != cls) {
|
| // TODO(het): figure out why impact_test triggers this
|
| //internalError(cls, "`$member` isn't mine.");
|
| - } else if (member.isFunction ||
|
| - member.isAccessor ||
|
| - member.isConstructor) {
|
| + } else if (member.isConstructor) {
|
| + ConstructorElement constructor = member;
|
| + ir.Member memberNode = functionToIr(member);
|
| + if (!constructor.isRedirectingFactory) {
|
| + classNode.addMember(memberNode);
|
| + }
|
| + } else if (member.isFunction || member.isAccessor) {
|
| classNode.addMember(functionToIr(member));
|
| } else if (member.isField) {
|
| classNode.addMember(fieldToIr(member));
|
| @@ -220,7 +224,9 @@ class Kernel {
|
| classNode.typeParameters.addAll(typeVariablesToIr(cls.typeVariables));
|
| for (ir.InterfaceType interface
|
| in typesToIr(cls.interfaces.reverse().toList())) {
|
| - classNode.implementedTypes.add(interface);
|
| + if (interface != classNode.mixedInType) {
|
| + classNode.implementedTypes.add(interface);
|
| + }
|
| }
|
| addWork(cls, () {
|
| addDefaultInstanceFieldInitializers(classNode);
|
|
|