Chromium Code Reviews| 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_field_builder; | 5 library fasta.kernel_field_builder; |
| 6 | 6 |
| 7 import 'package:front_end/src/fasta/builder/ast_factory.dart' show AstFactory; | 7 import 'package:front_end/src/fasta/builder/ast_factory.dart' show AstFactory; |
| 8 | 8 |
| 9 import 'package:front_end/src/fasta/kernel/body_builder.dart' show BodyBuilder; | 9 import 'package:front_end/src/fasta/kernel/body_builder.dart' show BodyBuilder; |
| 10 | 10 |
| 11 import 'package:front_end/src/fasta/kernel/kernel_shadow_ast.dart' | |
| 12 show KernelField; | |
| 13 | |
| 11 import 'package:front_end/src/fasta/parser/parser.dart' show Parser; | 14 import 'package:front_end/src/fasta/parser/parser.dart' show Parser; |
| 12 | 15 |
| 13 import 'package:front_end/src/fasta/scanner/token.dart' show Token; | 16 import 'package:front_end/src/fasta/scanner/token.dart' show Token; |
| 14 | 17 |
| 15 import 'package:front_end/src/fasta/builder/class_builder.dart' | 18 import 'package:front_end/src/fasta/builder/class_builder.dart' |
| 16 show ClassBuilder; | 19 show ClassBuilder; |
| 17 | 20 |
| 18 import 'package:front_end/src/fasta/type_inference/type_inference_engine.dart' | 21 import 'package:front_end/src/fasta/type_inference/type_inference_engine.dart' |
| 19 show TypeInferenceEngine; | 22 show TypeInferenceEngine; |
| 20 | 23 |
| 21 import 'package:kernel/ast.dart' show Expression, Field, Name; | 24 import 'package:kernel/ast.dart' show Expression, Field, Name; |
| 22 | 25 |
| 23 import 'kernel_builder.dart' | 26 import 'kernel_builder.dart' |
| 24 show | 27 show |
| 25 Builder, | 28 Builder, |
| 26 FieldBuilder, | 29 FieldBuilder, |
| 27 KernelTypeBuilder, | 30 KernelTypeBuilder, |
| 28 LibraryBuilder, | 31 LibraryBuilder, |
| 29 MetadataBuilder; | 32 MetadataBuilder; |
| 30 | 33 |
| 31 class KernelFieldBuilder extends FieldBuilder<Expression> { | 34 class KernelFieldBuilder extends FieldBuilder<Expression> { |
| 32 final AstFactory astFactory; | 35 final AstFactory astFactory; |
| 33 final TypeInferenceEngine typeInferenceEngine; | 36 final TypeInferenceEngine typeInferenceEngine; |
|
ahe
2017/04/27 09:27:20
I think you can remove the above two fields and ge
| |
| 34 final Field field; | 37 final Field field; |
| 35 final List<MetadataBuilder> metadata; | 38 final List<MetadataBuilder> metadata; |
| 36 final KernelTypeBuilder type; | 39 final KernelTypeBuilder type; |
| 37 final Token initializerToken; | 40 final Token initializerToken; |
| 38 | 41 |
| 39 KernelFieldBuilder( | 42 KernelFieldBuilder( |
| 40 this.astFactory, | 43 this.astFactory, |
| 41 this.typeInferenceEngine, | 44 this.typeInferenceEngine, |
| 42 this.metadata, | 45 this.metadata, |
| 43 this.type, | 46 this.type, |
| 44 String name, | 47 String name, |
| 45 int modifiers, | 48 int modifiers, |
| 46 Builder compilationUnit, | 49 Builder compilationUnit, |
| 47 int charOffset, | 50 int charOffset, |
| 48 this.initializerToken) | 51 this.initializerToken) |
| 49 : field = astFactory.field(null, charOffset, | 52 : field = new KernelField(null, fileUri: compilationUnit?.relativeFileUri) |
| 50 fileUri: compilationUnit?.relativeFileUri), | 53 ..fileOffset = charOffset, |
| 51 super(name, modifiers, compilationUnit, charOffset); | 54 super(name, modifiers, compilationUnit, charOffset); |
| 52 | 55 |
| 53 void set initializer(Expression value) { | 56 void set initializer(Expression value) { |
| 54 field.initializer = value..parent = field; | 57 field.initializer = value..parent = field; |
| 55 } | 58 } |
| 56 | 59 |
| 57 Field build(LibraryBuilder library) { | 60 Field build(LibraryBuilder library) { |
| 58 field.name ??= new Name(name, library.target); | 61 field.name ??= new Name(name, library.target); |
| 59 if (type != null) { | 62 if (type != null) { |
| 60 field.type = type.build(library); | 63 field.type = type.build(library); |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 97 astFactory, | 100 astFactory, |
| 98 fieldDependencies: typeInferenceEngine.getFieldDependencies(field)); | 101 fieldDependencies: typeInferenceEngine.getFieldDependencies(field)); |
| 99 Parser parser = new Parser(bodyBuilder); | 102 Parser parser = new Parser(bodyBuilder); |
| 100 Token token = parser.parseExpression(initializerToken); | 103 Token token = parser.parseExpression(initializerToken); |
| 101 Expression expression = bodyBuilder.popForValue(); | 104 Expression expression = bodyBuilder.popForValue(); |
| 102 bodyBuilder.checkEmpty(token.charOffset); | 105 bodyBuilder.checkEmpty(token.charOffset); |
| 103 initializer = expression; | 106 initializer = expression; |
| 104 } | 107 } |
| 105 } | 108 } |
| 106 } | 109 } |
| OLD | NEW |