| Index: pkg/front_end/lib/src/fasta/kernel/kernel_enum_builder.dart
 | 
| diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_enum_builder.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_enum_builder.dart
 | 
| index 8a8970988558dae736597cf979e7fdc6673122d8..6264d7e4ea5bd17d3c7255766a8a630a08da279c 100644
 | 
| --- a/pkg/front_end/lib/src/fasta/kernel/kernel_enum_builder.dart
 | 
| +++ b/pkg/front_end/lib/src/fasta/kernel/kernel_enum_builder.dart
 | 
| @@ -32,7 +32,9 @@ import '../errors.dart' show inputError;
 | 
|  
 | 
|  import '../modifier.dart' show constMask, finalMask, staticMask;
 | 
|  
 | 
| -import "../source/source_class_builder.dart" show SourceClassBuilder;
 | 
| +import '../names.dart' show indexGetName;
 | 
| +
 | 
| +import '../source/source_class_builder.dart' show SourceClassBuilder;
 | 
|  
 | 
|  import 'kernel_builder.dart'
 | 
|      show
 | 
| @@ -48,9 +50,8 @@ import 'kernel_builder.dart'
 | 
|          KernelTypeBuilder,
 | 
|          LibraryBuilder,
 | 
|          MemberBuilder,
 | 
| -        MetadataBuilder;
 | 
| -
 | 
| -import '../names.dart' show indexGetName;
 | 
| +        MetadataBuilder,
 | 
| +        Scope;
 | 
|  
 | 
|  class KernelEnumBuilder extends SourceClassBuilder
 | 
|      implements EnumBuilder<KernelTypeBuilder, InterfaceType> {
 | 
| @@ -65,7 +66,8 @@ class KernelEnumBuilder extends SourceClassBuilder
 | 
|    KernelEnumBuilder.internal(
 | 
|        List<MetadataBuilder> metadata,
 | 
|        String name,
 | 
| -      Map<String, Builder> members,
 | 
| +      Scope scope,
 | 
| +      Scope constructors,
 | 
|        Class cls,
 | 
|        this.constantNamesAndOffsets,
 | 
|        this.toStringMap,
 | 
| @@ -73,8 +75,8 @@ class KernelEnumBuilder extends SourceClassBuilder
 | 
|        this.stringType,
 | 
|        LibraryBuilder parent,
 | 
|        int charOffset)
 | 
| -      : super(metadata, 0, name, null, null, null, members, parent, null,
 | 
| -            charOffset, cls);
 | 
| +      : super(metadata, 0, name, null, null, null, scope, constructors, parent,
 | 
| +            null, charOffset, cls);
 | 
|  
 | 
|    factory KernelEnumBuilder(
 | 
|        List<MetadataBuilder> metadata,
 | 
| @@ -91,7 +93,8 @@ class KernelEnumBuilder extends SourceClassBuilder
 | 
|      KernelTypeBuilder stringType = parent.addType(
 | 
|          new KernelNamedTypeBuilder("String", null, charOffset, parent.fileUri));
 | 
|      Class cls = new Class(name: name);
 | 
| -    Map<String, Builder> members = <String, Builder>{};
 | 
| +    Map<String, MemberBuilder> members = <String, MemberBuilder>{};
 | 
| +    Map<String, MemberBuilder> constructors = <String, MemberBuilder>{};
 | 
|      KernelNamedTypeBuilder selfType =
 | 
|          new KernelNamedTypeBuilder(name, null, charOffset, parent.fileUri);
 | 
|      KernelTypeBuilder listType = parent.addType(new KernelNamedTypeBuilder(
 | 
| @@ -123,7 +126,7 @@ class KernelEnumBuilder extends SourceClassBuilder
 | 
|          charOffset,
 | 
|          charOffset,
 | 
|          charEndOffset);
 | 
| -    members[""] = constructorBuilder;
 | 
| +    constructors[""] = constructorBuilder;
 | 
|      int index = 0;
 | 
|      List<MapEntry> toStringEntries = <MapEntry>[];
 | 
|      KernelFieldBuilder valuesBuilder = new KernelFieldBuilder(
 | 
| @@ -162,7 +165,8 @@ class KernelEnumBuilder extends SourceClassBuilder
 | 
|      KernelEnumBuilder enumBuilder = new KernelEnumBuilder.internal(
 | 
|          metadata,
 | 
|          name,
 | 
| -        members,
 | 
| +        new Scope(members, null, parent.scope, isModifiable: false),
 | 
| +        new Scope(constructors, null, null, isModifiable: false),
 | 
|          cls,
 | 
|          constantNamesAndOffsets,
 | 
|          toStringMap,
 | 
| @@ -171,10 +175,13 @@ class KernelEnumBuilder extends SourceClassBuilder
 | 
|          parent,
 | 
|          charOffset);
 | 
|      // TODO(sigmund): dynamic should be `covariant MemberBuilder`.
 | 
| -    members.forEach((String name, dynamic b) {
 | 
| +    void setParent(String name, dynamic b) {
 | 
|        MemberBuilder builder = b;
 | 
|        builder.parent = enumBuilder;
 | 
| -    });
 | 
| +    }
 | 
| +
 | 
| +    members.forEach(setParent);
 | 
| +    constructors.forEach(setParent);
 | 
|      selfType.builder = enumBuilder;
 | 
|      return enumBuilder;
 | 
|    }
 | 
| @@ -212,7 +219,7 @@ class KernelEnumBuilder extends SourceClassBuilder
 | 
|      valuesBuilder.build(libraryBuilder);
 | 
|      valuesBuilder.initializer =
 | 
|          new ListLiteral(values, typeArgument: cls.rawType, isConst: true);
 | 
| -    KernelConstructorBuilder constructorBuilder = this[""];
 | 
| +    KernelConstructorBuilder constructorBuilder = constructorScopeBuilder[""];
 | 
|      Constructor constructor = constructorBuilder.build(libraryBuilder);
 | 
|      constructor.initializers.insert(
 | 
|          0,
 | 
| 
 |