Index: pkg/kernel/lib/binary/ast_to_binary.dart |
diff --git a/pkg/kernel/lib/binary/ast_to_binary.dart b/pkg/kernel/lib/binary/ast_to_binary.dart |
index f0c2efd4299e12166ae9c8bab8bb86e9838aa7eb..b1a55e58ba29b308fea6ec75e91bdc2ad28206b4 100644 |
--- a/pkg/kernel/lib/binary/ast_to_binary.dart |
+++ b/pkg/kernel/lib/binary/ast_to_binary.dart |
@@ -363,14 +363,18 @@ class BinaryPrinter extends Visitor { |
writeList(annotations, writeAnnotation); |
} |
- int _encodeClassFlags(bool isAbstract, ClassLevel level) { |
- int abstactFlag = isAbstract ? 1 : 0; |
- int levelFlags = (level.index - 1) << 1; |
- return abstactFlag | levelFlags; |
+ int _encodeClassFlags( |
+ bool isAbstract, bool isSyntheticMixinImplementation, ClassLevel level) { |
+ int abstractFlag = isAbstract ? 1 : 0; |
+ int isSyntheticMixinImplementationFlag = |
+ isSyntheticMixinImplementation ? 2 : 0; |
+ int levelFlags = (level.index - 1) << 2; |
+ return abstractFlag | isSyntheticMixinImplementationFlag | levelFlags; |
} |
visitClass(Class node) { |
- int flags = _encodeClassFlags(node.isAbstract, node.level); |
+ int flags = _encodeClassFlags( |
+ node.isAbstract, node.isSyntheticMixinImplementation, node.level); |
if (node.canonicalName == null) { |
throw 'Missing canonical name for $node'; |
} |