Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1018)

Side by Side Diff: pkg/front_end/lib/src/fasta/kernel/kernel_field_builder.dart

Issue 2842273002: Remove AstFactory.field() (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « pkg/front_end/lib/src/fasta/kernel/kernel_ast_factory.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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 }
OLDNEW
« no previous file with comments | « pkg/front_end/lib/src/fasta/kernel/kernel_ast_factory.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698