| 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 fe3f792e5b45f1396e17cc959169078c08180e4c..5991fd0fe04077141ef3bd9c46cbdf998562bbbf 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
|
| @@ -61,7 +61,7 @@ import 'kernel_builder.dart'
|
|
|
| class KernelEnumBuilder extends SourceClassBuilder
|
| implements EnumBuilder<KernelTypeBuilder, InterfaceType> {
|
| - final List<Object> constantNamesAndOffsets;
|
| + final List<Object> constantNamesAndOffsetsAndDocs;
|
|
|
| final MapLiteral toStringMap;
|
|
|
| @@ -80,7 +80,7 @@ class KernelEnumBuilder extends SourceClassBuilder
|
| Scope scope,
|
| Scope constructors,
|
| Class cls,
|
| - this.constantNamesAndOffsets,
|
| + this.constantNamesAndOffsetsAndDocs,
|
| this.toStringMap,
|
| this.intType,
|
| this.listType,
|
| @@ -92,13 +92,14 @@ class KernelEnumBuilder extends SourceClassBuilder
|
| constructors, parent, null, charOffset, cls);
|
|
|
| factory KernelEnumBuilder(
|
| + String documentationComment,
|
| List<MetadataBuilder> metadata,
|
| String name,
|
| - List<Object> constantNamesAndOffsets,
|
| + List<Object> constantNamesAndOffsetsAndDocs,
|
| KernelLibraryBuilder parent,
|
| int charOffset,
|
| int charEndOffset) {
|
| - constantNamesAndOffsets ??= const <Object>[];
|
| + constantNamesAndOffsetsAndDocs ??= const <Object>[];
|
| // TODO(ahe): These types shouldn't be looked up in scope, they come
|
| // directly from dart:core.
|
| KernelTypeBuilder intType =
|
| @@ -171,13 +172,14 @@ class KernelEnumBuilder extends SourceClassBuilder
|
| charEndOffset);
|
| members["toString"] = toStringBuilder;
|
| String className = name;
|
| - for (int i = 0; i < constantNamesAndOffsets.length; i += 2) {
|
| - String name = constantNamesAndOffsets[i];
|
| - int charOffset = constantNamesAndOffsets[i + 1];
|
| + for (int i = 0; i < constantNamesAndOffsetsAndDocs.length; i += 3) {
|
| + String name = constantNamesAndOffsetsAndDocs[i];
|
| + int charOffset = constantNamesAndOffsetsAndDocs[i + 1];
|
| + String documentationComment = constantNamesAndOffsetsAndDocs[i + 2];
|
| if (members.containsKey(name)) {
|
| parent.addCompileTimeError(templateDuplicatedName.withArguments(name),
|
| charOffset, parent.fileUri);
|
| - constantNamesAndOffsets[i] = null;
|
| + constantNamesAndOffsetsAndDocs[i] = null;
|
| continue;
|
| }
|
| if (name == className) {
|
| @@ -185,11 +187,11 @@ class KernelEnumBuilder extends SourceClassBuilder
|
| templateEnumConstantSameNameAsEnclosing.withArguments(name),
|
| charOffset,
|
| parent.fileUri);
|
| - constantNamesAndOffsets[i] = null;
|
| + constantNamesAndOffsetsAndDocs[i] = null;
|
| continue;
|
| }
|
| KernelFieldBuilder fieldBuilder = new KernelFieldBuilder(
|
| - null,
|
| + documentationComment,
|
| null,
|
| selfType,
|
| name,
|
| @@ -205,13 +207,13 @@ class KernelEnumBuilder extends SourceClassBuilder
|
| }
|
| MapLiteral toStringMap = new MapLiteral(toStringEntries, isConst: true);
|
| KernelEnumBuilder enumBuilder = new KernelEnumBuilder.internal(
|
| - null,
|
| + documentationComment,
|
| metadata,
|
| name,
|
| new Scope(members, null, parent.scope, isModifiable: false),
|
| new Scope(constructors, null, null, isModifiable: false),
|
| cls,
|
| - constantNamesAndOffsets,
|
| + constantNamesAndOffsetsAndDocs,
|
| toStringMap,
|
| intType,
|
| listType,
|
| @@ -241,7 +243,7 @@ class KernelEnumBuilder extends SourceClassBuilder
|
| @override
|
| Class build(KernelLibraryBuilder libraryBuilder, LibraryBuilder coreLibrary) {
|
| cls.isEnum = true;
|
| - if (constantNamesAndOffsets.isEmpty) {
|
| + if (constantNamesAndOffsetsAndDocs.isEmpty) {
|
| libraryBuilder.addCompileTimeError(
|
| messageEnumDeclartionEmpty, charOffset, fileUri);
|
| }
|
| @@ -261,8 +263,8 @@ class KernelEnumBuilder extends SourceClassBuilder
|
| new DirectPropertyGet(new ThisExpression(), indexField)
|
| ])));
|
| List<Expression> values = <Expression>[];
|
| - for (int i = 0; i < constantNamesAndOffsets.length; i += 2) {
|
| - String name = constantNamesAndOffsets[i];
|
| + for (int i = 0; i < constantNamesAndOffsetsAndDocs.length; i += 3) {
|
| + String name = constantNamesAndOffsetsAndDocs[i];
|
| if (name != null) {
|
| KernelFieldBuilder builder = this[name];
|
| values.add(new StaticGet(builder.build(libraryBuilder)));
|
| @@ -294,8 +296,8 @@ class KernelEnumBuilder extends SourceClassBuilder
|
| ..parent = constructor);
|
| }
|
| int index = 0;
|
| - for (int i = 0; i < constantNamesAndOffsets.length; i += 2) {
|
| - String constant = constantNamesAndOffsets[i];
|
| + for (int i = 0; i < constantNamesAndOffsetsAndDocs.length; i += 3) {
|
| + String constant = constantNamesAndOffsetsAndDocs[i];
|
| if (constant != null) {
|
| KernelFieldBuilder field = this[constant];
|
| field.build(libraryBuilder);
|
|
|