Index: pkg/fasta/lib/src/kernel/kernel_field_builder.dart |
diff --git a/pkg/fasta/lib/src/kernel/kernel_field_builder.dart b/pkg/fasta/lib/src/kernel/kernel_field_builder.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4433963b2bef8889f2f2feb033e5375d404342a3 |
--- /dev/null |
+++ b/pkg/fasta/lib/src/kernel/kernel_field_builder.dart |
@@ -0,0 +1,39 @@ |
+// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
+// for details. All rights reserved. Use of this source code is governed by a |
+// BSD-style license that can be found in the LICENSE file. |
+ |
+library fasta.kernel_field_builder; |
+ |
+import 'package:kernel/ast.dart' show |
+ DynamicType, |
+ Expression, |
+ Field, |
+ Library, |
+ Name; |
+ |
+import 'kernel_builder.dart' show |
+ FieldBuilder, |
+ KernelTypeBuilder, |
+ MetadataBuilder; |
+ |
+class KernelFieldBuilder extends FieldBuilder<Expression> { |
+ Field field; |
+ final List<MetadataBuilder> metadata; |
+ final KernelTypeBuilder type; |
+ |
+ KernelFieldBuilder(this.metadata, this.type, String name, int modifiers) |
+ : super(name, modifiers); |
+ |
+ void set initializer(Expression value) { |
+ field.initializer = value |
+ ..parent = field; |
+ } |
+ |
+ Field build(Library library) { |
+ return field ??= new Field(new Name(name, library), |
+ type: type?.build() ?? const DynamicType(), |
+ isFinal: isFinal, isConst: isConst, isStatic: isStatic || isTopLevel); |
+ } |
+ |
+ Field get target => field; |
+} |