| OLD | NEW |
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library fasta.kernel_enum_builder; | 5 library fasta.kernel_enum_builder; |
| 6 | 6 |
| 7 import 'package:kernel/ast.dart' show | 7 import 'package:kernel/ast.dart' show |
| 8 Arguments, | 8 Arguments, |
| 9 AsyncMarker, | 9 AsyncMarker, |
| 10 Class, | 10 Class, |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 45 FormalParameterBuilder, | 45 FormalParameterBuilder, |
| 46 KernelConstructorBuilder, | 46 KernelConstructorBuilder, |
| 47 KernelFieldBuilder, | 47 KernelFieldBuilder, |
| 48 KernelFormalParameterBuilder, | 48 KernelFormalParameterBuilder, |
| 49 KernelLibraryBuilder, | 49 KernelLibraryBuilder, |
| 50 KernelNamedTypeBuilder, | 50 KernelNamedTypeBuilder, |
| 51 KernelProcedureBuilder, | 51 KernelProcedureBuilder, |
| 52 KernelTypeBuilder, | 52 KernelTypeBuilder, |
| 53 LibraryBuilder, | 53 LibraryBuilder, |
| 54 MemberBuilder, | 54 MemberBuilder, |
| 55 MetadataBuilder; | 55 MetadataBuilder, |
| 56 TypeBuilder; |
| 56 | 57 |
| 57 class KernelEnumBuilder extends SourceClassBuilder | 58 class KernelEnumBuilder extends SourceClassBuilder |
| 58 implements EnumBuilder<KernelTypeBuilder, InterfaceType> { | 59 implements EnumBuilder<KernelTypeBuilder, InterfaceType> { |
| 59 final List<String> constants; | 60 final List<String> constants; |
| 60 | 61 |
| 61 final MapLiteral toStringMap; | 62 final MapLiteral toStringMap; |
| 62 | 63 |
| 63 final KernelTypeBuilder intType; | 64 final KernelTypeBuilder intType; |
| 64 | 65 |
| 65 final KernelTypeBuilder stringType; | 66 final KernelTypeBuilder stringType; |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 133 parent, charOffset); | 134 parent, charOffset); |
| 134 // TODO(sigmund): dynamic should be `covariant MemberBuilder`. | 135 // TODO(sigmund): dynamic should be `covariant MemberBuilder`. |
| 135 members.forEach((String name, dynamic b) { | 136 members.forEach((String name, dynamic b) { |
| 136 MemberBuilder builder = b; | 137 MemberBuilder builder = b; |
| 137 builder.parent = enumBuilder; | 138 builder.parent = enumBuilder; |
| 138 }); | 139 }); |
| 139 selfType.builder = enumBuilder; | 140 selfType.builder = enumBuilder; |
| 140 return enumBuilder; | 141 return enumBuilder; |
| 141 } | 142 } |
| 142 | 143 |
| 144 TypeBuilder get mixedInType => null; |
| 145 |
| 143 InterfaceType buildType(List<KernelTypeBuilder> arguments) { | 146 InterfaceType buildType(List<KernelTypeBuilder> arguments) { |
| 144 return cls.rawType; | 147 return cls.rawType; |
| 145 } | 148 } |
| 146 | 149 |
| 147 Class build(KernelLibraryBuilder libraryBuilder) { | 150 Class build(KernelLibraryBuilder libraryBuilder) { |
| 148 if (constants.isEmpty) { | 151 if (constants.isEmpty) { |
| 149 libraryBuilder.addCompileTimeError( | 152 libraryBuilder.addCompileTimeError( |
| 150 -1, "An enum declaration can't be empty."); | 153 -1, "An enum declaration can't be empty."); |
| 151 } | 154 } |
| 152 toStringMap.keyType = intType.build(); | 155 toStringMap.keyType = intType.build(); |
| (...skipping 26 matching lines...) Expand all Loading... |
| 179 Arguments arguments = | 182 Arguments arguments = |
| 180 new Arguments(<Expression>[new IntLiteral(index++)]); | 183 new Arguments(<Expression>[new IntLiteral(index++)]); |
| 181 field.initializer = | 184 field.initializer = |
| 182 new ConstructorInvocation(constructor, arguments, isConst: true); | 185 new ConstructorInvocation(constructor, arguments, isConst: true); |
| 183 } | 186 } |
| 184 return super.build(libraryBuilder); | 187 return super.build(libraryBuilder); |
| 185 } | 188 } |
| 186 | 189 |
| 187 Builder findConstructorOrFactory(String name) => null; | 190 Builder findConstructorOrFactory(String name) => null; |
| 188 } | 191 } |
| OLD | NEW |