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

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

Issue 2829223007: Introduce initial plumbing for type promotion in fasta. (Closed)
Patch Set: Add missing copyrights 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
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
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 Field get target => field; 75 Field get target => field;
76 76
77 @override 77 @override
78 void prepareInitializerInference(TypeInferenceEngine typeInferenceEngine, 78 void prepareInitializerInference(TypeInferenceEngine typeInferenceEngine,
79 LibraryBuilder library, ClassBuilder currentClass) { 79 LibraryBuilder library, ClassBuilder currentClass) {
80 if (initializerToken != null) { 80 if (initializerToken != null) {
81 var memberScope = 81 var memberScope =
82 currentClass == null ? library.scope : currentClass.scope; 82 currentClass == null ? library.scope : currentClass.scope;
83 // TODO(paulberry): Is it correct to pass library.uri into BodyBuilder, or 83 // TODO(paulberry): Is it correct to pass library.uri into BodyBuilder, or
84 // should it be the part URI? 84 // should it be the part URI?
85 var typeInferrer = typeInferenceEngine.createTopLevelTypeInferrer(field);
85 var bodyBuilder = new BodyBuilder( 86 var bodyBuilder = new BodyBuilder(
86 library, 87 library,
87 this, 88 this,
88 memberScope, 89 memberScope,
89 null, 90 null,
90 typeInferenceEngine.classHierarchy, 91 typeInferenceEngine.classHierarchy,
91 typeInferenceEngine.coreTypes, 92 typeInferenceEngine.coreTypes,
92 currentClass, 93 currentClass,
93 isInstanceMember, 94 isInstanceMember,
94 library.uri, 95 library.uri,
95 typeInferenceEngine.createTopLevelTypeInferrer(field), 96 typeInferrer,
96 astFactory, 97 astFactory,
97 fieldDependencies: typeInferenceEngine.getFieldDependencies(field)); 98 fieldDependencies: typeInferenceEngine.getFieldDependencies(field));
98 Parser parser = new Parser(bodyBuilder); 99 Parser parser = new Parser(bodyBuilder);
99 Token token = parser.parseExpression(initializerToken); 100 Token token = parser.parseExpression(initializerToken);
100 Expression expression = bodyBuilder.popForValue(); 101 Expression expression = bodyBuilder.popForValue();
101 bodyBuilder.checkEmpty(token.charOffset); 102 bodyBuilder.checkEmpty(token.charOffset);
102 initializer = expression; 103 initializer = expression;
103 } 104 }
104 } 105 }
105 } 106 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698