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 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
44 EnumBuilder, | 44 EnumBuilder, |
45 FormalParameterBuilder, | 45 FormalParameterBuilder, |
46 KernelConstructorBuilder, | 46 KernelConstructorBuilder, |
47 KernelFieldBuilder, | 47 KernelFieldBuilder, |
48 KernelFormalParameterBuilder, | 48 KernelFormalParameterBuilder, |
49 KernelInterfaceTypeBuilder, | 49 KernelInterfaceTypeBuilder, |
50 KernelLibraryBuilder, | 50 KernelLibraryBuilder, |
51 KernelProcedureBuilder, | 51 KernelProcedureBuilder, |
52 KernelTypeBuilder, | 52 KernelTypeBuilder, |
53 LibraryBuilder, | 53 LibraryBuilder, |
54 MemberBuilder, | |
55 MetadataBuilder; | 54 MetadataBuilder; |
56 | 55 |
57 class KernelEnumBuilder extends SourceClassBuilder | 56 class KernelEnumBuilder extends SourceClassBuilder |
58 implements EnumBuilder<KernelTypeBuilder, InterfaceType> { | 57 implements EnumBuilder<KernelTypeBuilder, InterfaceType> { |
59 final List<String> constants; | 58 final List<String> constants; |
60 | 59 |
61 final MapLiteral toStringMap; | 60 final MapLiteral toStringMap; |
62 | 61 |
63 final KernelTypeBuilder intType; | 62 final KernelTypeBuilder intType; |
64 | 63 |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
129 new KernelFieldBuilder(null, selfType, name, constMask | staticMask); | 128 new KernelFieldBuilder(null, selfType, name, constMask | staticMask); |
130 members[name] = fieldBuilder; | 129 members[name] = fieldBuilder; |
131 toStringEntries.add(new MapEntry( | 130 toStringEntries.add(new MapEntry( |
132 new IntLiteral(index), new StringLiteral("$className.$name"))); | 131 new IntLiteral(index), new StringLiteral("$className.$name"))); |
133 index++; | 132 index++; |
134 } | 133 } |
135 MapLiteral toStringMap = new MapLiteral(toStringEntries, isConst: true); | 134 MapLiteral toStringMap = new MapLiteral(toStringEntries, isConst: true); |
136 KernelEnumBuilder enumBuilder = new KernelEnumBuilder.internal(metadata, | 135 KernelEnumBuilder enumBuilder = new KernelEnumBuilder.internal(metadata, |
137 name, members, types, cls, constants, toStringMap, intType, stringType, | 136 name, members, types, cls, constants, toStringMap, intType, stringType, |
138 parent); | 137 parent); |
139 members.forEach((String name, MemberBuilder builder) { | 138 // TODO(sigmund): dynamic should be `covariant MemberBuilder`. |
139 members.forEach((String name, dynamic builder) { | |
ahe
2017/02/07 11:03:08
I think I prefer this:
members.forEach((String na
Siggi Cherem (dart-lang)
2017/02/07 21:59:26
Done. I had that in on my first change and I thoug
ahe
2017/02/08 19:59:23
Yeah, sorry about that. Sometimes stuffs needs to
Siggi Cherem (dart-lang)
2017/02/09 04:44:02
No problem, I understand
| |
140 builder.parent = enumBuilder; | 140 builder.parent = enumBuilder; |
141 }); | 141 }); |
142 selfType.builder = enumBuilder; | 142 selfType.builder = enumBuilder; |
143 return enumBuilder; | 143 return enumBuilder; |
144 } | 144 } |
145 | 145 |
146 InterfaceType buildType(List<KernelTypeBuilder> arguments) { | 146 InterfaceType buildType(List<KernelTypeBuilder> arguments) { |
147 return cls.rawType; | 147 return cls.rawType; |
148 } | 148 } |
149 | 149 |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
182 Arguments arguments = | 182 Arguments arguments = |
183 new Arguments(<Expression>[new IntLiteral(index++)]); | 183 new Arguments(<Expression>[new IntLiteral(index++)]); |
184 field.initializer = | 184 field.initializer = |
185 new ConstructorInvocation(constructor, arguments, isConst: true); | 185 new ConstructorInvocation(constructor, arguments, isConst: true); |
186 } | 186 } |
187 return super.build(libraryBuilder); | 187 return super.build(libraryBuilder); |
188 } | 188 } |
189 | 189 |
190 Builder findConstructorOrFactory(String name) => null; | 190 Builder findConstructorOrFactory(String name) => null; |
191 } | 191 } |
OLD | NEW |